Rename enable_partition_wise_join to enable_partitionwise_join
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 16 Feb 2018 15:33:59 +0000 (10:33 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 16 Feb 2018 15:33:59 +0000 (10:33 -0500)
Discussion: https://www.postgresql.org/message-id/flat/ad24e4f4-6481-066e-e3fb-6ef4a3121882%402ndquadrant.com

16 files changed:
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/sql/postgres_fdw.sql
doc/src/sgml/config.sgml
src/backend/optimizer/README
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/joinrels.c
src/backend/optimizer/util/relnode.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/include/optimizer/cost.h
src/include/optimizer/paths.h
src/test/regress/expected/partition_join.out
src/test/regress/expected/sysviews.out
src/test/regress/sql/partition_join.sql

index 62e084fb3d819ea17f8e209d684060f0c00b2c00..262c635cdba369e3e12e118f49d3103451d189de 100644 (file)
@@ -7682,9 +7682,9 @@ AND ftoptions @> array['fetch_size=60000'];
 
 ROLLBACK;
 -- ===================================================================
--- test partition-wise-joins
+-- test partitionwise joins
 -- ===================================================================
-SET enable_partition_wise_join=on;
+SET enable_partitionwise_join=on;
 CREATE TABLE fprt1 (a int, b int, c varchar) PARTITION BY RANGE(a);
 CREATE TABLE fprt1_p1 (LIKE fprt1);
 CREATE TABLE fprt1_p2 (LIKE fprt1);
@@ -7800,4 +7800,4 @@ SELECT t1.a,t1.b FROM fprt1 t1, LATERAL (SELECT t2.a, t2.b FROM fprt2 t2 WHERE t
  400 | 400
 (4 rows)
 
-RESET enable_partition_wise_join;
+RESET enable_partitionwise_join;
index 68fdfdc76596ec9d72e24216880d1c84515fa971..28635498cafa346ba452c59e108ac995d0158fdb 100644 (file)
@@ -1863,9 +1863,9 @@ AND ftoptions @> array['fetch_size=60000'];
 ROLLBACK;
 
 -- ===================================================================
--- test partition-wise-joins
+-- test partitionwise joins
 -- ===================================================================
-SET enable_partition_wise_join=on;
+SET enable_partitionwise_join=on;
 
 CREATE TABLE fprt1 (a int, b int, c varchar) PARTITION BY RANGE(a);
 CREATE TABLE fprt1_p1 (LIKE fprt1);
@@ -1913,4 +1913,4 @@ EXPLAIN (COSTS OFF)
 SELECT t1.a,t1.b FROM fprt1 t1, LATERAL (SELECT t2.a, t2.b FROM fprt2 t2 WHERE t1.a = t2.b AND t1.b = t2.a) q WHERE t1.a%25 = 0 ORDER BY 1,2;
 SELECT t1.a,t1.b FROM fprt1 t1, LATERAL (SELECT t2.a, t2.b FROM fprt2 t2 WHERE t1.a = t2.b AND t1.b = t2.a) q WHERE t1.a%25 = 0 ORDER BY 1,2;
 
-RESET enable_partition_wise_join;
+RESET enable_partitionwise_join;
index c45979dee48b8b00514cf3b702d0e8d0db7dccf2..4c998fe51f92cf5046d53883ca9fa0d87b1d5150 100644 (file)
@@ -3736,20 +3736,20 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
       </listitem>
      </varlistentry>
 
-     <varlistentry id="guc-enable-partition-wise-join" xreflabel="enable_partition_wise_join">
-      <term><varname>enable_partition_wise_join</varname> (<type>boolean</type>)
+     <varlistentry id="guc-enable-partitionwise-join" xreflabel="enable_partitionwise_join">
+      <term><varname>enable_partitionwise_join</varname> (<type>boolean</type>)
       <indexterm>
-       <primary><varname>enable_partition_wise_join</varname> configuration parameter</primary>
+       <primary><varname>enable_partitionwise_join</varname> configuration parameter</primary>
       </indexterm>
       </term>
       <listitem>
        <para>
-        Enables or disables the query planner's use of partition-wise join,
+        Enables or disables the query planner's use of partitionwise join,
         which allows a join between partitioned tables to be performed by
-        joining the matching partitions.  Partition-wise join currently applies
+        joining the matching partitions.  Partitionwise join currently applies
         only when the join conditions include all the partition keys, which
         must be of the same data type and have exactly matching sets of child
-        partitions.  Because partition-wise join planning can use significantly
+        partitions.  Because partitionwise join planning can use significantly
         more CPU time and memory during planning, the default is
         <literal>off</literal>.
        </para>
index 1e4084dcf4c27d331809d009d2c7e008e48dec1e..84e60f7f6f04e77f8a354ad061838885a8298849 100644 (file)
@@ -1076,8 +1076,8 @@ plan as possible.  Expanding the range of cases in which more work can be
 pushed below the Gather (and costing them accurately) is likely to keep us
 busy for a long time to come.
 
-Partition-wise joins
---------------------
+Partitionwise joins
+-------------------
 A join between two similarly partitioned tables can be broken down into joins
 between their matching partitions if there exists an equi-join condition
 between the partition keys of the joining tables. The equi-join between
@@ -1089,7 +1089,7 @@ partitioned in the same way as the joining relations, thus allowing an N-way
 join between similarly partitioned tables having equi-join condition between
 their partition keys to be broken down into N-way joins between their matching
 partitions. This technique of breaking down a join between partitioned tables
-into joins between their partitions is called partition-wise join. We will use
+into joins between their partitions is called partitionwise join. We will use
 term "partitioned relation" for either a partitioned table or a join between
 compatibly partitioned tables.
 
index 9053cfd0b953f2c3e35832dd24ceea5bd602a7f7..57f0f594e5bec9696d5073cd727072d11d9649fa 100644 (file)
@@ -264,8 +264,8 @@ merge_clump(PlannerInfo *root, List *clumps, Clump *new_clump, bool force)
                        /* Keep searching if join order is not valid */
                        if (joinrel)
                        {
-                               /* Create paths for partition-wise joins. */
-                               generate_partition_wise_join_paths(root, joinrel);
+                               /* Create paths for partitionwise joins. */
+                               generate_partitionwise_join_paths(root, joinrel);
 
                                /* Create GatherPaths for any useful partial paths for rel */
                                generate_gather_paths(root, joinrel);
index 6e842f93d0fd765371cd75ed4f463d53e1a90985..f714247ebb0d39bb9b7bb753d0f8fa514e26e29a 100644 (file)
@@ -929,7 +929,7 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel,
                        /*
                         * We need attr_needed data for building targetlist of a join
                         * relation representing join between matching partitions for
-                        * partition-wise join. A given attribute of a child will be
+                        * partitionwise join. A given attribute of a child will be
                         * needed in the same highest joinrel where the corresponding
                         * attribute of parent is needed. Hence it suffices to use the
                         * same Relids set for parent and child.
@@ -973,7 +973,7 @@ set_append_rel_size(PlannerInfo *root, RelOptInfo *rel,
                /*
                 * Copy/Modify targetlist. Even if this child is deemed empty, we need
                 * its targetlist in case it falls on nullable side in a child-join
-                * because of partition-wise join.
+                * because of partitionwise join.
                 *
                 * NB: the resulting childrel->reltarget->exprs may contain arbitrary
                 * expressions, which otherwise would not occur in a rel's targetlist.
@@ -2636,7 +2636,7 @@ standard_join_search(PlannerInfo *root, int levels_needed, List *initial_rels)
                join_search_one_level(root, lev);
 
                /*
-                * Run generate_partition_wise_join_paths() and
+                * Run generate_partitionwise_join_paths() and
                 * generate_gather_paths() for each just-processed joinrel.  We could
                 * not do this earlier because both regular and partial paths can get
                 * added to a particular joinrel at multiple times within
@@ -2649,8 +2649,8 @@ standard_join_search(PlannerInfo *root, int levels_needed, List *initial_rels)
                {
                        rel = (RelOptInfo *) lfirst(lc);
 
-                       /* Create paths for partition-wise joins. */
-                       generate_partition_wise_join_paths(root, rel);
+                       /* Create paths for partitionwise joins. */
+                       generate_partitionwise_join_paths(root, rel);
 
                        /* Create GatherPaths for any useful partial paths for rel */
                        generate_gather_paths(root, rel);
@@ -3405,8 +3405,8 @@ compute_parallel_worker(RelOptInfo *rel, double heap_pages, double index_pages,
 }
 
 /*
- * generate_partition_wise_join_paths
- *             Create paths representing partition-wise join for given partitioned
+ * generate_partitionwise_join_paths
+ *             Create paths representing partitionwise join for given partitioned
  *             join relation.
  *
  * This must not be called until after we are done adding paths for all
@@ -3414,7 +3414,7 @@ compute_parallel_worker(RelOptInfo *rel, double heap_pages, double index_pages,
  * generated here has a reference.
  */
 void
-generate_partition_wise_join_paths(PlannerInfo *root, RelOptInfo *rel)
+generate_partitionwise_join_paths(PlannerInfo *root, RelOptInfo *rel)
 {
        List       *live_children = NIL;
        int                     cnt_parts;
@@ -3442,8 +3442,8 @@ generate_partition_wise_join_paths(PlannerInfo *root, RelOptInfo *rel)
 
                Assert(child_rel != NULL);
 
-               /* Add partition-wise join paths for partitioned child-joins. */
-               generate_partition_wise_join_paths(root, child_rel);
+               /* Add partitionwise join paths for partitioned child-joins. */
+               generate_partitionwise_join_paths(root, child_rel);
 
                /* Dummy children will not be scanned, so ignore those. */
                if (IS_DUMMY_REL(child_rel))
index 29fea48ee231c5dca58af97faef45ee794a0abf8..16ef348f40878a182e72ecaba1a839f3d47cd8c0 100644 (file)
@@ -127,7 +127,7 @@ bool                enable_material = true;
 bool           enable_mergejoin = true;
 bool           enable_hashjoin = true;
 bool           enable_gathermerge = true;
-bool           enable_partition_wise_join = false;
+bool           enable_partitionwise_join = false;
 bool           enable_parallel_append = true;
 bool           enable_parallel_hash = true;
 
index f74afdb4dda873f21287e9f67b304bc327975d60..3f1c1b3477ef0e24e5b24bfc4c7709b7c6552721 100644 (file)
@@ -39,7 +39,7 @@ static bool restriction_is_constant_false(List *restrictlist,
 static void populate_joinrel_with_paths(PlannerInfo *root, RelOptInfo *rel1,
                                                        RelOptInfo *rel2, RelOptInfo *joinrel,
                                                        SpecialJoinInfo *sjinfo, List *restrictlist);
-static void try_partition_wise_join(PlannerInfo *root, RelOptInfo *rel1,
+static void try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1,
                                                RelOptInfo *rel2, RelOptInfo *joinrel,
                                                SpecialJoinInfo *parent_sjinfo,
                                                List *parent_restrictlist);
@@ -903,8 +903,8 @@ populate_joinrel_with_paths(PlannerInfo *root, RelOptInfo *rel1,
                        break;
        }
 
-       /* Apply partition-wise join technique, if possible. */
-       try_partition_wise_join(root, rel1, rel2, joinrel, sjinfo, restrictlist);
+       /* Apply partitionwise join technique, if possible. */
+       try_partitionwise_join(root, rel1, rel2, joinrel, sjinfo, restrictlist);
 }
 
 
@@ -1286,25 +1286,25 @@ restriction_is_constant_false(List *restrictlist, bool only_pushed_down)
 /*
  * Assess whether join between given two partitioned relations can be broken
  * down into joins between matching partitions; a technique called
- * "partition-wise join"
+ * "partitionwise join"
  *
- * Partition-wise join is possible when a. Joining relations have same
+ * Partitionwise join is possible when a. Joining relations have same
  * partitioning scheme b. There exists an equi-join between the partition keys
  * of the two relations.
  *
- * Partition-wise join is planned as follows (details: optimizer/README.)
+ * Partitionwise join is planned as follows (details: optimizer/README.)
  *
  * 1. Create the RelOptInfos for joins between matching partitions i.e
  * child-joins and add paths to them.
  *
  * 2. Construct Append or MergeAppend paths across the set of child joins.
- * This second phase is implemented by generate_partition_wise_join_paths().
+ * This second phase is implemented by generate_partitionwise_join_paths().
  *
  * The RelOptInfo, SpecialJoinInfo and restrictlist for each child join are
  * obtained by translating the respective parent join structures.
  */
 static void
-try_partition_wise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
+try_partitionwise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
                                                RelOptInfo *joinrel, SpecialJoinInfo *parent_sjinfo,
                                                List *parent_restrictlist)
 {
@@ -1334,7 +1334,7 @@ try_partition_wise_join(PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2,
                   joinrel->part_scheme == rel2->part_scheme);
 
        /*
-        * Since we allow partition-wise join only when the partition bounds of
+        * Since we allow partitionwise join only when the partition bounds of
         * the joining relations exactly match, the partition bounds of the join
         * should match those of the joining relations.
         */
@@ -1478,7 +1478,7 @@ have_partkey_equi_join(RelOptInfo *rel1, RelOptInfo *rel2, JoinType jointype,
 
                /*
                 * Only clauses referencing the partition keys are useful for
-                * partition-wise join.
+                * partitionwise join.
                 */
                ipk1 = match_expr_to_partition_keys(expr1, rel1, strict_op);
                if (ipk1 < 0)
@@ -1489,13 +1489,13 @@ have_partkey_equi_join(RelOptInfo *rel1, RelOptInfo *rel2, JoinType jointype,
 
                /*
                 * If the clause refers to keys at different ordinal positions, it can
-                * not be used for partition-wise join.
+                * not be used for partitionwise join.
                 */
                if (ipk1 != ipk2)
                        continue;
 
                /*
-                * The clause allows partition-wise join if only it uses the same
+                * The clause allows partitionwise join if only it uses the same
                 * operator family as that specified by the partition key.
                 */
                if (rel1->part_scheme->strategy == PARTITION_STRATEGY_HASH)
index 5c368321e6ecf14a63e0cff6fa28756fb7796f9d..da8f0f93fc0d587f352c1d1633d5d8b5d3f62a69 100644 (file)
@@ -1601,15 +1601,15 @@ build_joinrel_partition_info(RelOptInfo *joinrel, RelOptInfo *outer_rel,
        int                     cnt;
        PartitionScheme part_scheme;
 
-       /* Nothing to do if partition-wise join technique is disabled. */
-       if (!enable_partition_wise_join)
+       /* Nothing to do if partitionwise join technique is disabled. */
+       if (!enable_partitionwise_join)
        {
                Assert(!IS_PARTITIONED_REL(joinrel));
                return;
        }
 
        /*
-        * We can only consider this join as an input to further partition-wise
+        * We can only consider this join as an input to further partitionwise
         * joins if (a) the input relations are partitioned, (b) the partition
         * schemes match, and (c) we can identify an equi-join between the
         * partition keys.  Note that if it were possible for
index 87ba67661a4b78e208d5c35db48678e3bf4a0f65..1db7845d5ab5decc302f93d84257fbe8b3e0e341 100644 (file)
@@ -914,11 +914,11 @@ static struct config_bool ConfigureNamesBool[] =
                NULL, NULL, NULL
        },
        {
-               {"enable_partition_wise_join", PGC_USERSET, QUERY_TUNING_METHOD,
-                       gettext_noop("Enables partition-wise join."),
+               {"enable_partitionwise_join", PGC_USERSET, QUERY_TUNING_METHOD,
+                       gettext_noop("Enables partitionwise join."),
                        NULL
                },
-               &enable_partition_wise_join,
+               &enable_partitionwise_join,
                false,
                NULL, NULL, NULL
        },
index 9a3535559e1cbb1bcb00f1c8c2e8f75be9d76a4e..39272925fb7ef157f45c74f45bfd96ba0c1e82e1 100644 (file)
 #enable_seqscan = on
 #enable_sort = on
 #enable_tidscan = on
-#enable_partition_wise_join = off
+#enable_partitionwise_join = off
 #enable_parallel_hash = on
 
 # - Planner Cost Constants -
index 0e9f858b9e858293dc1de66a5cc4983cad71d2a2..132e35551bd825ce22771bd87708810c6b9fd87b 100644 (file)
@@ -67,7 +67,7 @@ extern PGDLLIMPORT bool enable_material;
 extern PGDLLIMPORT bool enable_mergejoin;
 extern PGDLLIMPORT bool enable_hashjoin;
 extern PGDLLIMPORT bool enable_gathermerge;
-extern PGDLLIMPORT bool enable_partition_wise_join;
+extern PGDLLIMPORT bool enable_partitionwise_join;
 extern PGDLLIMPORT bool enable_parallel_append;
 extern PGDLLIMPORT bool enable_parallel_hash;
 extern PGDLLIMPORT int constraint_exclusion;
index 4708443c395f748bc52a0ecfcd6220506baadd3d..c9e44318ad978ab8bb7cc42bddfaa1a158384cd7 100644 (file)
@@ -58,7 +58,7 @@ extern int compute_parallel_worker(RelOptInfo *rel, double heap_pages,
                                                double index_pages, int max_workers);
 extern void create_partial_bitmap_paths(PlannerInfo *root, RelOptInfo *rel,
                                                        Path *bitmapqual);
-extern void generate_partition_wise_join_paths(PlannerInfo *root,
+extern void generate_partitionwise_join_paths(PlannerInfo *root,
                                                                   RelOptInfo *rel);
 
 #ifdef OPTIMIZER_DEBUG
index 333f93889cfddfb3a1da49593ff88b951a88ceb1..636bedadf2e8bab9df60ce8390fe2f500beaf41c 100644 (file)
@@ -1,9 +1,9 @@
 --
 -- PARTITION_JOIN
--- Test partition-wise join between partitioned tables
+-- Test partitionwise join between partitioned tables
 --
--- Enable partition-wise join, which by default is disabled.
-SET enable_partition_wise_join to true;
+-- Enable partitionwise join, which by default is disabled.
+SET enable_partitionwise_join to true;
 --
 -- partitioned by a single column
 --
@@ -1578,7 +1578,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE prt1_l.b = 0) t1
      |      | 525 | 0001
 (16 rows)
 
--- lateral partition-wise join
+-- lateral partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT * FROM prt1_l t1 LEFT JOIN LATERAL
                          (SELECT t2.a AS t2a, t2.c AS t2c, t2.b AS t2b, t3.b AS t3b, least(t1.a,t2.a,t3.b) FROM prt1_l t2 JOIN prt2_l t3 ON (t2.a = t3.b AND t2.c = t3.c)) ss
@@ -1695,7 +1695,7 @@ CREATE TABLE prt4_n_p2 PARTITION OF prt4_n FOR VALUES FROM (300) TO (500);
 CREATE TABLE prt4_n_p3 PARTITION OF prt4_n FOR VALUES FROM (500) TO (600);
 INSERT INTO prt4_n SELECT i, i, to_char(i, 'FM0000') FROM generate_series(0, 599, 2) i;
 ANALYZE prt4_n;
--- partition-wise join can not be applied if the partition ranges differ
+-- partitionwise join can not be applied if the partition ranges differ
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2 WHERE t1.a = t2.a;
                   QUERY PLAN                  
@@ -1742,7 +1742,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2, prt2 t3 WHERE t1.a = t2.a
                            ->  Seq Scan on prt2_p3 t3_2
 (23 rows)
 
--- partition-wise join can not be applied if there are no equi-join conditions
+-- partitionwise join can not be applied if there are no equi-join conditions
 -- between partition keys
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 LEFT JOIN prt2 t2 ON (t1.a < t2.b);
@@ -1763,7 +1763,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 LEFT JOIN prt2 t2 ON (t1.a < t2.b);
 (12 rows)
 
 -- equi-join with join condition on partial keys does not qualify for
--- partition-wise join
+-- partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1, prt2_m t2 WHERE t1.a = (t2.b + t2.a)/2;
                   QUERY PLAN                  
@@ -1782,7 +1782,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1, prt2_m t2 WHERE t1.a = (t2.b + t2.
 (11 rows)
 
 -- equi-join between out-of-order partition key columns does not qualify for
--- partition-wise join
+-- partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.a = t2.b;
                   QUERY PLAN                  
@@ -1800,7 +1800,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.a = t2.b;
                ->  Seq Scan on prt2_m_p3 t2_2
 (11 rows)
 
--- equi-join between non-key columns does not qualify for partition-wise join
+-- equi-join between non-key columns does not qualify for partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.c = t2.c;
                   QUERY PLAN                  
@@ -1818,7 +1818,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.c = t2.c;
                ->  Seq Scan on prt2_m_p3 t2_2
 (11 rows)
 
--- partition-wise join can not be applied between tables with different
+-- partitionwise join can not be applied between tables with different
 -- partition lists
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 LEFT JOIN prt2_n t2 ON (t1.c = t2.c);
@@ -1857,7 +1857,7 @@ SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 JOIN prt2_n t2 ON (t1.c = t2.c) JOI
                            ->  Seq Scan on prt1_n_p2 t1_1
 (16 rows)
 
--- partition-wise join can not be applied for a join between list and range
+-- partitionwise join can not be applied for a join between list and range
 -- partitioned table
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 FULL JOIN prt1 t2 ON (t1.c = t2.c);
index c9c8f51e1c58e54b5c62838a8cffcadeb230c489..759f7d9d597ee159b6efb455152e155bc5fef692 100644 (file)
@@ -70,23 +70,23 @@ select count(*) >= 0 as ok from pg_prepared_xacts;
 -- This is to record the prevailing planner enable_foo settings during
 -- a regression test run.
 select name, setting from pg_settings where name like 'enable%';
-            name            | setting 
-----------------------------+---------
- enable_bitmapscan          | on
- enable_gathermerge         | on
- enable_hashagg             | on
- enable_hashjoin            | on
- enable_indexonlyscan       | on
- enable_indexscan           | on
- enable_material            | on
- enable_mergejoin           | on
- enable_nestloop            | on
- enable_parallel_append     | on
- enable_parallel_hash       | on
- enable_partition_wise_join | off
- enable_seqscan             | on
- enable_sort                | on
- enable_tidscan             | on
+           name            | setting 
+---------------------------+---------
+ enable_bitmapscan         | on
+ enable_gathermerge        | on
+ enable_hashagg            | on
+ enable_hashjoin           | on
+ enable_indexonlyscan      | on
+ enable_indexscan          | on
+ enable_material           | on
+ enable_mergejoin          | on
+ enable_nestloop           | on
+ enable_parallel_append    | on
+ enable_parallel_hash      | on
+ enable_partitionwise_join | off
+ enable_seqscan            | on
+ enable_sort               | on
+ enable_tidscan            | on
 (15 rows)
 
 -- Test that the pg_timezone_names and pg_timezone_abbrevs views are
index 55c5615d06c3e9438f7e9f475935a39255aaac5f..4b2e7810601a4c64c36400588d9642a7946af79b 100644 (file)
@@ -1,10 +1,10 @@
 --
 -- PARTITION_JOIN
--- Test partition-wise join between partitioned tables
+-- Test partitionwise join between partitioned tables
 --
 
--- Enable partition-wise join, which by default is disabled.
-SET enable_partition_wise_join to true;
+-- Enable partitionwise join, which by default is disabled.
+SET enable_partitionwise_join to true;
 
 --
 -- partitioned by a single column
@@ -306,7 +306,7 @@ EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE prt1_l.b = 0) t1 FULL JOIN (SELECT * FROM prt2_l WHERE prt2_l.a = 0) t2 ON (t1.a = t2.b AND t1.c = t2.c) ORDER BY t1.a, t2.b;
 SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE prt1_l.b = 0) t1 FULL JOIN (SELECT * FROM prt2_l WHERE prt2_l.a = 0) t2 ON (t1.a = t2.b AND t1.c = t2.c) ORDER BY t1.a, t2.b;
 
--- lateral partition-wise join
+-- lateral partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT * FROM prt1_l t1 LEFT JOIN LATERAL
                          (SELECT t2.a AS t2a, t2.c AS t2c, t2.b AS t2b, t3.b AS t3b, least(t1.a,t2.a,t3.b) FROM prt1_l t2 JOIN prt2_l t3 ON (t2.a = t3.b AND t2.c = t3.c)) ss
@@ -348,39 +348,39 @@ CREATE TABLE prt4_n_p3 PARTITION OF prt4_n FOR VALUES FROM (500) TO (600);
 INSERT INTO prt4_n SELECT i, i, to_char(i, 'FM0000') FROM generate_series(0, 599, 2) i;
 ANALYZE prt4_n;
 
--- partition-wise join can not be applied if the partition ranges differ
+-- partitionwise join can not be applied if the partition ranges differ
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2 WHERE t1.a = t2.a;
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1, prt4_n t2, prt2 t3 WHERE t1.a = t2.a and t1.a = t3.b;
 
--- partition-wise join can not be applied if there are no equi-join conditions
+-- partitionwise join can not be applied if there are no equi-join conditions
 -- between partition keys
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1 t1 LEFT JOIN prt2 t2 ON (t1.a < t2.b);
 
 -- equi-join with join condition on partial keys does not qualify for
--- partition-wise join
+-- partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1, prt2_m t2 WHERE t1.a = (t2.b + t2.a)/2;
 
 -- equi-join between out-of-order partition key columns does not qualify for
--- partition-wise join
+-- partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.a = t2.b;
 
--- equi-join between non-key columns does not qualify for partition-wise join
+-- equi-join between non-key columns does not qualify for partitionwise join
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_m t1 LEFT JOIN prt2_m t2 ON t1.c = t2.c;
 
--- partition-wise join can not be applied between tables with different
+-- partitionwise join can not be applied between tables with different
 -- partition lists
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 LEFT JOIN prt2_n t2 ON (t1.c = t2.c);
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 JOIN prt2_n t2 ON (t1.c = t2.c) JOIN plt1 t3 ON (t1.c = t3.c);
 
--- partition-wise join can not be applied for a join between list and range
+-- partitionwise join can not be applied for a join between list and range
 -- partitioned table
 EXPLAIN (COSTS OFF)
 SELECT t1.a, t1.c, t2.b, t2.c FROM prt1_n t1 FULL JOIN prt1 t2 ON (t1.c = t2.c);