You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2018/04/12 01:13:34 UTC

[1/4] impala git commit: IMPALA-6831: [DOCS] Remove the note about TLS1.2 on RHEL 6 and CentOS 6

Repository: impala
Updated Branches:
  refs/heads/master 818cd8fa2 -> 242e822ae


IMPALA-6831: [DOCS] Remove the note about TLS1.2 on RHEL 6 and CentOS 6

Change-Id: I710dd809e6a3f8dee89f4ed8997bba0c2aa2c783
Reviewed-on: http://gerrit.cloudera.org:8080/9983
Reviewed-by: Sailesh Mukil <sa...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/389860bf
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/389860bf
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/389860bf

Branch: refs/heads/master
Commit: 389860bf0dfb3d8c6204a83db0b21fe58b278130
Parents: 818cd8f
Author: Alex Rodoni <ar...@cloudera.com>
Authored: Tue Apr 10 16:26:50 2018 -0700
Committer: Impala Public Jenkins <im...@cloudera.com>
Committed: Wed Apr 11 16:18:22 2018 +0000

----------------------------------------------------------------------
 docs/topics/impala_ssl.xml | 10 ----------
 1 file changed, 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/389860bf/docs/topics/impala_ssl.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_ssl.xml b/docs/topics/impala_ssl.xml
index 9feb758..1548892 100644
--- a/docs/topics/impala_ssl.xml
+++ b/docs/topics/impala_ssl.xml
@@ -171,16 +171,6 @@ under the License.
           </p>
         </li>
       </ul>
-      <note>
-        <p>
-          As of <keyword keyref="impala210_full"/>, TLSv1.2 may not work for Impala on RHEL 6
-          or CentOS 6, even if OpenSSL 1.0.1 is available. The daemons fail to start, with a
-          socket error stating the TLS version is not supported. The underlying cause is related to
-          <xref href="https://bugzilla.redhat.com/show_bug.cgi?id=1497859" scope="external" format="html">Red Hat issue 1497859</xref>.
-          The issue applies if you build on a RHEL 6 or CentOS 6 system with OpenSSL 1.0.0, and
-          run on a RHEL 6 or CentOS 6 system with OpenSSL 1.0.1.
-        </p>
-      </note>
 
       <p>
         Along with specifying the version, you can also specify the allowed set of TLS ciphers


[4/4] impala git commit: Add --partial_ok to compare_branches.py.

Posted by ta...@apache.org.
Add --partial_ok to compare_branches.py.

This change lets compare_branches.py succeed with a partial set of
cherry-picks. In our case, we sometimes get baacked up with several
commits needing to be cherry-picked. The first few cherry-pick fine, and
there's a problematic commit sometime down the line. By accepting the
first few that cherry-pick fine, someone resolving the conflict can
start at where that conflict begins, rather than having to wrangle more
commits unnecessarily.

I tested this with and without the flag, and confirmed that if the
first commit is problematic for cherry-picks, the command does
fail.

Change-Id: I2a8b34577f9cb74565adf90a2b7d5328bc555f85
Reviewed-on: http://gerrit.cloudera.org:8080/10025
Reviewed-by: Joe McDonnell <jo...@cloudera.com>
Tested-by: Philip Zeyliger <ph...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/242e822a
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/242e822a
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/242e822a

Branch: refs/heads/master
Commit: 242e822ae6819c5029270f58f771ee61c52b676e
Parents: 257ae0e
Author: Philip Zeyliger <ph...@cloudera.com>
Authored: Wed Apr 11 15:36:14 2018 -0700
Committer: Philip Zeyliger <ph...@cloudera.com>
Committed: Wed Apr 11 22:54:51 2018 +0000

----------------------------------------------------------------------
 bin/compare_branches.py | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/242e822a/bin/compare_branches.py
----------------------------------------------------------------------
diff --git a/bin/compare_branches.py b/bin/compare_branches.py
index 0928751..8b54636 100755
--- a/bin/compare_branches.py
+++ b/bin/compare_branches.py
@@ -90,6 +90,8 @@ def create_parser():
   parser.add_argument('--cherry_pick', action='store_true', default=False,
       help='Cherry-pick mismatched commits to current branch. This ' +
         'must match (in the hash sense) the target branch.')
+  parser.add_argument('--partial_ok', action='store_true', default=False,
+      help='Exit with success if at least one cherrypick succeeded.')
   parser.add_argument('--source_branch', default='master')
   parser.add_argument('--target_branch', default='2.x')
   parser.add_argument('--source_remote_name', default='asf-gerrit',
@@ -159,7 +161,7 @@ def build_commit_map(branch, merge_base):
   logging.debug("Commit map for branch %s has size %d.", branch, len(result))
   return result
 
-def cherrypick(cherry_pick_hashes, full_target_branch_name):
+def cherrypick(cherry_pick_hashes, full_target_branch_name, partial_ok):
   """Cherrypicks the given commits.
 
   Also, asserts that full_target_branch_name matches the current HEAD.
@@ -167,6 +169,9 @@ def cherrypick(cherry_pick_hashes, full_target_branch_name):
   cherry_pick_hashes is a list of git hashes, in the order to
   be cherry-picked.
 
+  If partial_ok is true, return gracefully if at least one cherrypick
+  has succeeded.
+
   Note that this function does not push to the remote.
   """
   print "Cherrypicking %d changes." % (len(cherry_pick_hashes),)
@@ -184,10 +189,16 @@ def cherrypick(cherry_pick_hashes, full_target_branch_name):
     sys.exit(1)
 
   cherry_pick_hashes.reverse()
-  for cherry_pick_hash in cherry_pick_hashes:
-    subprocess.check_call(
+  for i, cherry_pick_hash in enumerate(cherry_pick_hashes):
+    ret = subprocess.call(
         ['git', 'cherry-pick', '--keep-redundant-commits', cherry_pick_hash])
-
+    if ret != 0:
+      if partial_ok and i > 0:
+        subprocess.check_call(['git', 'cherry-pick', '--abort'])
+        print "Failed to cherry-pick %s; stopping picks." % (cherry_pick_hash,)
+        return
+      else:
+        raise Exception("Failed to cherry-pick: %s" % (cherry_pick_hash,))
 
 def main():
   parser = create_parser()
@@ -270,7 +281,7 @@ def main():
                .format(pformat(commits_ignored)))
 
   if options.cherry_pick:
-    cherrypick(cherry_pick_hashes, full_target_branch_name)
+    cherrypick(cherry_pick_hashes, full_target_branch_name, options.partial_ok)
 
 if __name__ == '__main__':
   main()


[3/4] impala git commit: IMPALA-6623: [DOCS] ltrim and rtrim docs updated

Posted by ta...@apache.org.
IMPALA-6623: [DOCS] ltrim and rtrim docs updated

Change-Id: If4f7a04e3c64eade7a23cded21de5ff91c9c8c8c
Reviewed-on: http://gerrit.cloudera.org:8080/9984
Reviewed-by: Zoram Thanga <zo...@cloudera.com>
Reviewed-by: Alex Rodoni <ar...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/257ae0ea
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/257ae0ea
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/257ae0ea

Branch: refs/heads/master
Commit: 257ae0ea0d0a0538fe0acf371127dd5f1304bc72
Parents: f9a476e
Author: Alex Rodoni <ar...@cloudera.com>
Authored: Tue Apr 10 17:00:13 2018 -0700
Committer: Impala Public Jenkins <im...@cloudera.com>
Committed: Wed Apr 11 22:02:16 2018 +0000

----------------------------------------------------------------------
 docs/topics/impala_string_functions.xml | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/257ae0ea/docs/topics/impala_string_functions.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_string_functions.xml b/docs/topics/impala_string_functions.xml
index fe08c8e..9ee2665 100644
--- a/docs/topics/impala_string_functions.xml
+++ b/docs/topics/impala_string_functions.xml
@@ -650,12 +650,14 @@ select instr('foo bar bletch', 'b', 1, null);
       <dlentry id="ltrim">
 
         <dt>
-          <codeph>ltrim(string a)</codeph>
+          <codeph>ltrim(string a [, string chars_to_trim])</codeph>
         </dt>
 
         <dd>
           <indexterm audience="hidden">ltrim() function</indexterm>
-          <b>Purpose:</b> Returns the argument string with any leading spaces removed from the left side.
+          <b>Purpose:</b> Returns the argument string with all occurrences
+          of characters specified by the second argument removed from
+          the left side. Removes spaces if the second argument is not specified.
           <p>
             <b>Return type:</b> <codeph>string</codeph>
           </p>
@@ -1039,12 +1041,14 @@ select replace('hello world','xyz','abc');
       <dlentry id="rtrim">
 
         <dt>
-          <codeph>rtrim(string a)</codeph>
+          <codeph>rtrim(string a [, string chars_to_trim])</codeph>
         </dt>
 
         <dd>
           <indexterm audience="hidden">rtrim() function</indexterm>
-          <b>Purpose:</b> Returns the argument string with any trailing spaces removed from the right side.
+          <b>Purpose:</b> Returns the argument string with all occurrences
+          of characters specified by the second argument removed from
+          the right side. Removes spaces if the second argument is not specified.
           <p>
             <b>Return type:</b> <codeph>string</codeph>
           </p>


[2/4] impala git commit: IMPALA-6710: [DOCS] Update the Partition Insert content

Posted by ta...@apache.org.
IMPALA-6710: [DOCS] Update the Partition Insert content

Added a section at the end for inserting into partitioned tables.

Change-Id: I4ccc8227579dabc321a949da95e8a59158528f20
Reviewed-on: http://gerrit.cloudera.org:8080/9977
Reviewed-by: Thomas Tauber-Marshall <tm...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/impala/commit/f9a476eb
Tree: http://git-wip-us.apache.org/repos/asf/impala/tree/f9a476eb
Diff: http://git-wip-us.apache.org/repos/asf/impala/diff/f9a476eb

Branch: refs/heads/master
Commit: f9a476eb41ca21763b5f632f76cefe61eea206b0
Parents: 389860b
Author: Alex Rodoni <ar...@cloudera.com>
Authored: Tue Apr 10 14:10:51 2018 -0700
Committer: Impala Public Jenkins <im...@cloudera.com>
Committed: Wed Apr 11 21:51:57 2018 +0000

----------------------------------------------------------------------
 docs/topics/impala_insert.xml | 257 +++++++++++++++++++++++++------------
 1 file changed, 173 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/f9a476eb/docs/topics/impala_insert.xml
----------------------------------------------------------------------
diff --git a/docs/topics/impala_insert.xml b/docs/topics/impala_insert.xml
index 3880a70..bfd8c01 100644
--- a/docs/topics/impala_insert.xml
+++ b/docs/topics/impala_insert.xml
@@ -180,29 +180,6 @@ hint_with_brackets ::= [SHUFFLE] | [NOSHUFFLE]
         </p>
       </li>
 
-      <li>
-        <p>
-          For a partitioned table, the optional <codeph>PARTITION</codeph> clause identifies which partition or
-          partitions the new values go into. If a partition key column is given a constant value such as
-          <codeph>PARTITION (year=2012)</codeph> or <codeph>PARTITION (year=2012, month=2)</codeph>, all the
-          inserted rows use those same values for those partition key columns and you omit any corresponding
-          columns in the source table from the <codeph>SELECT</codeph> list. This form is known as <q>static
-          partitioning</q>.
-        </p>
-        <p>
-          If a partition key column is mentioned but not assigned a value, such as in <codeph>PARTITION (year,
-          region)</codeph> (both columns unassigned) or <codeph>PARTITION(year, region='CA')</codeph>
-          (<codeph>year</codeph> column unassigned), the unassigned columns are filled in with the final columns of
-          the <codeph>SELECT</codeph> list. In this case, the number of columns in the <codeph>SELECT</codeph> list
-          must equal the number of columns in the column permutation plus the number of partition key columns not
-          assigned a constant value. This form is known as <q>dynamic partitioning</q>.
-        </p>
-        <p>
-          See <xref href="impala_partitioning.xml#partition_static_dynamic"/> for examples and performance
-          characteristics of static and dynamic partitioned inserts.
-        </p>
-      </li>
-
       <li rev="1.2.2">
         An optional hint clause immediately either before the <codeph>SELECT</codeph> keyword or after the
         <codeph>INSERT</codeph> keyword, to fine-tune the behavior when doing an <codeph>INSERT ... SELECT</codeph>
@@ -385,28 +362,6 @@ Backend 0:RC_FILE not implemented.
 Remote error
 Backend 0:SEQUENCE_FILE not implemented. </codeblock>
 
-    <p>
-      Inserting data into partitioned tables requires slightly different syntax that divides the partitioning
-      columns from the others:
-    </p>
-
-<codeblock>create table t1 (i int) <b>partitioned by (x int, y string)</b>;
--- Select an INT column from another table.
--- All inserted rows will have the same x and y values, as specified in the INSERT statement.
--- This technique of specifying all the partition key values is known as static partitioning.
-insert into t1 <b>partition(x=10, y='a')</b> select c1 from some_other_table;
--- Select two INT columns from another table.
--- All inserted rows will have the same y value, as specified in the INSERT statement.
--- Values from c2 go into t1.x.
--- Any partitioning columns whose value is not specified are filled in
--- from the columns specified last in the SELECT list.
--- This technique of omitting some partition key values is known as dynamic partitioning.
-insert into t1 <b>partition(x, y='b')</b> select c1, c2 from some_other_table;
--- Select an INT and a STRING column from another table.
--- All inserted rows will have the same x value, as specified in the INSERT statement.
--- Values from c3 go into t1.y.
-insert into t1 <b>partition(x=20, y)</b> select c1, c3  from some_other_table;</codeblock>
-
     <p rev="1.1">
       The following examples show how you can copy the data in all the columns from one table to another, copy the
       data from only some columns, or specify the columns in the select list in a different order than they
@@ -434,42 +389,6 @@ insert into t2 (c2, c1) select c1, c2 from t1;
 -- But the number and type of selected columns must match the columns mentioned in the () part.
 alter table t2 replace columns (x int, y int);
 insert into t2 (y) select c1 from t1;
-
--- For partitioned tables, all the partitioning columns must be mentioned in the () column list
--- or a PARTITION clause; these columns cannot be defaulted to NULL.
-create table pt1 (x int, y int) partitioned by (z int);
--- The values from c1 are copied into the column x in the new table,
--- all in the same partition based on a constant value for z.
--- The values of y in the new table are all NULL.
-insert into pt1 (x) partition (z=5) select c1 from t1;
--- Again we omit the values for column y so they are all NULL.
--- The inserted x values can go into different partitions, based on
--- the different values inserted into the partitioning column z.
-insert into pt1 (x,z) select x, z from t2;
-</codeblock>
-
-    <p>
-      <codeph>SELECT *</codeph> for a partitioned table requires that all partition key columns in the source table
-      be declared as the last columns in the <codeph>CREATE TABLE</codeph> statement. You still include a
-      <codeph>PARTITION BY</codeph> clause listing all the partition key columns. These partition columns are
-      automatically mapped to the last columns from the <codeph>SELECT *</codeph> list.
-    </p>
-
-<codeblock>create table source (x int, y int, year int, month int, day int);
-create table destination (x int, y int) partitioned by (year int, month int, day int);
-...load some data into the unpartitioned source table...
--- Insert a single partition of data.
--- The SELECT * means you cannot specify partition (year=2014, month, day).
-insert overwrite destination partition (year, month, day) select * from source where year=2014;
--- Insert the data for all year/month/day combinations.
-insert overwrite destination partition (year, month, day) select * from source;
-
--- If one of the partition columns is omitted from the source table,
--- then you can specify a specific value for that column in the PARTITION clause.
--- Here the source table holds only data from 2014, and so does not include a year column.
-create table source_2014 (x int, y int, month, day);
-...load some data into the unpartitioned source_2014 table...
-insert overwrite destination partition (year=2014, month, day) select * from source_2014;
 </codeblock>
 
     <p conref="../shared/impala_common.xml#common/insert_sort_blurb"/>
@@ -741,7 +660,177 @@ Inserted 2 rows in 0.16s
       <p rev="1.3.1" conref="../shared/impala_common.xml#common/insert_inherit_permissions"/>
     </conbody>
   </concept>
+  <concept id="partition_insert">
+    <title>Inserting Into Partitioned Tables with PARTITION Clause</title>
+    <conbody>
+      <p>
+        For a partitioned table, the optional <codeph>PARTITION</codeph> clause
+        identifies which partition or partitions the values are inserted
+        into.
+      </p>
+      <p>
+        All examples in this section will use the table declared as below:
+      </p>
+<codeblock>CREATE TABLE t1 (w INT) PARTITIONED BY (x INT, y STRING);</codeblock>
+    </conbody>
 
-<!-- Values clause -->
-</concept>
-<!-- INSERT statement -->
+    <concept id="static_partition_insert">
+      <title>Static Partition Inserts</title>
+      <conbody>
+        <p>
+          In a static partition insert where a partition key column is given a
+          constant value, such as <codeph>PARTITION</codeph>
+          <codeph>(year=2012, month=2)</codeph>, the rows are inserted with the
+          same values specified for those partition key columns.
+        </p>
+        <p>
+          The number of columns in the <codeph>SELECT</codeph> list must equal
+          the number of columns in the column permutation.
+        </p>
+        <p>
+          The <codeph>PARTITION</codeph> clause must be used for static
+          partitioning inserts.
+        </p>
+        <p>
+          Example:
+        </p>
+        <p>
+          The following statement will insert the
+            <codeph>some_other_table.c1</codeph> values for the
+            <codeph>w</codeph> column, and all the rows inserted will have the
+          same <codeph>x</codeph> value of <codeph>10</codeph>, and the same
+            <codeph>y</codeph> value of
+          <codeph>‘a’</codeph>.<codeblock>INSERT INTO t1 PARTITION (x=10, y='a')
+            SELECT c1 FROM some_other_table;</codeblock>
+        </p>
+      </conbody>
+    </concept>
+    <concept id="dynamic_partition_insert">
+        <title>Dynamic Partition Inserts</title>
+        <conbody>
+          <p>
+            In a dynamic partition insert where a partition key
+          column is in the <codeph>INSERT</codeph> statement but not assigned a
+          value, such as in <codeph>PARTITION (year, region)</codeph>(both
+          columns unassigned) or <codeph>PARTITION(year, region='CA')</codeph>
+            (<codeph>year</codeph> column unassigned), the unassigned columns
+          are filled in with the final columns of the <codeph>SELECT</codeph> or
+            <codeph>VALUES</codeph> clause. In this case, the number of columns
+          in the <codeph>SELECT</codeph> list must equal the number of columns
+          in the column permutation plus the number of partition key columns not
+          assigned a constant value.
+          </p>
+          <p>
+            See <xref
+              href="https://www.cloudera.com/documentation/enterprise/latest/topics/impala_partitioning.html#partition_static_dynamic"
+              format="html" scope="external"><u>Static and Dynamic Partitioning
+                Clauses</u></xref> for examples and performance characteristics
+            of static and dynamic partitioned inserts.
+          </p>
+          <p>
+            The following rules apply to dynamic partition
+            inserts.
+          </p>
+          <ul>
+            <li>
+              <p>
+                The columns are bound in the order they appear in the
+                  <codeph>INSERT</codeph> statement.
+              </p>
+              <p>
+                The table below shows the values inserted with the
+                <codeph>INSERT</codeph> statements of different column
+              orders.
+              </p>
+            </li>
+          </ul>
+          <table id="table_vyx_dp3_ldb" colsep="1" rowsep="1" frame="all">
+            <tgroup cols="4" align="left">
+              <colspec colnum="1" colname="col1"/>
+              <colspec colnum="2" colname="col2"/>
+              <colspec colnum="3" colname="col3"/>
+              <colspec colnum="4" colname="col4"/>
+              <tbody>
+                <row>
+                  <entry/>
+                  <entry>Column <codeph>w</codeph> Value</entry>
+                  <entry>Column <codeph>x</codeph> Value</entry>
+                  <entry>Column <codeph>y</codeph> Value</entry>
+                </row>
+                <row>
+                  <entry><codeph>INSERT INTO t1 (w, x, y) VALUES (1, 2,
+                      'c');</codeph></entry>
+                  <entry><codeph>1</codeph></entry>
+                  <entry><codeph>2</codeph></entry>
+                  <entry><codeph>‘c’</codeph></entry>
+                </row>
+                <row>
+                  <entry><codeph>INSERT INTO t1 (x,w) PARTITION (y) VALUES (1,
+                      2, 'c');</codeph></entry>
+                  <entry><codeph>2</codeph></entry>
+                  <entry><codeph>1</codeph></entry>
+                  <entry><codeph>‘c’</codeph></entry>
+                </row>
+              </tbody>
+            </tgroup>
+          </table>
+          <ul>
+            <li>
+              When a partition clause is specified but the non-partition
+            columns are not specified in the <codeph>INSERT</codeph> statement,
+            as in the first example below, the non-partition columns are treated
+            as though they had been specified before the
+              <codeph>PARTITION</codeph> clause in the SQL.
+              <p>
+                Example: These
+              three statements are equivalent, inserting <codeph>1</codeph> to
+                <codeph>w</codeph>, <codeph>2</codeph> to <codeph>x</codeph>,
+              and <codeph>‘c’</codeph> to <codeph>y</codeph>
+            columns.
+              </p>
+<codeblock>INSERT INTO t1 PARTITION (x,y) VALUES (1, 2, ‘c’);
+INSERT INTO t1 (w) PARTITION (x, y) VALUES (1, 2, ‘c’);
+INSERT INTO t1 PARTITION (x, y='c') VALUES (1, 2);</codeblock>
+            </li>
+            <li>
+              The <codeph>PARTITION</codeph> clause is not required for
+            dynamic partition, but all the partition columns must be explicitly
+            present in the <codeph>INSERT</codeph> statement in the column list
+            or in the <codeph>PARTITION</codeph> clause. The partition columns
+            cannot be defaulted to <codeph>NULL</codeph>.
+              <p>
+                Example:
+              </p>
+              <p>The following statements are valid because the partition
+              columns, <codeph>x</codeph> and <codeph>y</codeph>, are present in
+              the <codeph>INSERT</codeph> statements, either in the
+                <codeph>PARTITION</codeph> clause or in the column
+              list.
+              </p>
+<codeblock>INSERT INTO t1 PARTITION (x,y) VALUES (1, 2, ‘c’);
+INSERT INTO t1 (w, x) PARTITION (y) VALUES (1, 2, ‘c’);</codeblock>
+              <p>
+                The following statement is not valid for the partitioned table as
+              defined above because the partition columns, <codeph>x</codeph>
+              and <codeph>y</codeph>, are not present in the
+                <codeph>INSERT</codeph> statement.
+              </p>
+<codeblock>INSERT INTO t1 VALUES (1, 2, 'c');</codeblock>
+          </li>
+            <li>
+              If partition columns do not exist in the source table, you can
+              specify a specific value for that column in the
+              <codeph>PARTITION</codeph> clause.
+              <p>
+                Example: The <codeph>source</codeph> table only contains the column
+                <codeph>w</codeph> and <codeph>y</codeph>. The value,
+                <codeph>20</codeph>, specified in the <codeph>PARTITION</codeph>
+              clause, is inserted into the <codeph>x</codeph> column.
+              </p>
+<codeblock>INSERT INTO t1 PARTITION (x=20, y) SELECT * FROM source;</codeblock>
+          </li>
+          </ul>
+        </conbody>
+      </concept>
+    </concept>
+  </concept>