diff --git a/README.md b/README.md index 4d6beba4491e37dec37d25c035fd4356c3a7cbd9..589358f12e99d3a3a4fcca81f1222dfec4121fcd 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Once build and started, run `psql` and check the GPOPT (e.g. GPORCA) version: select gp_opt_version(); ``` -To turn GPORCA off and use legacy planner for query optimization: +To turn GPORCA off and use Postgres planner for query optimization: ``` set optimizer=off; ``` diff --git a/contrib/file_fdw/output/file_fdw.source b/contrib/file_fdw/output/file_fdw.source index 919edf8c6fc217ed3769fe35fdd94b665e81597f..2961c194f680488d65f206c0f22fcc3e22008c7c 100644 --- a/contrib/file_fdw/output/file_fdw.source +++ b/contrib/file_fdw/output/file_fdw.source @@ -172,7 +172,7 @@ EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_csv; Foreign Scan on public.agg_csv Output: a, b Foreign File: @abs_srcdir@/data/agg.csv - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer \t off PREPARE st(int) AS SELECT * FROM agg_csv WHERE a = $1; @@ -245,7 +245,7 @@ EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_text WHERE a > 0; Output: a, b Filter: (agg_text.a > 0) Foreign File: @abs_srcdir@/data/agg.data - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer \t off -- privilege tests for object diff --git a/gpdb-doc/dita/admin_guide/ddl/ddl-partition.xml b/gpdb-doc/dita/admin_guide/ddl/ddl-partition.xml index e5738af8984169b4357e7784156eb880003cb446..4e7d0b925575aa9117ba43aa78e3df1c183c9a58 100644 --- a/gpdb-doc/dita/admin_guide/ddl/ddl-partition.xml +++ b/gpdb-doc/dita/admin_guide/ddl/ddl-partition.xml @@ -243,7 +243,7 @@ PARTITION BY LIST (gender)   DEFAULT PARTITION other );

- The current Greenplum Database legacy optimizer allows list partitions with + The current Greenplum Database Postgres optimizer allows list partitions with multi-column (composite) partition keys. A range partition only allows a single column as the partition key. The Greenplum Query Optimizer does not support composite keys, so you should not use composite partition keys. @@ -343,7 +343,7 @@ GRANT SELECT ON sales TO guest;

GPORCA, the Greenplum next generation query optimizer, supports uniform multi-level partitioned tables. If GPORCA is enabled (the default) and the multi-level partitioned table is not uniform, Greenplum Database executes queries against the table with the - legacy query optimizer. For information about uniform multi-level partitioned tables, see + Postgres query optimizer. For information about uniform multi-level partitioned tables, see .

For information about exchanging a leaf child partition with an external table, see .

@@ -351,7 +351,7 @@ GRANT SELECT ON sales TO guest; an external table:

-

In Greenplum Database, GPORCA co-exists with the legacy query optimizer. By default, - Greenplum Database uses GPORCA. If GPORCA cannot be used, then the legacy query optimizer is +

In Greenplum Database, GPORCA co-exists with the Postgres query optimizer. By default, + Greenplum Database uses GPORCA. If GPORCA cannot be used, then the Postgres query optimizer is used.

The following figure shows how GPORCA fits into the query planning architecture.

- All legacy query optimizer (planner) server configuration parameters are ignored by - GPORCA. However, if Greenplum Database falls back to the legacy optimizer, the planner server - configuration parameters will impact the query plan generation. For a list of legacy query + All Postgres query optimizer (planner) server configuration parameters are ignored by + GPORCA. However, if Greenplum Database falls back to the Postgres optimizer, the planner server + configuration parameters will impact the query plan generation. For a list of Postgres query optimizer (planner) server configuration parameters, see Query Tuning Parameters. diff --git a/gpdb-doc/dita/admin_guide/query/topics/query-piv-opt-root-partition.xml b/gpdb-doc/dita/admin_guide/query/topics/query-piv-opt-root-partition.xml index 1bbfa50d2810b8802b2cfdf849e55108d781a89d..b7f332b8221a38419c583ad6cee3397854fef060 100644 --- a/gpdb-doc/dita/admin_guide/query/topics/query-piv-opt-root-partition.xml +++ b/gpdb-doc/dita/admin_guide/query/topics/query-piv-opt-root-partition.xml @@ -4,7 +4,7 @@ Collecting Root Partition Statistics For a partitioned table, GPORCA uses statistics of the table root partition to generate query plans. These statistics are used for determining the join order, for splitting and joining - aggregate nodes, and for costing the query steps. In contrast, the legacy planner uses the + aggregate nodes, and for costing the query steps. In contrast, the Postgres planner uses the statistics of each leaf partition.

If you execute queries on partitioned tables, you should collect statistics on the root @@ -71,7 +71,7 @@

Although creating and maintaining root partition statistics is crucial for GPORCA query performance with partitioned tables, maintaining leaf partition statistics is also important. If GPORCA cannot generate a plan for a query against a partitioned table, then - the legacy planner is used and leaf partition statistics are needed to produce the optimal + the Postgres planner is used and leaf partition statistics are needed to produce the optimal plan for that query.

GPORCA itself also uses leaf partition statistics for any queries that access leaf partitions directly, instead of using the root partition with predicates to eliminate diff --git a/gpdb-doc/dita/admin_guide/query/topics/query-piv-optimizer.xml b/gpdb-doc/dita/admin_guide/query/topics/query-piv-optimizer.xml index eba35632336844aa739fb4b6b77e67662220a901..c9131f7aae73a73319647ac46e6cc3aba71468d0 100644 --- a/gpdb-doc/dita/admin_guide/query/topics/query-piv-optimizer.xml +++ b/gpdb-doc/dita/admin_guide/query/topics/query-piv-optimizer.xml @@ -4,7 +4,7 @@ About GPORCA - In Greenplum Database, the default GPORCA optmizer co-exists with the legacy query + In Greenplum Database, the default GPORCA optmizer co-exists with the Postgres query optimizer. diff --git a/gpdb-doc/dita/admin_guide/query/topics/query-profiling.xml b/gpdb-doc/dita/admin_guide/query/topics/query-profiling.xml index 4a067bf44125b9af0aeec43b6d0b230fd266e484..dec7dfe9ff40d7b9dccf2c324144b4fedfa179e5 100644 --- a/gpdb-doc/dita/admin_guide/query/topics/query-profiling.xml +++ b/gpdb-doc/dita/admin_guide/query/topics/query-profiling.xml @@ -28,9 +28,9 @@ EXPLAIN ANALYZE SELECT * FROM names WHERE id=22;

- In Greenplum Database, the default GPORCA optimizer co-exists with the legacy query + In Greenplum Database, the default GPORCA optimizer co-exists with the Postgres query optimizer. The EXPLAIN output generated by GPORCA is different than the - output generated by the legacy query optimizer.

By default, Greenplum Database uses GPORCA + output generated by the Postgres query optimizer.

By default, Greenplum Database uses GPORCA to generate an execution plan for a query when possible.

When the EXPLAIN ANALYZE command uses GPORCA, the EXPLAIN plan shows only the number of partitions that are being eliminated. The scanned partitions are not shown. To @@ -181,15 +181,15 @@ Gather Motion 2:1 (slice1; segments: 2) (cost=0.00..20.88 rows=1 width=13) Determining the Query Optimizer

You can view EXPLAIN output to determine if GPORCA is enabled for - the query plan and whether GPORCA or the legacy query optimizer generated the explain + the query plan and whether GPORCA or the Postgres query optimizer generated the explain plan. The information appears at the end of the EXPLAIN output. The Settings line displays the setting of the server configuration parameter OPTIMIZER. The Optimizer status line - displays whether GPORCA or the legacy query optimizer generated the explain plan.

+ displays whether GPORCA or the Postgres query optimizer generated the explain plan.

For these two example query plans, GPORCA is enabled, the server configuration parameter OPTIMIZER is on. For the first plan, GPORCA generated the EXPLAIN plan. For the - second plan, Greenplum Database fell back to the legacy query optimizer to + second plan, Greenplum Database fell back to the Postgres query optimizer to generate the query plan.

QUERY PLAN @@ -210,7 +210,7 @@ Gather Motion 2:1 (slice1; segments: 2) (cost=0.00..20.88 rows=1 width=13) -> Aggregate (cost=3518.99..3519.00 rows=1 width=8) -> Seq Scan on part (cost=0.00..3018.79 rows=100040 width=1) Settings: optimizer=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows)

For this query, the server configuration parameter OPTIMIZER is @@ -223,7 +223,7 @@ Gather Motion 2:1 (slice1; segments: 2) (cost=0.00..20.88 rows=1 width=13) -> Aggregate (cost=3518.99..3519.00 rows=1 width=8) -> Seq Scan on part (cost=0.00..3018.79 rows=100040 width=1) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows)

@@ -238,7 +238,7 @@ Gather Motion 2:1 (slice1; segments: 2) (cost=0.00..20.88 rows=1 width=13) an operation consumes the majority of query processing time. For example, if an index scan takes longer than expected, the index could be out-of-date and need to be reindexed. Or, adjust enable_<operator> parameters to see if you can force the - legacy query optimizer (planner) to choose a different plan by disabling a particular + Postgres query optimizer (planner) to choose a different plan by disabling a particular query plan operator for that query.
  • Are the optimizer's estimates close to reality? Run EXPLAIN ANALYZE and see if the number of rows the optimizer estimates is close to the @@ -258,7 +258,7 @@ Gather Motion 2:1 (slice1; segments: 2) (cost=0.00..20.88 rows=1 width=13) join order. Joins that eliminate the largest number of rows should be done earlier in the plan so fewer rows move up the plan tree.

    If the plan is not choosing the optimal join order, set join_collapse_limit=1 and use explicit JOIN - syntax in your SQL statement to force the legacy query optimizer (planner) to the + syntax in your SQL statement to force the Postgres query optimizer (planner) to the specified join order. You can also collect more statistics on the relevant join columns.

    See the ANALYZE command in the Greenplum Database Reference Guide for more information collecting statistics.

  • diff --git a/gpdb-doc/dita/admin_guide/workload_mgmt.xml b/gpdb-doc/dita/admin_guide/workload_mgmt.xml index de5706c6051f6ad9b425152e7262b85cdcef3966..bcb4e8934129a2149131b2a28727fcf169e89e56 100644 --- a/gpdb-doc/dita/admin_guide/workload_mgmt.xml +++ b/gpdb-doc/dita/admin_guide/workload_mgmt.xml @@ -74,15 +74,15 @@ exceeds the MAX_COST value set for the resource queue, the query is rejected as too expensive. - GPORCA and the legacy Greenplum Database query optimizer utilize different + GPORCA and the Postgres query optimizer utilize different query costing models and may compute different costs for the same query. The Greenplum Database resource queue resource management scheme neither - differentiates nor aligns costs between GPORCA and the legacy optimizer; it + differentiates nor aligns costs between GPORCA and the Postgres optimizer; it uses the literal cost value returned from the optimizer to throttle queries.

    When resource queue-based resource management is active, use the MEMORY_LIMIT and ACTIVE_STATEMENTS limits for resource queues rather than configuring cost-based limits. Even when using GPORCA, - Greenplum Database may fall back to using the legacy query optimizer for certain + Greenplum Database may fall back to using the Postgres query optimizer for certain queries, so using cost-based limits can lead to unexpected results.

    diff --git a/gpdb-doc/dita/ref_guide/config_params/guc-list.xml b/gpdb-doc/dita/ref_guide/config_params/guc-list.xml index b6f9259f6552667a361f1f79ffb2ee071f872f9e..b18382073fa318aed11d704f1cfafbffc5491c07 100644 --- a/gpdb-doc/dita/ref_guide/config_params/guc-list.xml +++ b/gpdb-doc/dita/ref_guide/config_params/guc-list.xml @@ -1126,7 +1126,7 @@ cpu_index_tuple_cost -

    For the legacy query optimizer (planner), sets the estimate of the cost of processing each +

    For the Postgres query optimizer (planner), sets the estimate of the cost of processing each index row during an index scan. This is measured as a fraction of the cost of a sequential page fetch.

    @@ -1155,7 +1155,7 @@ cpu_operator_cost -

    For the legacy query optimizer (planner), sets the estimate of the cost of processing each +

    For the Postgres query optimizer (planner), sets the estimate of the cost of processing each operator in a WHERE clause. This is measured as a fraction of the cost of a sequential page fetch.

    @@ -1184,7 +1184,7 @@ cpu_tuple_cost -

    For the legacy query optimizer (planner), Sets the estimate of the cost of processing each +

    For the Postgres query optimizer (planner), Sets the estimate of the cost of processing each row during a query. This is measured as a fraction of the cost of a sequential page fetch.

    @@ -1213,8 +1213,8 @@ cursor_tuple_fraction -

    Tells the legacy query optimizer (planner) how many rows are expected to be fetched in a - cursor query, thereby allowing the legacy optimizer to use this information to optimize the +

    Tells the Postgres query optimizer (planner) how many rows are expected to be fetched in a + cursor query, thereby allowing the Postgres optimizer to use this information to optimize the query plan. The default of 1 means all rows will be fetched.

    @@ -1575,7 +1575,7 @@

    Sets the default statistics sampling target (the number of values that are stored in the list of common values) for table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS. Larger values may improve the quality of the - legacy query optimizer (planner) estimates.

    + Postgres query optimizer (planner) estimates.

    @@ -1792,7 +1792,7 @@ effective_cache_size

    Sets the assumption about the effective size of the disk cache that is available to a - single query for the legacy query optimizer (planner). This is factored into estimates of + single query for the Postgres query optimizer (planner). This is factored into estimates of the cost of using an index; a higher value makes it more likely index scans will be used, a lower value makes it more likely sequential scans will be used. This parameter has no effect on the size of shared memory allocated by a Greenplum server instance, nor does it reserve @@ -1823,7 +1823,7 @@ enable_bitmapscan -

    Enables or disables the use of bitmap-scan plan types by the legacy query optimizer +

    Enables or disables the use of bitmap-scan plan types by the Postgres query optimizer (planner). Note that this is different than a Bitmap Index Scan. A Bitmap Scan means that indexes will be dynamically converted to bitmaps in memory when appropriate, giving faster index performance on complex queries against very large tables. It is used when there are @@ -1855,7 +1855,7 @@ enable_groupagg -

    Enables or disables the use of group aggregation plan types by the legacy query optimizer +

    Enables or disables the use of group aggregation plan types by the Postgres query optimizer (planner).

    @@ -1883,7 +1883,7 @@ enable_hashagg -

    Enables or disables the use of hash aggregation plan types by the legacy query optimizer +

    Enables or disables the use of hash aggregation plan types by the Postgres query optimizer (planner).

    @@ -1911,7 +1911,7 @@ enable_hashjoin -

    Enables or disables the use of hash-join plan types by the legacy query optimizer +

    Enables or disables the use of hash-join plan types by the Postgres query optimizer (planner).

    @@ -1939,7 +1939,7 @@ enable_indexscan -

    Enables or disables the use of index-scan plan types by the legacy query optimizer +

    Enables or disables the use of index-scan plan types by the Postgres query optimizer (planner).

    @@ -1967,7 +1967,7 @@ enable_mergejoin -

    Enables or disables the use of merge-join plan types by the legacy query optimizer +

    Enables or disables the use of merge-join plan types by the Postgres query optimizer (planner). Merge join is based on the idea of sorting the left- and right-hand tables into order and then scanning them in parallel. So, both data types must be capable of being fully ordered, and the join operator must be one that can only succeed for pairs of values that @@ -1999,9 +1999,9 @@ enable_nestloop -

    Enables or disables the use of nested-loop join plans by the legacy query optimizer +

    Enables or disables the use of nested-loop join plans by the Postgres query optimizer (planner). It's not possible to suppress nested-loop joins entirely, but turning this - variable off discourages the legacy optimizer from using one if there are other methods + variable off discourages the Postgres optimizer from using one if there are other methods available.

    @@ -2029,9 +2029,9 @@ enable_seqscan -

    Enables or disables the use of sequential scan plan types by the legacy query optimizer +

    Enables or disables the use of sequential scan plan types by the Postgres query optimizer (planner). It's not possible to suppress sequential scans entirely, but turning this - variable off discourages the legacy optimizer from using one if there are other methods + variable off discourages the Postgres optimizer from using one if there are other methods available.

    @@ -2059,9 +2059,9 @@ enable_sort -

    Enables or disables the use of explicit sort steps by the legacy query optimizer (planner). +

    Enables or disables the use of explicit sort steps by the Postgres query optimizer (planner). It's not possible to suppress explicit sorts entirely, but turning this variable off - discourages the legacy optimizer from using one if there are other methods available.

    + discourages the Postgres optimizer from using one if there are other methods available.

    @@ -2088,7 +2088,7 @@ enable_tidscan -

    Enables or disables the use of tuple identifier (TID) scan plan types by the legacy query +

    Enables or disables the use of tuple identifier (TID) scan plan types by the Postgres query optimizer (planner).

    @@ -2205,7 +2205,7 @@ from_collapse_limit -

    The legacy query optimizer (planner) will merge sub-queries into upper queries if the +

    The Postgres query optimizer (planner) will merge sub-queries into upper queries if the resulting FROM list would have no more than this many items. Smaller values reduce planning time but may yield inferior query plans.

    @@ -2639,15 +2639,15 @@

    For a CREATE TABLE AS command that does not contain a distribution clause:

      -
    • If the legacy query optimizer creates the table, and the value of the parameter is +
    • If the Postgres query optimizer creates the table, and the value of the parameter is off, the table distribution policy is determined based on the command.
    • -
    • If the legacy query optimizer creates the table, and the value of the parameter is +
    • If the Postgres query optimizer creates the table, and the value of the parameter is on, the table distribution policy is random.
    • If GPORCA creates the table, the table distribution policy is random. The parameter value has no affect.

    -

    For information about the legacy query optimizer and GPORCA, see "Querying Data" in the +

    For information about the Postgres query optimizer and GPORCA, see "Querying Data" in the Greenplum Database Administrator Guide.

    @@ -2863,7 +2863,7 @@ gp_enable_adaptive_nestloop

    Enables the use a new type of join node called "Adaptive Nestloop" at query execution time - by the legacy query optimizer (planner). This causes the legacy optimizer to favor a + by the Postgres query optimizer (planner). This causes the Postgres optimizer to favor a hash-join over a nested-loop join if the number of rows on the outer side of the join exceeds a precalculated threshold. This parameter improves performance of index operations, which previously favored slower nested-loop joins.

    @@ -3023,7 +3023,7 @@ gp_enable_fast_sri -

    When set to on, the legacy query optimizer (planner) plans single row +

    When set to on, the Postgres query optimizer (planner) plans single row inserts so that they are sent directly to the correct segment instance (no motion operation required). This significantly improves performance of single-row-insert statements.

    @@ -3119,7 +3119,7 @@

    Enables or disables gathering data to a single node to compute distinct-qualified aggregates on grouping extension queries. When this parameter and - gp_enable_groupext_distinct_pruning are both enabled, the legacy query + gp_enable_groupext_distinct_pruning are both enabled, the Postgres query optimizer (planner) uses the cheaper plan.

    @@ -3149,7 +3149,7 @@

    Enables or disables three-phase aggregation and join to compute distinct-qualified aggregates on grouping extension queries. Usually, enabling this parameter generates a - cheaper query plan that the legacy query optimizer (planner) will use in preference to + cheaper query plan that the Postgres query optimizer (planner) will use in preference to existing plan.

    @@ -3177,7 +3177,7 @@ gp_enable_multiphase_agg -

    Enables or disables the use of two or three-stage parallel aggregation plans legacy query +

    Enables or disables the use of two or three-stage parallel aggregation plans Postgres query optimizer (planner). This approach applies to any subquery with aggregation. If gp_enable_multiphase_agg is off, then gp_enable_agg_distinct and gp_enable_agg_distinct_pruning are @@ -3208,7 +3208,7 @@ gp_enable_predicate_propagation -

    When enabled, the legacy query optimizer (planner) applies query predicates to both table +

    When enabled, the Postgres query optimizer (planner) applies query predicates to both table expressions in cases where the tables are joined on their distribution key column(s). Filtering both tables prior to doing the join (when possible) is more efficient.

    @@ -3303,7 +3303,7 @@ gp_enable_relsize_collection -

    Enables GPORCA and the legacy query optimizer (planner) to use the estimated size of a +

    Enables GPORCA and the Postgres query optimizer (planner) to use the estimated size of a table (pg_relation_size function) if there are no statistics for the table. By default, GPORCA and the planner use a default value to estimate the number of rows if statistics are not available. The default behavior improves query optimization time and @@ -4342,7 +4342,7 @@ gp_motion_cost_per_row -

    Sets the legacy query optimizer (planner) cost estimate for a Motion operator to transfer a +

    Sets the Postgres query optimizer (planner) cost estimate for a Motion operator to transfer a row from one segment to another, measured as a fraction of the cost of a sequential page fetch. If 0, then the value used is two times the value of cpu_tuple_cost.

    @@ -4882,9 +4882,9 @@ gp_segments_for_planner -

    Sets the number of primary segment instances for the legacy query optimizer (planner) to +

    Sets the number of primary segment instances for the Postgres query optimizer (planner) to assume in its cost and size estimates. If 0, then the value used is the actual number of - primary segments. This variable affects the legacy optimizer's estimates of the number of + primary segments. This variable affects the Postgres optimizer's estimates of the number of rows handled by each sending and receiving process in Motion operators.

    @@ -5057,7 +5057,7 @@ gp_statistics_pullup_from_child_partition

    Enables the use of statistics from child tables when planning queries on the parent table - by the legacy query optimizer (planner).

    + by the Postgres query optimizer (planner).

    @@ -5084,7 +5084,7 @@ gp_statistics_use_fkeys -

    When enabled, allows the legacy query optimizer (planner) to use foreign key information +

    When enabled, allows the Postgres query optimizer (planner) to use foreign key information stored in the system catalog to optimize joins between foreign keys and primary keys.

    @@ -5523,7 +5523,7 @@ join_collapse_limit -

    The legacy query optimizer (planner) will rewrite explicit inner JOIN +

    The Postgres query optimizer (planner) will rewrite explicit inner JOIN constructs into lists of FROM items whenever a list of no more than this many items in total would result. By default, this variable is set the same as from_collapse_limit, which is appropriate for most uses. Setting it to 1 prevents @@ -6255,7 +6255,7 @@ log_planner_stats -

    For each query, write performance statistics of the legacy query optimizer (planner) to the +

    For each query, write performance statistics of the Postgres query optimizer (planner) to the server log. This is a crude profiling instrument. Cannot be enabled together with log_statement_stats.

    @@ -6951,13 +6951,13 @@ optimizer

    Enables or disables GPORCA when running SQL queries. The default is on. If - you disable GPORCA, Greenplum Database uses only the legacy query optimizer.

    -

    GPORCA co-exists with the legacy query optimizer. With GPORCA enabled, Greenplum Database + you disable GPORCA, Greenplum Database uses only the Postgres query optimizer.

    +

    GPORCA co-exists with the Postgres query optimizer. With GPORCA enabled, Greenplum Database uses GPORCA to generate an execution plan for a query when possible. If GPORCA cannot be - used, then the legacy query optimizer is used.

    + used, then the Postgres query optimizer is used.

    The optimizer parameter can be set for a database system, an individual database, or a session or query.

    -

    For information about the legacy query optimizer and GPORCA, see For information about the Postgres query optimizer and GPORCA, see Querying Data in the Greenplum Database Administrator Guide.

    @@ -6990,7 +6990,7 @@

    For a partitioned table, controls whether the ROOTPARTITION keyword is required to collect root partition statistics when the ANALYZE command is run on the table. GPORCA uses the root partition statistics when generating a query plan. - The legacy query optimizer does not use these statistics.

    + The Postgres query optimizer does not use these statistics.

    The default setting for the parameter is on, the ANALYZE command can collect root partition statistics without the ROOTPARTITION keyword. Root partition statistics are collected when you run ANALYZE on @@ -7003,7 +7003,7 @@ parameter should also be on. For information about collecting table statistics on partitioned tables, see .

    -

    For information about the legacy query optimizer and GPORCA, see For information about the Postgres query optimizer and GPORCA, see Querying Data in the Greenplum Database Administrator Guide.

    @@ -7179,7 +7179,7 @@

    When GPORCA is enabled (the default), this parameter allows GPORCA to execute catalog queries that run only on the Greenplum Database master. For the default value - off, only the legacy query optimizer can execute catalog queries that run + off, only the Postgres query optimizer can execute catalog queries that run only on the Greenplum Database master.

    The parameter can be set for a database system, an individual database, or a session or query.

    @@ -7988,7 +7988,7 @@ random_page_cost -

    Sets the estimate of the cost of a nonsequentially fetched disk page for the legacy query +

    Sets the estimate of the cost of a nonsequentially fetched disk page for the Postgres query optimizer (planner). This is measured as a multiple of the cost of a sequential page fetch. A higher value makes it more likely a sequential scan will be used, a lower value makes it more likely an index scan will be used.

    @@ -8282,7 +8282,7 @@ seq_page_cost -

    For the legacy query optimizer (planner), sets the estimate of the cost of a disk page +

    For the Postgres query optimizer (planner), sets the estimate of the cost of a disk page fetch that is part of a series of sequential fetches.

    diff --git a/gpdb-doc/dita/ref_guide/config_params/guc_category-list.xml b/gpdb-doc/dita/ref_guide/config_params/guc_category-list.xml index 50c10d3ebf707a6e511ad9a54ddb57294d2c39c7..90e43e6f766ebefc5eb1c9bf1633fa25db6b405f 100644 --- a/gpdb-doc/dita/ref_guide/config_params/guc_category-list.xml +++ b/gpdb-doc/dita/ref_guide/config_params/guc_category-list.xml @@ -373,10 +373,10 @@ These parameters control aspects of SQL query processing such as query operators and operator settings and statistics sampling. - Legacy Query Optimizer Operator Control Parameters + Postgres Query Optimizer Operator Control Parameters -

    The following parameters control the types of plan operations the legacy query optimizer - can use. Enable or disable plan operations to force the legacy optimizer to choose a +

    The following parameters control the types of plan operations the Postgres query optimizer + can use. Enable or disable plan operations to force the Postgres optimizer to choose a different plan. This is useful for testing and comparing query performance using different plan types.

    @@ -470,7 +470,7 @@
    - Legacy Query Optimizer Costing Parameters + Postgres Query Optimizer Costing Parameters Do not adjust these query costing parameters. They are tuned to reflect Greenplum Database hardware configurations and typical workloads. All of these parameters @@ -635,7 +635,7 @@ - Other Legacy Query Optimizer Configuration Parameters + Other Postgres Query Optimizer Configuration Parameters diff --git a/gpdb-doc/dita/ref_guide/sql_commands/ALTER_RESOURCE_QUEUE.xml b/gpdb-doc/dita/ref_guide/sql_commands/ALTER_RESOURCE_QUEUE.xml index 79d8eb92e23e86dc591d92f21590bcdfdc34491e..695b497eb0a2489689735cd9db6ec2993808d780 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/ALTER_RESOURCE_QUEUE.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/ALTER_RESOURCE_QUEUE.xml @@ -102,13 +102,13 @@

    GPORCA and the legacy Greenplum Database query optimizer utilize different query costing models and may compute different costs for the same query. The Greenplum Database resource queue resource management scheme neither - differentiates nor aligns costs between GPORCA and the legacy optimizer; it + differentiates nor aligns costs between GPORCA and the Postgres optimizer; it uses the literal cost value returned from the optimizer to throttle queries.

    When resource queue-based resource management is active, use the MEMORY_LIMIT and ACTIVE_STATEMENTS limits for resource queues rather than configuring cost-based limits. Even when using GPORCA, - Greenplum Database may fall back to using the legacy query optimizer for certain + Greenplum Database may fall back to using the Postgres query optimizer for certain queries, so using cost-based limits can lead to unexpected results.

    diff --git a/gpdb-doc/dita/ref_guide/sql_commands/ANALYZE.xml b/gpdb-doc/dita/ref_guide/sql_commands/ANALYZE.xml index 172fc84ccd36994d7ca2a8c83b5f417c9a99f492..20b48593f19332f1e6936f99f185c2750778ff81 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/ANALYZE.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/ANALYZE.xml @@ -248,8 +248,8 @@ ANALYZE [VERBOSE] ROOTPARTITION {ALL | root_partition [ (

    If there are no statistics for the table, the server configuration parameter controls - whether the legacy query optimizer uses a default statistics file or estimates the size of a - table using the pg_relation_size function. By default, the legacy optimizer + whether the Postgres query optimizer uses a default statistics file or estimates the size of a + table using the pg_relation_size function. By default, the Postgres optimizer uses the default statistics file to estimate the number of rows if statistics are not available.

    diff --git a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_FUNCTION.xml b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_FUNCTION.xml index b7a18ebf7056d273aa8a36c8608fb7787151b786..31d120b18023983c5c953b3b91ffd34fa3ccb883 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_FUNCTION.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_FUNCTION.xml @@ -427,7 +427,7 @@ $SomeTag$Dianne's horse$SomeTag$
  • The function cannot be in the FROM clause of a query.
  • The function cannot be in the SELECT list of a query with a FROM clause.
  • -
  • A query that includes the function falls back from GPORCA to the legacy +
  • A query that includes the function falls back from GPORCA to the Postgres query planner.
  • Examples

    A very simple addition diff --git a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_RESOURCE_QUEUE.xml b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_RESOURCE_QUEUE.xml index 8e6104d7a82327539a03d2b6ecb93272f12560b3..1fa71bf6524d483482134968c27c503f35b8184b 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_RESOURCE_QUEUE.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_RESOURCE_QUEUE.xml @@ -45,15 +45,15 @@ exceed the cost limit will always be rejected and never allowed to run. Specifying a value for MIN_COST allows the administrator to define a cost for small queries that will be exempt from resource queueing.

    - GPORCA and the legacy Greenplum Database query optimizer utilize different + GPORCA and the Postgres query optimizer utilize different query costing models and may compute different costs for the same query. The Greenplum Database resource queue resource management scheme neither - differentiates nor aligns costs between GPORCA and the legacy optimizer; it + differentiates nor aligns costs between GPORCA and the Postgres optimizer; it uses the literal cost value returned from the optimizer to throttle queries.

    When resource queue-based resource management is active, use the MEMORY_LIMIT and ACTIVE_STATEMENTS limits for resource queues rather than configuring cost-based limits. Even when using GPORCA, - Greenplum Database may fall back to using the legacy query optimizer for certain + Greenplum Database may fall back to using the Postgres query optimizer for certain queries, so using cost-based limits can lead to unexpected results.

    If a value is not defined for ACTIVE_STATEMENTS or MAX_COST, it is set to -1 by default (meaning no limit). diff --git a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE.xml b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE.xml index 357669bff45409c7e7d9a0fa6a48dbfe8ec0aa6c..111a593a9fedcaddd4493849a310307807133552 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE.xml @@ -780,7 +780,7 @@ CREATE [ [GLOBAL | LOCAL] {TEMPORARY | TEMP} | UNLOGGED ] TABLE [IF NOT EXISTS] href="../../ref_guide/config_params/guc-list.xml#gp_default_storage_options" >gp_default_storage_options.

    - The current Greenplum Database legacy optimizer allows list partitions + The current Greenplum Database Postgres optimizer allows list partitions with multi-column (composite) partition keys. GPORCA does not support composite keys, so using composite partition keys is not recommended.
    diff --git a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE_AS.xml b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE_AS.xml index b3ef6da3e23305ab21c54704e6952870a61aa3a1..ab77c25990b5819c5e0c234fcd7572e8b6b12b54 100644 --- a/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE_AS.xml +++ b/gpdb-doc/dita/ref_guide/sql_commands/CREATE_TABLE_AS.xml @@ -163,10 +163,10 @@ table distribution policy if the DISTRIBUTED BY clause is not specified when you create a table. Greenplum Database follows these rules to create a table if a distribution policy is not specified.
      -
    • If the legacy query optimizer creates the table, and the value of the parameter is +
    • If the Postgres query optimizer creates the table, and the value of the parameter is off, the table distribution policy is determined based on the command.
    • -
    • If the legacy query optimizer creates the table, and the value of the parameter is +
    • If the Postgres query optimizer creates the table, and the value of the parameter is on, the table distribution policy is random.
    • If GPORCA creates the table, the table distribution policy is random. The parameter value has no effect.
    • @@ -174,7 +174,7 @@ For more information about setting the default table distribution policy, see gp_create_table_random_default_distribution. For - information about the legacy query optimizer and GPORCA, see Querying Data in the Greenplum Database Administrator Guide. diff --git a/src/backend/cdb/cdbmutate.c b/src/backend/cdb/cdbmutate.c index e972952f046cac6d117f76476a6eae9f71e4db14..070b69bbaa84d69bd1c0e0900f30ef4c325b5785 100644 --- a/src/backend/cdb/cdbmutate.c +++ b/src/backend/cdb/cdbmutate.c @@ -1425,7 +1425,7 @@ process_targetlist_for_splitupdate(Relation resultRel, List *targetlist, } /* - * In legacy planner, we add a SplitUpdate node at top so that updating on distribution + * In Postgres planner, we add a SplitUpdate node at top so that updating on distribution * columns could be handled. The SplitUpdate will split each update into delete + insert. * * There are several important points should be highlighted: diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index dca64d125ab3e8d5e829e858e7338d1726f1df39..8f668a9693d800d1e25175ca7240fc0869088e0a 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -644,7 +644,7 @@ ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es, ExplainOpenGroup("Settings", "Settings", true, es); if (queryDesc->plannedstmt->planGen == PLANGEN_PLANNER) - ExplainProperty("Optimizer", "legacy query optimizer", false, es); + ExplainProperty("Optimizer", "Postgres query optimizer", false, es); #ifdef USE_ORCA else ExplainPropertyStringInfo("Optimizer", es, "PQO version %s", OptVersion()); diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index b3ab909e42b9a2d7c3eb5017e440a15c8e025ddb..e73a236dda2f2a2a931d58fa21484a684c348fb8 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -14862,7 +14862,7 @@ ATExecExpandTableCTAS(AlterTableCmd *rootCmd, Relation rel, AlterTableCmd *cmd) /* Step (a) */ /* - * Force the use of legacy query optimizer, since PQO will not + * Force the use of Postgres query optimizer, since PQO will not * redistribute the tuples if the current and required distributions * are both RANDOM even when reorganize is set to "true" */ @@ -15376,7 +15376,7 @@ ATExecSetDistributedBy(Relation rel, Node *node, AlterTableCmd *cmd) ldistro = make_distributedby_for_rel(rel); /* - * Force the use of legacy query optimizer, since PQO will not + * Force the use of Postgres query optimizer, since PQO will not * redistribute the tuples if the current and required distributions * are both RANDOM even when reorganize is set to "true" */ @@ -15385,7 +15385,7 @@ ATExecSetDistributedBy(Relation rel, Node *node, AlterTableCmd *cmd) if (saveOptimizerGucValue) ereport(LOG, - (errmsg("ALTER SET DISTRIBUTED BY: falling back to legacy query optimizer to ensure re-distribution of tuples."))); + (errmsg("ALTER SET DISTRIBUTED BY: falling back to Postgres query optimizer to ensure re-distribution of tuples."))); GpPolicy *original_policy = NULL; diff --git a/src/backend/executor/instrument.c b/src/backend/executor/instrument.c index 04f68c25b1278b19620149efbec01c36db4fdfb6..56798e2680d5cea849cf81157de6001b6aea2c7d 100644 --- a/src/backend/executor/instrument.c +++ b/src/backend/executor/instrument.c @@ -300,7 +300,7 @@ shouldPickInstrInShmem(NodeTag tag) case T_SeqScan: /* - * If table has many partitions, legacy planner will generate a + * If table has many partitions, Postgres planner will generate a * plan with many SCAN nodes under a APPEND node. If the number of * partitions are too many, this plan will occupy too many slots. * Here is a limitation on number of shmem slots used by scan diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index 6df648c5af7bec246daf832acaeb302b59ed089e..46cbfb5bef9adda4db9388a0b381fcea48b23d3e 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -2045,7 +2045,7 @@ no_unique_path: /* failure exit */ * -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..8.00 rows=100 width=18) * -> Seq Scan on s (cost=0.00..4.00 rows=34 width=18) * Settings: optimizer=off - * Optimizer status: legacy query optimizer + * Optimizer status: Postgres query optimizer * (14 rows) * * diff --git a/src/test/isolation/expected/drop-index-concurrently-1.out b/src/test/isolation/expected/drop-index-concurrently-1.out index 18de410881585628ca48e08696fa2c641adb1931..b0b2084da90a595e8dc71e5478eb58a207d4663e 100644 --- a/src/test/isolation/expected/drop-index-concurrently-1.out +++ b/src/test/isolation/expected/drop-index-concurrently-1.out @@ -18,7 +18,7 @@ Gather Motion 3:1 (slice1; segments: 3) Sort Key: id -> Index Scan using test_dc_data on test_dc Index Cond: (data = 34) -Optimizer: legacy query optimizer +Optimizer: Postgres query optimizer step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq; QUERY PLAN @@ -28,7 +28,7 @@ Gather Motion 3:1 (slice1; segments: 3) Sort Key: id, data -> Seq Scan on test_dc Filter: ((data)::text = '34'::text) -Optimizer: legacy query optimizer +Optimizer: Postgres query optimizer step select2: SELECT * FROM test_dc WHERE data=34 ORDER BY id,data; id data diff --git a/src/test/isolation2/output/ao_upgrade.source b/src/test/isolation2/output/ao_upgrade.source index 427b6c3ae133d257868f9ab43e541eb2536f28ff..f5bc67b32a4c07743d9da7ddb3399e43a97bcc10 100644 --- a/src/test/isolation2/output/ao_upgrade.source +++ b/src/test/isolation2/output/ao_upgrade.source @@ -158,7 +158,7 @@ EXPLAIN SELECT n FROM ao_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on ao_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) EXPLAIN SELECT n FROM aocs_upgrade_test WHERE n = (9 !); QUERY PLAN @@ -169,7 +169,7 @@ EXPLAIN SELECT n FROM aocs_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on aocs_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) EXPLAIN SELECT n FROM aocs_rle_upgrade_test WHERE n = (9 !); QUERY PLAN @@ -180,7 +180,7 @@ EXPLAIN SELECT n FROM aocs_rle_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on aocs_rle_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT n FROM ao_upgrade_test WHERE n = (9 !); diff --git a/src/test/isolation2/output/ao_upgrade_optimizer.source b/src/test/isolation2/output/ao_upgrade_optimizer.source index 427b6c3ae133d257868f9ab43e541eb2536f28ff..f5bc67b32a4c07743d9da7ddb3399e43a97bcc10 100644 --- a/src/test/isolation2/output/ao_upgrade_optimizer.source +++ b/src/test/isolation2/output/ao_upgrade_optimizer.source @@ -158,7 +158,7 @@ EXPLAIN SELECT n FROM ao_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on ao_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) EXPLAIN SELECT n FROM aocs_upgrade_test WHERE n = (9 !); QUERY PLAN @@ -169,7 +169,7 @@ EXPLAIN SELECT n FROM aocs_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on aocs_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) EXPLAIN SELECT n FROM aocs_rle_upgrade_test WHERE n = (9 !); QUERY PLAN @@ -180,7 +180,7 @@ EXPLAIN SELECT n FROM aocs_rle_upgrade_test WHERE n = (9 !); -> Bitmap Index Scan on aocs_rle_bitmap_index (cost=0.00..1000.36 rows=1 width=0) Index Cond: n = 362880::numeric Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT n FROM ao_upgrade_test WHERE n = (9 !); diff --git a/src/test/regress/expected/DML_over_joins.out b/src/test/regress/expected/DML_over_joins.out index 49e1bddd1bc7eb65e1c73120e3f0f678dd1afc8d..c00c51d44d7bba9928e8f143a3c44aa7e0acc4c7 100644 --- a/src/test/regress/expected/DML_over_joins.out +++ b/src/test/regress/expected/DML_over_joins.out @@ -70,7 +70,7 @@ explain update s set b = b + 1 where exists (select 1 from r where s.a = r.b); -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..8.00 rows=100 width=18) -> Seq Scan on s (cost=0.00..4.00 rows=34 width=18) Planning time: 1.342 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) update s set b = b + 1 where exists (select 1 from r where s.a = r.b); @@ -90,7 +90,7 @@ explain delete from s where exists (select 1 from r where s.a = r.b); -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..8.00 rows=100 width=14) -> Seq Scan on s (cost=0.00..4.00 rows=34 width=14) Planning time: 1.130 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) delete from s where exists (select 1 from r where s.a = r.b); diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out index 2023470a3f0157f5ecad4641d676c56d8c092d0b..276d43e3c2f1413c043e292dec485e116a326ea8 100755 --- a/src/test/regress/expected/aggregates.out +++ b/src/test/regress/expected/aggregates.out @@ -392,7 +392,7 @@ order by 1, 2; -> Function Scan on pg_catalog.generate_series s2 Output: s2.s2 Function Call: generate_series(1, 3) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select s1, s2, sm @@ -596,7 +596,7 @@ explain (costs off) Merge Key: tenk1.unique1 -> Index Only Scan using tenk1_unique1 on tenk1 Index Cond: (unique1 IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select min(unique1) from tenk1; @@ -616,7 +616,7 @@ explain (costs off) Merge Key: tenk1.unique1 -> Index Only Scan Backward using tenk1_unique1 on tenk1 Index Cond: (unique1 IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select max(unique1) from tenk1; @@ -636,7 +636,7 @@ explain (costs off) Merge Key: tenk1.unique1 -> Index Only Scan Backward using tenk1_unique1 on tenk1 Index Cond: ((unique1 IS NOT NULL) AND (unique1 < 42)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select max(unique1) from tenk1 where unique1 < 42; @@ -656,7 +656,7 @@ explain (costs off) Merge Key: tenk1.unique1 -> Index Only Scan Backward using tenk1_unique1 on tenk1 Index Cond: ((unique1 IS NOT NULL) AND (unique1 > 42)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select max(unique1) from tenk1 where unique1 > 42; @@ -678,7 +678,7 @@ explain (costs off) Merge Key: tenk1.unique1 -> Index Only Scan Backward using tenk1_unique1 on tenk1 Index Cond: ((unique1 IS NOT NULL) AND (unique1 > 42000)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select max(unique1) from tenk1 where unique1 > 42000; @@ -700,7 +700,7 @@ explain (costs off) Merge Key: tenk1.tenthous -> Index Only Scan Backward using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand = 33) AND (tenthous IS NOT NULL)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select max(tenthous) from tenk1 where thousand = 33; @@ -720,7 +720,7 @@ explain (costs off) Merge Key: tenk1.tenthous -> Index Only Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand = 33) AND (tenthous IS NOT NULL)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select min(tenthous) from tenk1 where thousand = 33; @@ -746,7 +746,7 @@ explain (costs off) -> Materialize -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on tenk1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select f1, (select min(unique1) from tenk1 where unique1 > f1) AS gt @@ -774,7 +774,7 @@ explain (costs off) -> Index Only Scan Backward using tenk1_unique2 on tenk1 Index Cond: (unique2 IS NOT NULL) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select distinct max(unique2) from tenk1; @@ -796,7 +796,7 @@ explain (costs off) -> Index Only Scan Backward using tenk1_unique2 on tenk1 Index Cond: (unique2 IS NOT NULL) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select max(unique2) from tenk1 order by 1; @@ -818,7 +818,7 @@ explain (costs off) -> Index Only Scan Backward using tenk1_unique2 on tenk1 Index Cond: (unique2 IS NOT NULL) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select max(unique2) from tenk1 order by max(unique2); @@ -840,7 +840,7 @@ explain (costs off) -> Index Only Scan Backward using tenk1_unique2 on tenk1 Index Cond: (unique2 IS NOT NULL) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select max(unique2) from tenk1 order by max(unique2)+1; @@ -862,7 +862,7 @@ explain (costs off) -> Index Only Scan Backward using tenk1_unique2 on tenk1 Index Cond: (unique2 IS NOT NULL) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select max(unique2), generate_series(1,3) as g from tenk1 order by g desc; @@ -920,7 +920,7 @@ explain (costs off) Index Cond: (f1 IS NOT NULL) -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest3_1 Index Cond: (f1 IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select min(f1), max(f1) from minmaxtest; @@ -945,7 +945,7 @@ explain (costs off) -> Seq Scan on minmaxtest1 -> Seq Scan on minmaxtest2 -> Seq Scan on minmaxtest3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select distinct min(f1), max(f1) from minmaxtest; diff --git a/src/test/regress/expected/aggregates_optimizer.out b/src/test/regress/expected/aggregates_optimizer.out index d43bbaebf1acea12ed3b04d6c7f45895933bdafd..49bea0a9e3721a9af3a3f4321fd0053c509ae49f 100644 --- a/src/test/regress/expected/aggregates_optimizer.out +++ b/src/test/regress/expected/aggregates_optimizer.out @@ -408,7 +408,7 @@ DETAIL: Feature not supported: LATERAL -> Function Scan on pg_catalog.generate_series s2 Output: s2.s2 Function Call: generate_series(1, 3) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select s1, s2, sm @@ -452,7 +452,7 @@ DETAIL: Feature not supported: Non-Scalar Subquery -> Function Scan on pg_catalog.generate_series y Output: y.y Function Call: generate_series(1, 3) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select array(select sum(x+y) s @@ -927,7 +927,7 @@ DETAIL: Feature not supported: Inherited tables Index Cond: (f1 IS NOT NULL) -> Index Only Scan Backward using minmaxtest3i on minmaxtest3 minmaxtest3_1 Index Cond: (f1 IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select min(f1), max(f1) from minmaxtest; @@ -956,7 +956,7 @@ DETAIL: Feature not supported: Inherited tables -> Seq Scan on minmaxtest1 -> Seq Scan on minmaxtest2 -> Seq Scan on minmaxtest3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select distinct min(f1), max(f1) from minmaxtest; diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 3a9b28a0d98852fb09636e84360c45043a423003..905e1cbfe63950d7f45e4600e686e57fac068263 100755 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -478,7 +478,7 @@ explain (costs off) select * from nv_parent where d between '2011-08-01' and '20 Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date)) -> Seq Scan on nv_child_2011 Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) create table nv_child_2009 (check (d between '2009-01-01'::date and '2009-12-31'::date)) inherits (nv_parent); @@ -493,7 +493,7 @@ explain (costs off) select * from nv_parent where d between '2011-08-01'::date a Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date)) -> Seq Scan on nv_child_2011 Filter: ((d >= '08-01-2011'::date) AND (d <= '08-31-2011'::date)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) select * from nv_parent where d between '2009-08-01'::date and '2009-08-31'::date; @@ -509,7 +509,7 @@ explain (costs off) select * from nv_parent where d between '2009-08-01'::date a Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date)) -> Seq Scan on nv_child_2009 Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- after validation, the constraint should be used @@ -525,7 +525,7 @@ explain (costs off) select * from nv_parent where d between '2009-08-01'::date a Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date)) -> Seq Scan on nv_child_2009 Filter: ((d >= '08-01-2009'::date) AND (d <= '08-31-2009'::date)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- add an inherited NOT VALID constraint @@ -2230,7 +2230,7 @@ explain (verbose, costs off) select * from at_view_2; Output: bt.id, bt.stuff, (to_json(ROW(bt.id, bt.stuff))) -> Seq Scan on public.at_base_table bt Output: bt.id, bt.stuff, to_json(ROW(bt.id, bt.stuff)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: constraint_exclusion=partition (6 rows) @@ -2274,7 +2274,7 @@ explain (verbose, costs off) select * from at_view_2; Output: bt.id, bt.stuff, (to_json(ROW(bt.id, bt.stuff, NULL))) -> Seq Scan on public.at_base_table bt Output: bt.id, bt.stuff, to_json(ROW(bt.id, bt.stuff, NULL)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: constraint_exclusion=partition (6 rows) diff --git a/src/test/regress/expected/bfv_aggregate.out b/src/test/regress/expected/bfv_aggregate.out index 2e475abc3c258e78d49c3872d715f5b7433a93a7..9d4a4abe00fab1754e9b467fb143e3cdc1ec8f8c 100644 --- a/src/test/regress/expected/bfv_aggregate.out +++ b/src/test/regress/expected/bfv_aggregate.out @@ -1599,7 +1599,7 @@ EXPLAIN SELECT count(unnest(foo)) FROM tbl_agg_srf; -> Gather Motion 3:1 (slice1; segments: 3) (cost=1.02..1.07 rows=1 width=8) -> Aggregate (cost=1.02..1.03 rows=1 width=8) -> Seq Scan on tbl_agg_srf (cost=0.00..1.01 rows=1 width=33) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT count(unnest(foo)) FROM tbl_agg_srf; diff --git a/src/test/regress/expected/bfv_aggregate_optimizer.out b/src/test/regress/expected/bfv_aggregate_optimizer.out index 5f04ba7a0522361db7c772fcb936c40092cb4d0a..0dfd35eada6b9d334f2ff33b2a9c88bb6de9526f 100644 --- a/src/test/regress/expected/bfv_aggregate_optimizer.out +++ b/src/test/regress/expected/bfv_aggregate_optimizer.out @@ -1599,7 +1599,7 @@ EXPLAIN SELECT count(unnest(foo)) FROM tbl_agg_srf; -> Gather Motion 3:1 (slice1; segments: 3) (cost=1.02..1.07 rows=1 width=8) -> Aggregate (cost=1.02..1.03 rows=1 width=8) -> Seq Scan on tbl_agg_srf (cost=0.00..1.01 rows=1 width=33) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT count(unnest(foo)) FROM tbl_agg_srf; diff --git a/src/test/regress/expected/bfv_catalog.out b/src/test/regress/expected/bfv_catalog.out index fbbaf5a207a783cca22406d1c6c41cc2a9505f8a..6867308eea7d18588bc9cb03b4a4e049a3dcc4b8 100644 --- a/src/test/regress/expected/bfv_catalog.out +++ b/src/test/regress/expected/bfv_catalog.out @@ -258,7 +258,7 @@ explain select pg_column_size('mpp_bfv_2'); ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) explain select pg_lock_status(); @@ -266,7 +266,7 @@ explain select pg_lock_status(); ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) select pg_get_constraintdef(pg_constraint.oid) from pg_constraint, pg_class where conrelid=pg_class.oid and pg_class.relname='mpp_bfv_2'; diff --git a/src/test/regress/expected/bfv_dml.out b/src/test/regress/expected/bfv_dml.out index 790d4cf11eb8989fe69bf75862e8309d9ed5fc79..fa1c9dc9dbdcfcaed4ea8d59d28d2f7d95976f23 100644 --- a/src/test/regress/expected/bfv_dml.out +++ b/src/test/regress/expected/bfv_dml.out @@ -186,7 +186,7 @@ explain update update_pk_test set b = 5; Update on update_pk_test (cost=0.00..1.01 rows=1 width=14) -> Seq Scan on update_pk_test (cost=0.00..1.01 rows=1 width=14) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) update update_pk_test set b = 5; @@ -204,7 +204,7 @@ explain update update_pk_test set a = 5; Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=14) -> Seq Scan on update_pk_test (cost=0.00..1.01 rows=1 width=14) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) update update_pk_test set a = 5; diff --git a/src/test/regress/expected/bfv_index.out b/src/test/regress/expected/bfv_index.out index 68afb7c03fba2d05e39b6387619228263a908511..4c0d6f38e129fc88c4d782a69c023853675b0374 100644 --- a/src/test/regress/expected/bfv_index.out +++ b/src/test/regress/expected/bfv_index.out @@ -30,7 +30,7 @@ explain select * from bfv_tab1, (values(147, 'RFAAAA'), (931, 'VJAAAA')) as v (i -> Seq Scan on bfv_tab1 (cost=0.00..219.00 rows=3967 width=244) -> Hash (cost=0.03..0.03 rows=1 width=36) -> Values Scan on "*VALUES*" (cost=0.00..0.03 rows=1 width=36) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) set gp_enable_relsize_collection=on; @@ -45,7 +45,7 @@ explain select * from bfv_tab1, (values(147, 'RFAAAA'), (931, 'VJAAAA')) as v (i -> Hash (cost=0.00..0.00 rows=1 width=244) -> Seq Scan on bfv_tab1 (cost=0.00..0.00 rows=1 width=244) Settings: gp_enable_relsize_collection=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) reset gp_enable_relsize_collection; @@ -184,7 +184,7 @@ AND ft.id = dt1.id; -> Seq Scan on bfv_tab2_dimtabl1 dt1 (cost=0.00..3.07 rows=3 width=4) -> Hash (cost=3.10..3.10 rows=4 width=2) -> Seq Scan on bfv_tab2_dimdate dt (cost=0.00..3.10 rows=4 width=2) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (36 rows) -- start_ignore @@ -460,7 +460,7 @@ explain select * from tbl_ab where b::oid=1; Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1176.25 rows=87 width=8) -> Seq Scan on tbl_ab (cost=0.00..1176.25 rows=29 width=8) Filter: b::oid = 1::oid - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) drop table tbl_ab; @@ -507,7 +507,7 @@ explain select * from nestloop_x as x, nestloop_y as y where x.i + x.j < y.j; -> Index Scan using nestloop_y_idx on nestloop_y y (cost=0.00..510.39 rows=1 width=8) Index Cond: (x.i + x.j) < y.j Settings: enable_indexscan=on; enable_nestloop=on; optimizer=off; seq_page_cost=1e+07 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select * from nestloop_x as x, nestloop_y as y where x.i + x.j < y.j; @@ -534,7 +534,7 @@ explain select * from nestloop_x as x, nestloop_y as y where y.j > x.i + x.j + 2 -> Index Scan using nestloop_y_idx on nestloop_y y (cost=0.00..510.39 rows=1 width=8) Index Cond: y.j > (x.i + x.j + 2) Settings: enable_indexscan=on; enable_nestloop=on; optimizer=off; seq_page_cost=1e+07 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select * from nestloop_x as x, nestloop_y as y where y.j > x.i + x.j + 2; @@ -603,7 +603,7 @@ explain select * from shape_heap where c && '<(5,5), 1>'::circle; Recheck Cond: c && '<(5,5),1>'::circle -> Bitmap Index Scan on shape_heap_bb_idx (cost=0.00..101.26 rows=1 width=0) Index Cond: c && '<(5,5),1>'::circle - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain select * from shape_ao where c && '<(5,5), 1>'::circle; @@ -614,7 +614,7 @@ explain select * from shape_ao where c && '<(5,5), 1>'::circle; Recheck Cond: c && '<(5,5),1>'::circle -> Bitmap Index Scan on shape_ao_bb_idx (cost=0.00..101.26 rows=1 width=0) Index Cond: c && '<(5,5),1>'::circle - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain select * from shape_aocs where c && '<(5,5), 1>'::circle; @@ -625,7 +625,7 @@ explain select * from shape_aocs where c && '<(5,5), 1>'::circle; Recheck Cond: c && '<(5,5),1>'::circle -> Bitmap Index Scan on shape_aocs_bb_idx (cost=0.00..101.26 rows=1 width=0) Index Cond: c && '<(5,5),1>'::circle - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- Test that they return correct results. diff --git a/src/test/regress/expected/bfv_index_optimizer.out b/src/test/regress/expected/bfv_index_optimizer.out index 0ce837ef9cd76e935fef908d8ff7d2f78dec80e4..67a4dd3f656ac4e7f2a0cf76d0fa1465305c277f 100644 --- a/src/test/regress/expected/bfv_index_optimizer.out +++ b/src/test/regress/expected/bfv_index_optimizer.out @@ -447,7 +447,7 @@ explain select * from tbl_ab where b::oid=1; -> Seq Scan on tbl_ab (cost=0.00..1176.25 rows=29 width=8) Filter: b::oid = 1::oid Settings: optimizer=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) drop table tbl_ab; diff --git a/src/test/regress/expected/bfv_joins.out b/src/test/regress/expected/bfv_joins.out index 8cbae94a9530957010da3f8e1c07a8fe2282cdf9..187584f8e2793d2030f4dfb9bac1a8d3f61a243c 100644 --- a/src/test/regress/expected/bfv_joins.out +++ b/src/test/regress/expected/bfv_joins.out @@ -669,7 +669,7 @@ explain select 1 as mrs_t1 where 1 <= ALL (select x from z); -> Materialize (cost=0.00..0.01 rows=1 width=4) -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..0.00 rows=1 width=4) -> Seq Scan on z (cost=0.00..0.00 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) -- @@ -3091,7 +3091,7 @@ ON (member_group.group_id IN (12,13,14,15) AND member_subgroup.subgroup_name = r -> Redistribute Motion 3:3 (slice4; segments: 3) Hash Key: region.county_name -> Seq Scan on region - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) -- Test colocated equijoins on coerced distribution keys @@ -3107,7 +3107,7 @@ EXPLAIN (costs off) SELECT * FROM coercejoin a, coercejoin b WHERE a.a=b.a; -> Seq Scan on coercejoin a -> Hash -> Seq Scan on coercejoin b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- Negative test, the join should not be colocated since the cast is a coercion @@ -3126,7 +3126,7 @@ EXPLAIN (costs off) SELECT * FROM coercejoin a, coercejoin b WHERE a.a::numeric= -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: (b.a)::numeric -> Seq Scan on coercejoin b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- @@ -3151,7 +3151,7 @@ explain select * from nlj1, nlj2 where nlj1.a = nlj2.a; -> Seq Scan on nlj1 (cost=0.00..2.02 rows=1 width=8) -> Materialize (cost=0.00..2.03 rows=1 width=8) -> Seq Scan on nlj2 (cost=0.00..2.02 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from nlj1, nlj2 where nlj1.a = nlj2.a; @@ -3170,7 +3170,7 @@ explain select * from nlj1, nlj2 where nlj1.a is not distinct from nlj2.a; -> Materialize (cost=0.00..2.13 rows=2 width=8) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.10 rows=2 width=8) -> Seq Scan on nlj2 (cost=0.00..2.02 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select * from nlj1, nlj2 where nlj1.a is not distinct from nlj2.a; @@ -3190,7 +3190,7 @@ explain select * from nlj1, (select NULL a, b from nlj2) other where nlj1.a is n -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.06 rows=1 width=8) -> Seq Scan on nlj1 (cost=0.00..2.02 rows=1 width=8) Filter: (NOT (a IS DISTINCT FROM NULL::integer)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select * from nlj1, (select NULL a, b from nlj2) other where nlj1.a is not distinct from other.a; @@ -3210,7 +3210,7 @@ explain select * from nlj1, nlj2 where nlj1.a is distinct from nlj2.a; -> Materialize (cost=0.00..2.13 rows=2 width=8) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.10 rows=2 width=8) -> Seq Scan on nlj2 (cost=0.00..2.02 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select * from nlj1, nlj2 where nlj1.a is distinct from nlj2.a; @@ -3267,7 +3267,7 @@ set enable_nestloop=on; -- -> Seq Scan on a -- -> Index Only Scan using c_i_j_idx on c -- Index Cond: (j = (a.i + b.i)) [4] --- Optimizer: legacy query optimizer +-- Optimizer: Postgres query optimizer -- (14 rows) -- -- The crucal parts are: @@ -3301,7 +3301,7 @@ explain (costs off) select * from a, b, c where b.i = a.i and (a.i + b.i) = c.j; -> Seq Scan on a -> Index Only Scan using c_i_j_idx on c Index Cond: (j = (a.i + b.i)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select * from a, b, c where b.i = a.i and (a.i + b.i) = c.j; diff --git a/src/test/regress/expected/bfv_joins_optimizer.out b/src/test/regress/expected/bfv_joins_optimizer.out index d9c7556e6dcc3d23208d9ae593dd6a9f80a8b341..bf08e75c3ac7291f242d95a33b81fe435c894827 100644 --- a/src/test/regress/expected/bfv_joins_optimizer.out +++ b/src/test/regress/expected/bfv_joins_optimizer.out @@ -3265,7 +3265,7 @@ set enable_nestloop=on; -- -> Seq Scan on a -- -> Index Only Scan using c_i_j_idx on c -- Index Cond: (j = (a.i + b.i)) [4] --- Optimizer: legacy query optimizer +-- Optimizer: Postgres query optimizer -- (14 rows) -- -- The crucal parts are: diff --git a/src/test/regress/expected/bfv_partition_plans.out b/src/test/regress/expected/bfv_partition_plans.out index 7620a0e9b1746d589022f38081e49707b06ce374..6eb8b59386b0127574e92548142ca9ef88b794ec 100644 --- a/src/test/regress/expected/bfv_partition_plans.out +++ b/src/test/regress/expected/bfv_partition_plans.out @@ -1150,7 +1150,7 @@ EXPLAIN SELECT b FROM bar GROUP BY b; -> Append (cost=0.00..16.00 rows=334 width=4) -> Seq Scan on bar_1_prt_1 (cost=0.00..8.00 rows=167 width=4) -> Seq Scan on bar_1_prt_2 (cost=0.00..8.00 rows=167 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- CLEANUP @@ -1198,7 +1198,7 @@ explain analyze select a.* from mpp8031 a, mpp8031 b where a.oid = b.oid; (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 142K bytes avg x 3 workers, 142K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.237 ms (19 rows) @@ -1243,7 +1243,7 @@ EXPLAIN SELECT * FROM part_tbl WHERE profile_key = 99999999; Filter: profile_key = 99999999::numeric -> Seq Scan on part_tbl_1_prt_p20151110_2_prt_other_services (cost=0.00..1.01 rows=1 width=25) Filter: profile_key = 99999999::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT * FROM part_tbl WHERE profile_key = 99999999; @@ -1330,7 +1330,7 @@ explain select * from r_part r1, r_part r2 where r1.a=1; -- should eliminate par -> Seq Scan on r_part_1_prt_7 r2_6 (cost=0.00..1.00 rows=1 width=8) -> Seq Scan on r_part_1_prt_8 r2_7 (cost=0.00..1.00 rows=1 width=8) -> Seq Scan on r_part_1_prt_9 r2_8 (cost=0.00..1.00 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) -- the numbers in the filter should be both on segment 0 @@ -1343,7 +1343,7 @@ explain select * from r_part where a in (7,8); -- should eliminate partitions Filter: a = ANY ('{7,8}'::integer[]) -> Seq Scan on r_part_1_prt_8 (cost=0.00..1.01 rows=1 width=8) Filter: a = ANY ('{7,8}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- Test partition elimination in prepared statements @@ -1377,7 +1377,7 @@ explain select * from r_part where a = 1 order by a,b; -- should eliminate parti -> Append (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on r_part_1_prt_1 (cost=0.00..1.01 rows=1 width=8) Filter: a = 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) --force_explain @@ -1391,7 +1391,7 @@ explain execute f1(1); -- should eliminate partitions -> Append (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on r_part_1_prt_1 (cost=0.00..1.01 rows=1 width=8) Filter: a = 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) --force_explain @@ -1405,7 +1405,7 @@ explain execute f2(2); -- should eliminate partitions -> Append (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on r_part_1_prt_2 (cost=0.00..1.01 rows=1 width=8) Filter: a = 2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- Test partition elimination on CO tables @@ -1418,7 +1418,7 @@ explain select * from r_co where a=2; -- should eliminate partitions -> Append (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on r_co_1_prt_2 (cost=0.00..1.01 rows=1 width=8) Filter: a = 2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- test partition elimination in prepared statements on CO tables @@ -1434,7 +1434,7 @@ explain execute f3(2); -- should eliminate partitions -> Append (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on r_co_1_prt_2 (cost=0.00..1.01 rows=1 width=8) Filter: a = 2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- start_ignore @@ -1472,7 +1472,7 @@ explain select * from fact where dd < '2009-01-02'::date; -- partitions eliminat -> Append (cost=0.00..1.00 rows=1 width=40) -> Seq Scan on fact_1_prt_1 (cost=0.00..1.00 rows=1 width=40) Filter: dd < '01-02-2009'::date - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain select * from fact where dd < to_date('2009-01-02','YYYY-MM-DD'); -- partitions eliminated @@ -1482,7 +1482,7 @@ explain select * from fact where dd < to_date('2009-01-02','YYYY-MM-DD'); -- par -> Append (cost=0.00..1.00 rows=1 width=40) -> Seq Scan on fact_1_prt_1 (cost=0.00..1.00 rows=1 width=40) Filter: dd < '01-02-2009'::date - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain select * from fact where dd < current_date; --partitions eliminated @@ -1493,7 +1493,7 @@ explain select * from fact where dd < current_date; --partitions eliminated -> Seq Scan on fact_1_prt_1 (cost=0.00..1.00 rows=1 width=40) Filter: dd < '10-22-2017'::date Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) -- Test partition elimination in prepared statements @@ -1506,7 +1506,7 @@ explain execute f1('2009-01-02'::date); -- should eliminate partitions -> Append (cost=0.00..1.00 rows=1 width=40) -> Seq Scan on fact_1_prt_1 (cost=0.00..1.00 rows=1 width=40) Filter: dd < '01-02-2009'::date - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- force_explain @@ -1517,7 +1517,7 @@ explain execute f1(to_date('2009-01-02', 'YYYY-MM-DD')); -- should eliminate par -> Append (cost=0.00..1.00 rows=1 width=40) -> Seq Scan on fact_1_prt_1 (cost=0.00..1.00 rows=1 width=40) Filter: dd < '01-02-2009'::date - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- start_ignore diff --git a/src/test/regress/expected/bfv_statistic.out b/src/test/regress/expected/bfv_statistic.out index 7d79a7b76878dd9a4ecea3309806fac7fe99f660..2e1b54c1355077df3d8fe1561561fa8d7ed34705 100644 --- a/src/test/regress/expected/bfv_statistic.out +++ b/src/test/regress/expected/bfv_statistic.out @@ -20,7 +20,7 @@ explain select * from bfv_statistics_foo where a is not null and b >= 1; Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..2.05 rows=3 width=8) -> Seq Scan on bfv_statistics_foo (cost=0.00..2.05 rows=1 width=8) Filter: a IS NOT NULL AND b >= 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) create table bfv_statistics_foo2(a int) distributed by (a); @@ -47,7 +47,7 @@ explain select a from bfv_statistics_foo2 where a > 1 order by a; Sort Key: a -> Seq Scan on bfv_statistics_foo2 (cost=0.00..2.25 rows=5 width=4) Filter: a > 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- change stats manually so that MCV and MCF numbers do not match @@ -63,7 +63,7 @@ explain select a from bfv_statistics_foo2 where a > 1 order by a; Sort Key: a -> Seq Scan on bfv_statistics_foo2 (cost=0.00..2.25 rows=6 width=4) Filter: a > 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- @@ -128,7 +128,7 @@ explain select a from bfv_statistics_foo4 where a > 888; Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..4.25 rows=1 width=4) -> Seq Scan on bfv_statistics_foo4 (cost=0.00..4.25 rows=1 width=4) Filter: a > 888 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) -- @@ -394,7 +394,7 @@ EXPLAIN SELECT * FROM test_join_card1 t1, test_join_card2 t2, test_join_card3 t3 -> Seq Scan on test_join_card3 t3 (cost=0.00..115.00 rows=3334 width=8) -> Hash (cost=227.00..227.00 rows=6667 width=10) -> Seq Scan on test_join_card1 t1 (cost=0.00..227.00 rows=6667 width=10) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- start_ignore diff --git a/src/test/regress/expected/bfv_subquery.out b/src/test/regress/expected/bfv_subquery.out index aac7fd5fad146d2dea834ea52d97a7cb1ffd919e..1a506a3459e16c1917dd115d575e96cd71dea30a 100644 --- a/src/test/regress/expected/bfv_subquery.out +++ b/src/test/regress/expected/bfv_subquery.out @@ -495,7 +495,7 @@ EXPLAIN SELECT (EXISTS (SELECT UNNEST(X))) AS B FROM A; SubPlan 1 -> Result (cost=0.00..0.01 rows=1 width=0) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) DROP TABLE A; diff --git a/src/test/regress/expected/bitmap_index.out b/src/test/regress/expected/bitmap_index.out index 58dd58563ad308beae877afb03b140f2105339a4..91123280daf2487ba7aefc9508e48afad1f01796 100644 --- a/src/test/regress/expected/bitmap_index.out +++ b/src/test/regress/expected/bitmap_index.out @@ -614,7 +614,7 @@ explain select * from unlogged_test where c1 = 100; Gather Motion 1:1 (slice1; segments: 1) (cost=0.00..200.45 rows=1 width=4) -> Index Scan using unlogged_test_idx on unlogged_test (cost=0.00..200.45 rows=1 width=4) Index Cond: c1 = 100 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) select * from unlogged_test where c1 = 100; diff --git a/src/test/regress/expected/bitmapops.out b/src/test/regress/expected/bitmapops.out index 28c4e9627427e89c327b3d7fcd58e15f0bade7f8..a3410062cc824708fbb42f4daa6226017741f4b8 100644 --- a/src/test/regress/expected/bitmapops.out +++ b/src/test/regress/expected/bitmapops.out @@ -70,7 +70,7 @@ EXPLAIN SELECT count(*) FROM bmscantest2 WHERE a = 1 AND b = 1 AND c = 1; -> Bitmap Index Scan on i_bmtest2_c (cost=0.00..17.60 rows=420 width=0) Index Cond: (c = 1) Planning time: 1.441 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest2 WHERE a = 1 AND b = 1 AND c = 1; @@ -101,7 +101,7 @@ EXPLAIN SELECT count(*) FROM bmscantest2 WHERE a = 1 OR b = 1 OR c = 1; -> Bitmap Index Scan on i_bmtest2_c (cost=0.00..17.99 rows=437 width=0) Index Cond: (c = 1) Planning time: 0.468 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest2 WHERE a = 1 OR b = 1 OR c = 1; @@ -143,7 +143,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_ao WHERE a = 1 AND b = 1 AND c = 1; -> Bitmap Index Scan on i_bmtest_ao_c (cost=0.00..17.79 rows=428 width=0) Index Cond: (c = 1) Planning time: 1.009 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest_ao WHERE a = 1 AND b = 1 AND c = 1; @@ -171,7 +171,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_ao WHERE a = 1 AND (b = 1 OR c = 1) AND -> Bitmap Index Scan on i_bmtest_ao_c (cost=0.00..17.79 rows=428 width=0) Index Cond: (c = 1) Planning time: 0.504 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) SELECT count(*) FROM bmscantest_ao WHERE a = 1 AND (b = 1 OR c = 1) AND d = 1; @@ -196,7 +196,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_ao WHERE a = 1 OR b = 1 OR c = 1; -> Bitmap Index Scan on i_bmtest_ao_c (cost=0.00..17.79 rows=428 width=0) Index Cond: (c = 1) Planning time: 0.370 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest_ao WHERE a = 1 OR b = 1 OR c = 1; @@ -224,7 +224,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_ao WHERE a = 1 OR (b = 1 AND c = 1) OR d -> Bitmap Index Scan on i_bmtest_ao_d (cost=0.00..16.99 rows=392 width=0) Index Cond: (d = 1) Planning time: 0.520 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) SELECT count(*) FROM bmscantest_ao WHERE a = 1 OR (b = 1 AND c = 1) OR d = 1; @@ -260,7 +260,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_aocs WHERE a = 1 AND b = 1 AND c = 1; -> Bitmap Index Scan on i_bmtest_aocs_c (cost=0.00..17.14 rows=400 width=0) Index Cond: (c = 1) Planning time: 1.587 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest_aocs WHERE a = 1 AND b = 1 AND c = 1; @@ -288,7 +288,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_aocs WHERE a = 1 AND (b = 1 OR c = 1) AN -> Bitmap Index Scan on i_bmtest_aocs_c (cost=0.00..18.28 rows=450 width=0) Index Cond: (c = 1) Planning time: 0.495 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) SELECT count(*) FROM bmscantest_aocs WHERE a = 1 AND (b = 1 OR c = 1) AND d = 1; @@ -313,7 +313,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_aocs WHERE a = 1 OR b = 1 OR c = 1; -> Bitmap Index Scan on i_bmtest_aocs_c (cost=0.00..18.28 rows=450 width=0) Index Cond: (c = 1) Planning time: 0.366 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM bmscantest_aocs WHERE a = 1 OR b = 1 OR c = 1; @@ -341,7 +341,7 @@ EXPLAIN SELECT count(*) FROM bmscantest_aocs WHERE a = 1 OR (b = 1 AND c = 1) OR -> Bitmap Index Scan on i_bmtest_aocs_d (cost=0.00..16.82 rows=385 width=0) Index Cond: (d = 1) Planning time: 0.480 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) SELECT count(*) FROM bmscantest_aocs WHERE a = 1 OR (b = 1 AND c = 1) OR d = 1; diff --git a/src/test/regress/expected/co_nestloop_idxscan.out b/src/test/regress/expected/co_nestloop_idxscan.out index 3b9c0e80e50748c413f1e499e4ba4966d88ddc44..affafae0af42e02acc1924b8c81068348131a04a 100644 --- a/src/test/regress/expected/co_nestloop_idxscan.out +++ b/src/test/regress/expected/co_nestloop_idxscan.out @@ -65,7 +65,7 @@ explain select f.id from co_nestloop_idxscan.bar b, co_nestloop_idxscan.foo f wh -> Bitmap Index Scan on foo_id_idx (cost=0.00..100.36 rows=1 width=0) Index Cond: f.id = b.id Settings: enable_hashjoin=off; enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (10 rows) select f.id from co_nestloop_idxscan.foo f, co_nestloop_idxscan.bar b where f.id = b.id; diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index d3ba1b6cef48dfcbe20bf4e18de0121d1bf5ace8..3a4ddff05b7853a7c6e89536a7a9d833bd547b2a 100755 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -383,7 +383,7 @@ SELECT * FROM fast_emp4000 Sort Key: ((home_base[0])[0]) -> Index Scan using grect2ind on fast_emp4000 Index Cond: (home_base @ '(2000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT * FROM fast_emp4000 @@ -404,7 +404,7 @@ SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box; -> Aggregate -> Index Scan using grect2ind on fast_emp4000 Index Cond: (home_base && '(1000,1000),(0,0)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box; @@ -422,7 +422,7 @@ SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; -> Aggregate -> Index Scan using grect2ind on fast_emp4000 Index Cond: (home_base IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; @@ -442,7 +442,7 @@ SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon Sort Key: ((poly_center(f1))[0]) -> Index Scan using gpolygonind on polygon_tbl Index Cond: (f1 ~ '((1,1),(2,2),(2,1))'::polygon) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon @@ -463,7 +463,7 @@ SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) Sort Key: (area(f1)) -> Index Scan using gcircleind on circle_tbl Index Cond: (f1 && '<(1,-2),1>'::circle) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) @@ -485,7 +485,7 @@ SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon; -> Aggregate -> Index Scan using ggpolygonind on gpolygon_tbl Index Cond: (f1 && '((1000,1000),(0,0))'::polygon) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon; @@ -503,7 +503,7 @@ SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle; -> Aggregate -> Index Scan using ggcircleind on gcircle_tbl Index Cond: (f1 && '<(500,500),500>'::circle) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle; @@ -521,7 +521,7 @@ SELECT count(*) FROM point_tbl WHERE f1 <@ box '(0,0,100,100)'; -> Aggregate -> Index Scan using gpointind on point_tbl Index Cond: (f1 <@ '(100,100),(0,0)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl WHERE f1 <@ box '(0,0,100,100)'; @@ -539,7 +539,7 @@ SELECT count(*) FROM point_tbl WHERE box '(0,0,100,100)' @> f1; -> Aggregate -> Index Scan using gpointind on point_tbl Index Cond: ('(100,100),(0,0)'::box @> f1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl WHERE box '(0,0,100,100)' @> f1; @@ -557,7 +557,7 @@ SELECT count(*) FROM point_tbl WHERE f1 <@ polygon '(0,0),(0,100),(100,100),(50, -> Aggregate -> Index Scan using gpointind on point_tbl Index Cond: (f1 <@ '((0,0),(0,100),(100,100),(50,50),(100,0),(0,0))'::polygon) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl WHERE f1 <@ polygon '(0,0),(0,100),(100,100),(50,50),(100,0),(0,0)'; @@ -575,7 +575,7 @@ SELECT count(*) FROM point_tbl WHERE f1 <@ circle '<(50,50),50>'; -> Aggregate -> Index Scan using gpointind on point_tbl Index Cond: (f1 <@ '<(50,50),50>'::circle) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl WHERE f1 <@ circle '<(50,50),50>'; @@ -593,7 +593,7 @@ SELECT count(*) FROM point_tbl p WHERE p.f1 << '(0.0, 0.0)'; -> Aggregate -> Index Scan using gpointind on point_tbl p Index Cond: (f1 << '(0,0)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl p WHERE p.f1 << '(0.0, 0.0)'; @@ -611,7 +611,7 @@ SELECT count(*) FROM point_tbl p WHERE p.f1 >> '(0.0, 0.0)'; -> Aggregate -> Index Scan using gpointind on point_tbl p Index Cond: (f1 >> '(0,0)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl p WHERE p.f1 >> '(0.0, 0.0)'; @@ -629,7 +629,7 @@ SELECT count(*) FROM point_tbl p WHERE p.f1 <^ '(0.0, 0.0)'; -> Aggregate -> Index Scan using gpointind on point_tbl p Index Cond: (f1 <^ '(0,0)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl p WHERE p.f1 <^ '(0.0, 0.0)'; @@ -647,7 +647,7 @@ SELECT count(*) FROM point_tbl p WHERE p.f1 >^ '(0.0, 0.0)'; -> Aggregate -> Index Scan using gpointind on point_tbl p Index Cond: (f1 >^ '(0,0)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl p WHERE p.f1 >^ '(0.0, 0.0)'; @@ -665,7 +665,7 @@ SELECT count(*) FROM point_tbl p WHERE p.f1 ~= '(-5, -12)'; -> Aggregate -> Index Scan using gpointind on point_tbl p Index Cond: (f1 ~= '(-5,-12)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM point_tbl p WHERE p.f1 ~= '(-5, -12)'; @@ -682,7 +682,7 @@ SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; Merge Key: ((f1 <-> '(0,1)'::point)) -> Index Scan using gpointind on point_tbl Order By: (f1 <-> '(0,1)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; @@ -704,7 +704,7 @@ SELECT * FROM point_tbl WHERE f1 IS NULL; Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using gpointind on point_tbl Index Cond: (f1 IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT * FROM point_tbl WHERE f1 IS NULL; @@ -722,7 +722,7 @@ SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1'; -> Index Scan using gpointind on point_tbl Index Cond: (f1 IS NOT NULL) Order By: (f1 <-> '(0,1)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1'; @@ -745,7 +745,7 @@ SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0 -> Index Scan using gpointind on point_tbl Index Cond: (f1 <@ '(10,10),(-10,-10)'::box) Order By: (f1 <-> '(0,1)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1'; @@ -766,7 +766,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; @@ -784,7 +784,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; @@ -801,7 +801,7 @@ SELECT count(*) FROM quad_point_tbl; -> Gather Motion 3:1 (slice1; segments: 3) -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT count(*) FROM quad_point_tbl; @@ -819,7 +819,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -837,7 +837,7 @@ SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -855,7 +855,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; @@ -873,7 +873,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; @@ -891,7 +891,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; @@ -909,7 +909,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; @@ -927,7 +927,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; @@ -945,7 +945,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -963,7 +963,7 @@ SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -981,7 +981,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; @@ -999,7 +999,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; @@ -1017,7 +1017,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1035,7 +1035,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1053,7 +1053,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; @@ -1071,7 +1071,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcdef'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; @@ -1089,7 +1089,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcde'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; @@ -1107,7 +1107,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcdefF'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; @@ -1125,7 +1125,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t < 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct '; @@ -1143,7 +1143,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~<~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct '; @@ -1161,7 +1161,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t <= 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct '; @@ -1179,7 +1179,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~<=~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct '; @@ -1197,7 +1197,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct '; @@ -1215,7 +1215,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St '; @@ -1233,7 +1233,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t >= 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St '; @@ -1251,7 +1251,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~>=~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St '; @@ -1269,7 +1269,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t > 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St '; @@ -1287,7 +1287,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~>~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St '; @@ -1312,7 +1312,7 @@ SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0 Recheck Cond: (f1 <@ '(10,10),(-10,-10)'::box) -> Bitmap Index Scan on gpointind Index Cond: (f1 <@ '(10,10),(-10,-10)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM point_tbl WHERE f1 <@ '(-10,-10),(10,10)':: box ORDER BY f1 <-> '0,1'; @@ -1335,7 +1335,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; Recheck Cond: (p IS NULL) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; @@ -1355,7 +1355,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; Recheck Cond: (p IS NOT NULL) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; @@ -1373,7 +1373,7 @@ SELECT count(*) FROM quad_point_tbl; -> Aggregate -> Bitmap Heap Scan on quad_point_tbl -> Bitmap Index Scan on sp_quad_ind - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl; @@ -1393,7 +1393,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; Recheck Cond: (p <@ '(1000,1000),(200,200)'::box) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -1413,7 +1413,7 @@ SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; Recheck Cond: ('(1000,1000),(200,200)'::box @> p) -> Bitmap Index Scan on sp_quad_ind Index Cond: ('(1000,1000),(200,200)'::box @> p) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -1433,7 +1433,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; Recheck Cond: (p << '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; @@ -1453,7 +1453,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; Recheck Cond: (p >> '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; @@ -1473,7 +1473,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; Recheck Cond: (p <^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1493,7 +1493,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; Recheck Cond: (p >^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1513,7 +1513,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; Recheck Cond: (p ~= '(4585,365)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; @@ -1533,7 +1533,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; Recheck Cond: (p <@ '(1000,1000),(200,200)'::box) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -1553,7 +1553,7 @@ SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; Recheck Cond: ('(1000,1000),(200,200)'::box @> p) -> Bitmap Index Scan on sp_kd_ind Index Cond: ('(1000,1000),(200,200)'::box @> p) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -1573,7 +1573,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; Recheck Cond: (p << '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; @@ -1593,7 +1593,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; Recheck Cond: (p >> '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; @@ -1613,7 +1613,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; Recheck Cond: (p <^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1633,7 +1633,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; Recheck Cond: (p >^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1653,7 +1653,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; Recheck Cond: (p ~= '(4585,365)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; @@ -1673,7 +1673,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; Recheck Cond: (t = 'P0123456789abcdef'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcdef'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; @@ -1693,7 +1693,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; Recheck Cond: (t = 'P0123456789abcde'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcde'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; @@ -1713,7 +1713,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; Recheck Cond: (t = 'P0123456789abcdefF'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcdefF'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; @@ -1733,7 +1733,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Recheck Cond: (t < 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t < 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct '; @@ -1753,7 +1753,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Recheck Cond: (t ~<~ 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~<~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct '; @@ -1773,7 +1773,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Recheck Cond: (t <= 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t <= 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct '; @@ -1793,7 +1793,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Recheck Cond: (t ~<=~ 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~<=~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct '; @@ -1813,7 +1813,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Recheck Cond: (t = 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct '; @@ -1833,7 +1833,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth Recheck Cond: (t = 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St '; @@ -1853,7 +1853,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth Recheck Cond: (t >= 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t >= 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St '; @@ -1873,7 +1873,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth Recheck Cond: (t ~>=~ 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~>=~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St '; @@ -1893,7 +1893,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth Recheck Cond: (t > 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t > 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St '; @@ -1913,7 +1913,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth Recheck Cond: (t ~>~ 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~>~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St '; @@ -1948,7 +1948,7 @@ SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno; Recheck Cond: (i @> '{32}'::integer[]) -> Bitmap Index Scan on intarrayidx Index Cond: (i @> '{32}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno; @@ -2197,7 +2197,7 @@ SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno; Recheck Cond: (t @> '{AAAAAAAA72908}'::text[]) -> Bitmap Index Scan on textarrayidx Index Cond: (t @> '{AAAAAAAA72908}'::text[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno; @@ -2964,7 +2964,7 @@ SELECT * FROM tenk1 Index Cond: ((thousand = 42) AND (tenthous = 3)) -> Bitmap Index Scan on tenk1_thous_tenthous Index Cond: ((thousand = 42) AND (tenthous = 42)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) SELECT * FROM tenk1 @@ -2992,7 +2992,7 @@ SELECT count(*) FROM tenk1 Index Cond: (thousand = 42) -> Bitmap Index Scan on tenk1_thous_tenthous Index Cond: (thousand = 99) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT count(*) FROM tenk1 @@ -3021,7 +3021,7 @@ EXPLAIN (COSTS OFF) Recheck Cond: ((f1 >= 'WA'::text) AND (f1 <= 'ZZZ'::text) AND (id < 1000) AND (f1 ~<~ 'YX'::text)) -> Bitmap Index Scan on dupindexcols_i Index Cond: ((f1 >= 'WA'::text) AND (f1 <= 'ZZZ'::text) AND (id < 1000) AND (f1 ~<~ 'YX'::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM dupindexcols @@ -3045,7 +3045,7 @@ ORDER BY unique1; Merge Key: unique1 -> Index Only Scan using tenk1_unique1 on tenk1 Index Cond: (unique1 = ANY ('{1,42,7}'::integer[])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT unique1 FROM tenk1 @@ -3069,7 +3069,7 @@ ORDER BY thousand; -> Index Only Scan using tenk1_thous_tenthous on tenk1 Index Cond: (thousand < 2) Filter: (tenthous = ANY ('{1001,3000}'::integer[])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT thousand, tenthous FROM tenk1 @@ -3099,7 +3099,7 @@ ORDER BY thousand; Sort Key: thousand -> Index Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand < 2) AND (tenthous = ANY ('{1001,3000}'::integer[]))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT thousand, tenthous FROM tenk1 @@ -3123,6 +3123,6 @@ explain (costs off) Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand = 1) AND (tenthous = 1001)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) diff --git a/src/test/regress/expected/create_index_optimizer.out b/src/test/regress/expected/create_index_optimizer.out index 301de556701511e916c93b58a8b29f4b012ba1dc..662bf8b6dea5bf0ec61d0aa367e54b56c44eefb7 100644 --- a/src/test/regress/expected/create_index_optimizer.out +++ b/src/test/regress/expected/create_index_optimizer.out @@ -426,7 +426,7 @@ SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; -> Aggregate -> Index Scan using grect2ind on fast_emp4000 Index Cond: (home_base IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; @@ -702,7 +702,7 @@ SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; Merge Key: ((f1 <-> '(0,1)'::point)) -> Index Scan using gpointind on point_tbl Order By: (f1 <-> '(0,1)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT * FROM point_tbl ORDER BY f1 <-> '0,1'; @@ -724,7 +724,7 @@ SELECT * FROM point_tbl WHERE f1 IS NULL; Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using gpointind on point_tbl Index Cond: (f1 IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT * FROM point_tbl WHERE f1 IS NULL; @@ -742,7 +742,7 @@ SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1'; -> Index Scan using gpointind on point_tbl Index Cond: (f1 IS NOT NULL) Order By: (f1 <-> '(0,1)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM point_tbl WHERE f1 IS NOT NULL ORDER BY f1 <-> '0,1'; @@ -789,7 +789,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; @@ -807,7 +807,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; @@ -824,7 +824,7 @@ SELECT count(*) FROM quad_point_tbl; -> Gather Motion 3:1 (slice1; segments: 3) -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT count(*) FROM quad_point_tbl; @@ -842,7 +842,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -860,7 +860,7 @@ SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -878,7 +878,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; @@ -896,7 +896,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; @@ -914,7 +914,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; @@ -932,7 +932,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; @@ -950,7 +950,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; -> Aggregate -> Index Only Scan using sp_quad_ind on quad_point_tbl Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; @@ -968,7 +968,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -986,7 +986,7 @@ SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -1004,7 +1004,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; @@ -1022,7 +1022,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; @@ -1040,7 +1040,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1058,7 +1058,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1076,7 +1076,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; -> Aggregate -> Index Only Scan using sp_kd_ind on kd_point_tbl Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; @@ -1094,7 +1094,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcdef'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; @@ -1112,7 +1112,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcde'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; @@ -1130,7 +1130,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'P0123456789abcdefF'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; @@ -1148,7 +1148,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t < 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct '; @@ -1166,7 +1166,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~<~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct '; @@ -1184,7 +1184,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t <= 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct '; @@ -1202,7 +1202,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~<=~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct '; @@ -1220,7 +1220,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct '; @@ -1238,7 +1238,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t = 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St '; @@ -1256,7 +1256,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t >= 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St '; @@ -1274,7 +1274,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~>=~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St '; @@ -1292,7 +1292,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t > 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St '; @@ -1310,7 +1310,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth -> Aggregate -> Index Only Scan using sp_radix_ind on radix_text_tbl Index Cond: (t ~>~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St '; @@ -1358,7 +1358,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; Recheck Cond: (p IS NULL) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NULL; @@ -1378,7 +1378,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; Recheck Cond: (p IS NOT NULL) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p IS NOT NULL; @@ -1396,7 +1396,7 @@ SELECT count(*) FROM quad_point_tbl; -> Aggregate -> Bitmap Heap Scan on quad_point_tbl -> Bitmap Index Scan on sp_quad_ind - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT count(*) FROM quad_point_tbl; @@ -1416,7 +1416,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; Recheck Cond: (p <@ '(1000,1000),(200,200)'::box) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -1436,7 +1436,7 @@ SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; Recheck Cond: ('(1000,1000),(200,200)'::box @> p) -> Bitmap Index Scan on sp_quad_ind Index Cond: ('(1000,1000),(200,200)'::box @> p) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -1456,7 +1456,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; Recheck Cond: (p << '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p << '(5000, 4000)'; @@ -1476,7 +1476,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; Recheck Cond: (p >> '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p >> '(5000, 4000)'; @@ -1496,7 +1496,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; Recheck Cond: (p <^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1516,7 +1516,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; Recheck Cond: (p >^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1536,7 +1536,7 @@ SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; Recheck Cond: (p ~= '(4585,365)'::point) -> Bitmap Index Scan on sp_quad_ind Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)'; @@ -1556,7 +1556,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; Recheck Cond: (p <@ '(1000,1000),(200,200)'::box) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p <@ '(1000,1000),(200,200)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p <@ box '(200,200,1000,1000)'; @@ -1576,7 +1576,7 @@ SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; Recheck Cond: ('(1000,1000),(200,200)'::box @> p) -> Bitmap Index Scan on sp_kd_ind Index Cond: ('(1000,1000),(200,200)'::box @> p) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE box '(200,200,1000,1000)' @> p; @@ -1596,7 +1596,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; Recheck Cond: (p << '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p << '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p << '(5000, 4000)'; @@ -1616,7 +1616,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; Recheck Cond: (p >> '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p >> '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p >> '(5000, 4000)'; @@ -1636,7 +1636,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; Recheck Cond: (p <^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p <^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p <^ '(5000, 4000)'; @@ -1656,7 +1656,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; Recheck Cond: (p >^ '(5000,4000)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p >^ '(5000,4000)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p >^ '(5000, 4000)'; @@ -1676,7 +1676,7 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; Recheck Cond: (p ~= '(4585,365)'::point) -> Bitmap Index Scan on sp_kd_ind Index Cond: (p ~= '(4585,365)'::point) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)'; @@ -1696,7 +1696,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; Recheck Cond: (t = 'P0123456789abcdef'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcdef'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef'; @@ -1716,7 +1716,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; Recheck Cond: (t = 'P0123456789abcde'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcde'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde'; @@ -1736,7 +1736,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; Recheck Cond: (t = 'P0123456789abcdefF'::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'P0123456789abcdefF'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF'; @@ -1756,7 +1756,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Recheck Cond: (t < 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t < 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct '; @@ -1776,7 +1776,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Recheck Cond: (t ~<~ 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~<~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct '; @@ -1796,7 +1796,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Recheck Cond: (t <= 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t <= 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct '; @@ -1816,7 +1816,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Recheck Cond: (t ~<=~ 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~<=~ 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct '; @@ -1836,7 +1836,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Recheck Cond: (t = 'Aztec Ct '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'Aztec Ct '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct '; @@ -1856,7 +1856,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth Recheck Cond: (t = 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t = 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St '; @@ -1876,7 +1876,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth Recheck Cond: (t >= 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t >= 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St '; @@ -1896,7 +1896,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth Recheck Cond: (t ~>=~ 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~>=~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St '; @@ -1916,7 +1916,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth Recheck Cond: (t > 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t > 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St '; @@ -1936,7 +1936,7 @@ SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth Recheck Cond: (t ~>~ 'Worth St '::text) -> Bitmap Index Scan on sp_radix_ind Index Cond: (t ~>~ 'Worth St '::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St '; @@ -1971,7 +1971,7 @@ SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno; Recheck Cond: (i @> '{32}'::integer[]) -> Bitmap Index Scan on intarrayidx Index Cond: (i @> '{32}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno; @@ -2220,7 +2220,7 @@ SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno; Recheck Cond: (t @> '{AAAAAAAA72908}'::text[]) -> Bitmap Index Scan on textarrayidx Index Cond: (t @> '{AAAAAAAA72908}'::text[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM array_index_op_test WHERE t @> '{AAAAAAAA72908}' ORDER BY seqno; @@ -3069,7 +3069,7 @@ ORDER BY unique1; Merge Key: unique1 -> Index Only Scan using tenk1_unique1 on tenk1 Index Cond: (unique1 = ANY ('{1,42,7}'::integer[])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) SELECT unique1 FROM tenk1 @@ -3093,7 +3093,7 @@ ORDER BY thousand; -> Index Only Scan using tenk1_thous_tenthous on tenk1 Index Cond: (thousand < 2) Filter: (tenthous = ANY ('{1001,3000}'::integer[])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT thousand, tenthous FROM tenk1 @@ -3123,7 +3123,7 @@ ORDER BY thousand; Sort Key: thousand -> Index Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand < 2) AND (tenthous = ANY ('{1001,3000}'::integer[]))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT thousand, tenthous FROM tenk1 diff --git a/src/test/regress/expected/create_view.out b/src/test/regress/expected/create_view.out index 807b22cfab9065ea47eba2f193e72266ce98d757..24ac687e23e4788b008b79e3656866a62400ac89 100755 --- a/src/test/regress/expected/create_view.out +++ b/src/test/regress/expected/create_view.out @@ -1543,7 +1543,7 @@ explain (costs off) select * from tt18v; -> Append -> Seq Scan on int8_tbl xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -> Seq Scan on int8_tbl xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- check display of ScalarArrayOp with a sub-select diff --git a/src/test/regress/expected/domain.out b/src/test/regress/expected/domain.out index 6da2136e500d2e8ae555bd7d10759ebfce988808..a14db9d8d9b278352d2f94058814dbea2f9ce8cb 100755 --- a/src/test/regress/expected/domain.out +++ b/src/test/regress/expected/domain.out @@ -295,7 +295,7 @@ explain (verbose, costs off) -> Seq Scan on public.dcomptable Output: (d1[1].r := (d1[1].r - 1::double precision))[1].i := (d1[1].i + 1::double precision), ctid, gp_segment_id Filter: (dcomptable.d1[1].i > 0::double precision) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (6 rows) diff --git a/src/test/regress/expected/domain_optimizer.out b/src/test/regress/expected/domain_optimizer.out index f05b01f385cf7fb75a0b0dbe9c2540281587e8ce..88b46d302ec1d9be4163b317736bd0d1a2b71146 100755 --- a/src/test/regress/expected/domain_optimizer.out +++ b/src/test/regress/expected/domain_optimizer.out @@ -295,7 +295,7 @@ explain (verbose, costs off) -> Seq Scan on public.dcomptable Output: (d1[1].r := (d1[1].r - 1::double precision))[1].i := (d1[1].i + 1::double precision), ctid, gp_segment_id Filter: (dcomptable.d1[1].i > 0::double precision) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (6 rows) diff --git a/src/test/regress/expected/dpe.out b/src/test/regress/expected/dpe.out index 3783f9ace7b33506784f4f239f46cca25d0f6d3a..d6c664d880fef63f236ea6b5ce1b7ecfa4d29b24 100644 --- a/src/test/regress/expected/dpe.out +++ b/src/test/regress/expected/dpe.out @@ -101,7 +101,7 @@ explain select * from t, pt where tid = ptid; Filter: t.tid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select * from t, pt where tid = ptid; @@ -157,7 +157,7 @@ explain select * from t, pt where tid + 1 = ptid; Filter: t.tid + 1 -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select * from t, pt where tid + 1 = ptid; @@ -214,7 +214,7 @@ explain select * from t, pt where tid = ptid and t1 = 'hello' || tid; -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.07 rows=1 width=19) -> Seq Scan on t (cost=0.00..2.04 rows=1 width=19) Filter: t1 = ('hello'::text || tid::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from t, pt where tid = ptid and t1 = 'hello' || tid; @@ -270,7 +270,7 @@ explain select * from t, pt where t1 = pt1 and ptid = tid; Filter: t.tid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select * from t, pt where t1 = pt1 and ptid = tid; @@ -314,7 +314,7 @@ explain select * from pt where ptid in (select tid from t where t1 = 'hello' || -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.07 rows=1 width=4) -> Seq Scan on t (cost=0.00..2.04 rows=1 width=4) Filter: (t1 = ('hello'::text || (tid)::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from pt where ptid in (select tid from t where t1 = 'hello' || tid); @@ -374,7 +374,7 @@ explain select * from pt where exists (select 1 from t where tid = ptid and t1 = -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.07 rows=1 width=4) -> Seq Scan on t (cost=0.00..2.04 rows=1 width=4) Filter: (t1 = ('hello'::text || (tid)::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from pt where exists (select 1 from t where tid = ptid and t1 = 'hello' || tid); @@ -435,7 +435,7 @@ explain select count(*) from t, pt where tid = ptid; Filter: t.tid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=4) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select count(*) from t, pt where tid = ptid; @@ -482,7 +482,7 @@ explain select *, rank() over (order by ptid,pt1) from t, pt where tid = ptid; Filter: t.tid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (33 rows) select *, rank() over (order by ptid,pt1) from t, pt where tid = ptid; @@ -570,7 +570,7 @@ explain select * from t, pt where tid = ptid Filter: t_1.tid + 2 -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t t_1 (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (55 rows) select * from t, pt where tid = ptid @@ -683,7 +683,7 @@ explain select count(*) from Filter: t_1.tid + 2 -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t t_1 (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (58 rows) select count(*) from @@ -732,7 +732,7 @@ explain select * from t, pt where tid = ptid; Filter: t.tid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select * from t, pt where tid = ptid; @@ -788,7 +788,7 @@ explain select * from t, pt where tid = ptid and pt1 = 'hello0'; Index Cond: (pt1 = 'hello0'::text) -> Index Scan using pt_1_prt_6_pt1_idx on pt_1_prt_6 (cost=0.14..200.15 rows=1 width=31) Index Cond: (pt1 = 'hello0'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) select * from t, pt where tid = ptid and pt1 = 'hello0'; @@ -820,7 +820,7 @@ explain select * from t, pt where tid = ptid; -> Index Scan using pt_1_prt_4_ptid_idx on pt_1_prt_4 (cost=0.14..706.21 rows=3 width=31) -> Index Scan using pt_1_prt_5_ptid_idx on pt_1_prt_5 (cost=0.14..706.21 rows=3 width=31) -> Index Scan using pt_1_prt_6_ptid_idx on pt_1_prt_6 (cost=0.14..706.21 rows=3 width=31) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select * from t, pt where tid = ptid; @@ -869,7 +869,7 @@ explain select * from t, pt where t1 = pt1; -> Hash (cost=2.08..2.08 rows=2 width=19) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.08 rows=2 width=19) -> Seq Scan on t (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select * from t, pt where t1 = pt1; @@ -895,7 +895,7 @@ explain select * from t, pt where tid < ptid; -> Seq Scan on pt_1_prt_4 (cost=0.00..3.09 rows=3 width=31) -> Seq Scan on pt_1_prt_5 (cost=0.00..3.09 rows=3 width=31) -> Seq Scan on pt_1_prt_6 (cost=0.00..3.09 rows=3 width=31) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select * from t, pt where tid < ptid; @@ -1025,7 +1025,7 @@ explain select * from t, t1, pt where t1.t2 = t.t2 and t1.tid = ptid; -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..2.06 rows=1 width=19) Hash Key: t1.t2 -> Seq Scan on t1 (cost=0.00..2.02 rows=1 width=19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (36 rows) select * from t, t1, pt where t1.t2 = t.t2 and t1.tid = ptid; @@ -1108,7 +1108,7 @@ explain analyze select * from t, pt where tid = ptid; (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4406K bytes avg x 3 workers, 4406K bytes max (seg0). Work_mem: 1K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 15.697 ms (35 rows) @@ -1147,7 +1147,7 @@ explain select * from pt, pt1 where pt.ptid = pt1.ptid and pt.pt1 = 'hello0' ord -> Seq Scan on pt1_1_prt_4 (cost=0.00..3.09 rows=3 width=31) -> Seq Scan on pt1_1_prt_5 (cost=0.00..3.09 rows=3 width=31) -> Seq Scan on pt1_1_prt_6 (cost=0.00..3.09 rows=3 width=31) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from pt, pt1 where pt.ptid = pt1.ptid and pt.pt1 = 'hello0' order by pt1.dist; @@ -1194,7 +1194,7 @@ explain select count(*) from pt, pt1 where pt.ptid = pt1.ptid and pt.pt1 = 'hell -> Seq Scan on pt1_1_prt_4 (cost=0.00..3.09 rows=3 width=4) -> Seq Scan on pt1_1_prt_5 (cost=0.00..3.09 rows=3 width=4) -> Seq Scan on pt1_1_prt_6 (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select count(*) from pt, pt1 where pt.ptid = pt1.ptid and pt.pt1 = 'hello0'; @@ -1243,7 +1243,7 @@ explain select * from t, pt where a = b; -> Seq Scan on pt_1_prt_3 (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on pt_1_prt_4 (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on pt_1_prt_5 (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from t, pt where a = b; @@ -1308,7 +1308,7 @@ explain select * from t, pt where a = b; -> Partition Selector for pt (dynamic scan id: 1) (cost=0.00..1.02 rows=1 width=4) Filter: t.a -> Seq Scan on t (cost=0.00..1.02 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (24 rows) select * from t, pt where a = b; @@ -1395,7 +1395,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid and dim1.code -> Hash (cost=1.04..1.04 rows=1 width=18) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid and dim1.code=fact1.code) order by fact1.u; @@ -1505,7 +1505,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid and dim1.code Filter: dim1.code, dim1.pid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (49 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid and dim1.code=fact1.code) order by fact1.u; @@ -1592,7 +1592,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) order by fac -> Hash (cost=1.04..1.04 rows=1 width=18) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) order by fact1.u; @@ -1752,7 +1752,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) order by fac Filter: dim1.pid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (49 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) order by fact1.u; @@ -1885,7 +1885,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) and fact1.co -> Hash (cost=1.04..1.04 rows=1 width=18) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) and fact1.code = 'OH' order by fact1.u; @@ -1975,7 +1975,7 @@ explain select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) and fact1.co Filter: dim1.pid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=18) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=18) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from dim1 inner join fact1 on (dim1.pid=fact1.pid) and fact1.code = 'OH' order by fact1.u; @@ -2072,7 +2072,7 @@ explain select fact1.code, count(*) from dim1 inner join fact1 on (dim1.pid=fact -> Hash (cost=1.04..1.04 rows=1 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=4) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (33 rows) select fact1.code, count(*) from dim1 inner join fact1 on (dim1.pid=fact1.pid) group by 1 order by 1; @@ -2144,7 +2144,7 @@ explain select fact1.code, count(*) from dim1 inner join fact1 on (dim1.pid=fact Filter: dim1.pid -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.04 rows=1 width=4) -> Seq Scan on dim1 (cost=0.00..1.01 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (59 rows) select fact1.code, count(*) from dim1 inner join fact1 on (dim1.pid=fact1.pid) group by 1 order by 1; @@ -2209,7 +2209,7 @@ explain select * from dim inner join malp on (dim.i = malp.i); -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..1.03 rows=1 width=8) Hash Key: dim.i -> Seq Scan on dim (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) set gp_dynamic_partition_pruning = off; @@ -2283,7 +2283,7 @@ explain select * from apart as a, b, c where a.t = b.t and a.id = c.id; -> Hash (cost=3.20..3.20 rows=4 width=6) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.20 rows=4 width=6) -> Seq Scan on b (cost=0.00..3.05 rows=2 width=6) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select * from apart as a, b, c where a.t = b.t and a.id = c.id; @@ -2328,7 +2328,7 @@ explain select * from apart as a, b, c where a.t = b.t and a.id = c.id; -> Hash (cost=3.20..3.20 rows=4 width=6) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.20 rows=4 width=6) -> Seq Scan on b (cost=0.00..3.05 rows=2 width=6) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (29 rows) select * from apart as a, b, c where a.t = b.t and a.id = c.id; @@ -2397,7 +2397,7 @@ explain select * from (select count(*) over (order by a rows between 1 preceding -> Sort (cost=1.02..1.02 rows=1 width=8) Sort Key: jpat_1.a -> Seq Scan on jpat jpat_1 (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) select * from (select count(*) over (order by a rows between 1 preceding and 1 following), a, b from jpat)jpat inner join pat using(b); diff --git a/src/test/regress/expected/dpe_optimizer.out b/src/test/regress/expected/dpe_optimizer.out index 755184227a27028f3e0f1202a560967c16c79b15..3fcf274b81d3768a9178dbd085d4b34362b34191 100644 --- a/src/test/regress/expected/dpe_optimizer.out +++ b/src/test/regress/expected/dpe_optimizer.out @@ -1748,7 +1748,7 @@ explain select * from dim inner join malp on (dim.i = malp.i); -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..1.03 rows=1 width=8) Hash Key: dim.i -> Seq Scan on dim (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) set gp_dynamic_partition_pruning = off; diff --git a/src/test/regress/expected/eagerfree.out b/src/test/regress/expected/eagerfree.out index 5e46da67fefef988fac860a52974b39c85c42957..cf5a9eaee411cd2c415b8253746c5ee3cd7e90d7 100644 --- a/src/test/regress/expected/eagerfree.out +++ b/src/test/regress/expected/eagerfree.out @@ -57,7 +57,7 @@ explain analyze select d, count(*) from smallt group by d; (slice1) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice2) Executor memory: 138K bytes avg x 3 workers, 138K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.162 ms (16 rows) @@ -84,7 +84,7 @@ explain analyze select count(*) from (select i, t, d, count(*) from bigt group b (slice1) * Executor memory: 3004K bytes avg x 3 workers, 3004K bytes max (seg0). Work_mem: 2361K bytes max, 4738K bytes wanted. Memory used: 2560kB Memory wanted: 5237kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 492.921 ms (15 rows) @@ -107,7 +107,7 @@ explain analyze select count(distinct d) from smallt; (slice0) Executor memory: 322K bytes. Work_mem: 33K bytes max. (slice1) Executor memory: 46K bytes avg x 3 workers, 46K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.348 ms (8 rows) @@ -128,7 +128,7 @@ explain analyze select count(distinct d) from bigt; (slice1) Executor memory: 70K bytes avg x 3 workers, 70K bytes max (seg0). Memory used: 2560kB Memory wanted: 23713kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4936.653 ms (9 rows) @@ -200,7 +200,7 @@ where t1.d = t2.d; (slice2) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice3) Executor memory: 218K bytes avg x 3 workers, 218K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.272 ms (29 rows) @@ -249,7 +249,7 @@ where t1.i = t2.i; (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 278K bytes avg x 3 workers, 278K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.614 ms (17 rows) @@ -284,7 +284,7 @@ explain analyze select d, count(*) from smallt group by d limit 5; (slice1) Executor memory: 166K bytes avg x 3 workers, 166K bytes max (seg0). (slice2) Executor memory: 170K bytes avg x 3 workers, 170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.057 ms (17 rows) @@ -1307,7 +1307,7 @@ explain analyze select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i; (slice0) Executor memory: 322K bytes. (slice1) Executor memory: 4202K bytes avg x 3 workers, 4206K bytes max (seg0). Work_mem: 2K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 7.932 ms (12 rows) @@ -1386,7 +1386,7 @@ where i < (select count(*) from smallt where smallt.i = smallt2.i); Filter: smallt.i < count(*) Group Key: smallt.i -> Seq Scan on smallt (cost=0.00..4.00 rows=34 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) -- Sort in MergeJoin @@ -1619,7 +1619,7 @@ explain analyze select t1.* from smallt as t1, smallt as t2 where t1.i = t2.i an (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 120K bytes avg x 3 workers, 142K bytes max (seg0). Work_mem: 33K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.433 ms (18 rows) @@ -1749,7 +1749,7 @@ explain analyze select t1.* from smallt as t1, smallt as t2 where t1.d = t2.d an (slice1) Executor memory: 60K bytes avg x 3 workers, 62K bytes max (seg0). (slice2) Executor memory: 158K bytes avg x 3 workers, 158K bytes max (seg0). Work_mem: 33K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.362 ms (19 rows) @@ -1814,7 +1814,7 @@ and smallt.d = '2011-01-04'::date; (slice0) Executor memory: 437K bytes. (slice1) Executor memory: 128K bytes avg x 3 workers, 149K bytes max (seg1). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.672 ms (13 rows) @@ -1834,7 +1834,7 @@ explain analyze select *, exists(select 1 from pg_class where oid = c.oid) as du * (slice0) Executor memory: 1118K bytes. Work_mem: 96K bytes max, 64K bytes wanted. Memory used: 128000kB Memory wanted: 364kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 21.231 ms (14 rows) @@ -1889,7 +1889,7 @@ and smallt.d = '2011-01-04'::date; (slice0) Executor memory: 437K bytes. (slice1) Executor memory: 480K bytes avg x 3 workers, 678K bytes max (seg1). Work_mem: 9K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.456 ms (17 rows) diff --git a/src/test/regress/expected/eagerfree_optimizer.out b/src/test/regress/expected/eagerfree_optimizer.out index 1ff5e1081c47e4ac8c100bf10bf1088690bdb3f8..654731cb63d7a9680d15949dbb90f68f78811c5d 100644 --- a/src/test/regress/expected/eagerfree_optimizer.out +++ b/src/test/regress/expected/eagerfree_optimizer.out @@ -1876,7 +1876,7 @@ explain analyze select *, exists(select 1 from pg_class where oid = c.oid) as du Heap Fetches: 1252 (slice0) Executor memory: 382K bytes. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.681 ms (13 rows) diff --git a/src/test/regress/expected/equivclass.out b/src/test/regress/expected/equivclass.out index 0a6238621cf3c00bce5ab117596d21069b501497..3e2a86e973e444380095e64fa62b298c24cafa7e 100644 --- a/src/test/regress/expected/equivclass.out +++ b/src/test/regress/expected/equivclass.out @@ -110,7 +110,7 @@ explain (costs off) -> Index Scan using ec0_pkey on ec0 Index Cond: (ff = 42::bigint) Filter: (f1 = 42::bigint) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain (costs off) @@ -121,7 +121,7 @@ explain (costs off) -> Index Scan using ec0_pkey on ec0 Index Cond: (ff = '42'::int8alias1) Filter: (f1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain (costs off) @@ -132,7 +132,7 @@ explain (costs off) -> Index Scan using ec1_pkey on ec1 Index Cond: (ff = '42'::int8alias1) Filter: (f1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain (costs off) @@ -142,7 +142,7 @@ explain (costs off) Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on ec1 Filter: ((ff = f1) AND (f1 = '42'::int8alias2)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) explain (costs off) @@ -157,7 +157,7 @@ explain (costs off) -> Broadcast Motion 1:3 (slice1; segments: 1) -> Index Scan using ec1_pkey on ec1 Index Cond: ((ff = 42::bigint) AND (ff = 42::bigint)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) @@ -172,7 +172,7 @@ explain (costs off) -> Materialize -> Seq Scan on ec2 Filter: (x1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) @@ -188,7 +188,7 @@ explain (costs off) -> Materialize -> Seq Scan on ec2 Filter: (42::bigint = x1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain (costs off) @@ -203,7 +203,7 @@ explain (costs off) -> Materialize -> Seq Scan on ec2 Filter: (x1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) @@ -217,7 +217,7 @@ explain (costs off) Filter: (x1 = '42'::int8alias2) -> Index Scan using ec1_pkey on ec1 Index Cond: (ff = ec2.x1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) create index ec1_expr1 on ec1((ff + 1)); @@ -248,7 +248,7 @@ explain (costs off) -> Broadcast Motion 1:3 (slice1; segments: 1) -> Index Scan using ec1_pkey on ec1 Index Cond: (ff = 42::bigint) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) explain (costs off) @@ -279,7 +279,7 @@ explain (costs off) -> Index Scan using ec1_pkey on ec1 Index Cond: ((ff = 42::bigint) AND (ff = 42::bigint)) Filter: (ff = f1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) explain (costs off) @@ -325,7 +325,7 @@ explain (costs off) -> Seq Scan on ec1 ec1_5 -> Seq Scan on ec1 ec1_6 -> Seq Scan on ec1 ec1_4 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (27 rows) -- let's try that as a mergejoin @@ -374,7 +374,7 @@ explain (costs off) -> Seq Scan on ec1 ec1_5 -> Seq Scan on ec1 ec1_6 -> Seq Scan on ec1 ec1_4 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (27 rows) -- check partially indexed scan @@ -405,7 +405,7 @@ explain (costs off) -> Broadcast Motion 1:3 (slice1; segments: 1) -> Index Scan using ec1_pkey on ec1 Index Cond: (ff = 42::bigint) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) -- let's try that as a mergejoin @@ -435,6 +435,6 @@ explain (costs off) -> Broadcast Motion 1:3 (slice1; segments: 1) -> Index Scan using ec1_pkey on ec1 Index Cond: (ff = 42::bigint) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) diff --git a/src/test/regress/expected/equivclass_optimizer.out b/src/test/regress/expected/equivclass_optimizer.out index 13a2b0080a469e64c62a3524458ec0abf94f208c..01aa00afc902db1c9dbe5e4d52efd70f3e1b0c67 100644 --- a/src/test/regress/expected/equivclass_optimizer.out +++ b/src/test/regress/expected/equivclass_optimizer.out @@ -121,7 +121,7 @@ explain (costs off) -> Index Scan using ec0_pkey on ec0 Index Cond: (ff = '42'::int8alias1) Filter: (f1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain (costs off) @@ -171,7 +171,7 @@ explain (costs off) -> Materialize -> Seq Scan on ec2 Filter: (x1 = '42'::int8alias1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) diff --git a/src/test/regress/expected/explain_format.out b/src/test/regress/expected/explain_format.out index 9eaebfe4e253cf853ad23a7ee244b43bbcf3af54..0ffabba04cc267ec2ee0a33ba4df022358f19601 100644 --- a/src/test/regress/expected/explain_format.out +++ b/src/test/regress/expected/explain_format.out @@ -43,7 +43,7 @@ EXPLAIN SELECT * from boxes LEFT JOIN apples ON apples.id = boxes.apple_id LEFT -> Seq Scan on boxes (cost=0.00..879.00 rows=25967 width=12) -> Hash (cost=596.00..596.00 rows=16534 width=36) -> Seq Scan on box_locations (cost=0.00..596.00 rows=16534 width=36) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- explain_processing_on @@ -72,7 +72,7 @@ EXPLAIN (ANALYZE) SELECT * from boxes LEFT JOIN apples ON apples.id = boxes.appl (slice2) Executor memory: 2128K bytes avg x 3 workers, 2128K bytes max (seg0). (slice3) Executor memory: 1104K bytes avg x 3 workers, 1104K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Execution time: 29.929 ms (22 rows) @@ -232,7 +232,7 @@ QUERY PLAN Plan Rows: 49600 Plan Width: 36 Settings: - Optimizer: "legacy query optimizer" + Optimizer: "Postgres query optimizer" (1 row) --- Check Explain Analyze YAML output that include the slices information -- explain_processing_off @@ -416,7 +416,7 @@ QUERY PLAN Statement statistics: Memory used: 128000 Settings: - Optimizer: "legacy query optimizer" + Optimizer: "Postgres query optimizer" Execution Time: 8.490 (1 row) -- explain_processing_on @@ -442,7 +442,7 @@ QUERY PLAN "Alias": "generate_series" }, "Settings": { - "Optimizer": "legacy query optimizer" + "Optimizer": "Postgres query optimizer" } } ] @@ -457,7 +457,7 @@ QUERY PLAN generate_series - legacy query optimizer + Postgres query optimizer diff --git a/src/test/regress/expected/function_extensions.out b/src/test/regress/expected/function_extensions.out index aacf7448e71521d13fa22a4184ae48574f104c95..38efcbbd8a8e3b52e369cb4ce01c29e94519ccd9 100644 --- a/src/test/regress/expected/function_extensions.out +++ b/src/test/regress/expected/function_extensions.out @@ -319,7 +319,7 @@ explain select * from srf_testtab, test_srf(); -> Seq Scan on srf_testtab (cost=0.00..1.01 rows=1 width=6) -> Function Scan on test_srf (cost=0.25..10.25 rows=334 width=32) Planning time: 0.220 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain select * from srf_testtab, test_srf() where test_srf = srf_testtab.t; @@ -332,7 +332,7 @@ explain select * from srf_testtab, test_srf() where test_srf = srf_testtab.t; -> Hash (cost=1.01..1.01 rows=1 width=6) -> Seq Scan on srf_testtab (cost=0.00..1.01 rows=1 width=6) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) -- Test ALTER FUNCTION, and that \df displays the EXECUTE ON correctly diff --git a/src/test/regress/expected/gp_dqa.out b/src/test/regress/expected/gp_dqa.out index 5ad31dc019fe899ed869e4b769fbbae70f848d85..323299adc1a08687ad0be9683a9b5e16a3427921 100644 --- a/src/test/regress/expected/gp_dqa.out +++ b/src/test/regress/expected/gp_dqa.out @@ -32,7 +32,7 @@ explain (costs off) select count(distinct d) from dqa_t1; -> HashAggregate Group Key: dqa_t1.d -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) select count(distinct d) from dqa_t1 group by i; @@ -65,7 +65,7 @@ explain (costs off) select count(distinct d) from dqa_t1 group by i; -> HashAggregate Group Key: dqa_t1.i, dqa_t1.d -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select count(distinct d), count(distinct dt) from dqa_t1; @@ -94,7 +94,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1; -> HashAggregate Group Key: share0_ref2.dt -> Shared Scan (share slice:id 2:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select count(distinct d), count(distinct c), count(distinct dt) from dqa_t1; @@ -133,7 +133,7 @@ explain (costs off) select count(distinct d), count(distinct c), count(distinct -> HashAggregate Group Key: share0_ref3.dt -> Shared Scan (share slice:id 4:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select count(distinct d), count(distinct dt) from dqa_t1 group by c; @@ -178,7 +178,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1 gro -> Shared Scan (share slice:id 2:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) select count(distinct d), count(distinct dt) from dqa_t1 group by d; @@ -232,7 +232,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1 gro -> Shared Scan (share slice:id 1:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) select count(distinct dqa_t1.d) from dqa_t1, dqa_t2 where dqa_t1.d = dqa_t2.d; @@ -253,7 +253,7 @@ explain (costs off) select count(distinct dqa_t1.d) from dqa_t1, dqa_t2 where dq -> Seq Scan on dqa_t1 -> Hash -> Seq Scan on dqa_t2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select count(distinct dqa_t1.d) from dqa_t1, dqa_t2 where dqa_t1.d = dqa_t2.d group by dqa_t2.dt; @@ -334,7 +334,7 @@ explain (costs off) select count(distinct dqa_t1.d) from dqa_t1, dqa_t2 where dq -> Seq Scan on dqa_t1 -> Hash -> Seq Scan on dqa_t2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- Distinct keys are not distribution keys @@ -356,7 +356,7 @@ explain (costs off) select count(distinct c) from dqa_t1; -> HashAggregate Group Key: dqa_t1.c -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select count(distinct c) from dqa_t1 group by dt; @@ -411,7 +411,7 @@ explain (costs off) select count(distinct c) from dqa_t1 group by dt; -> HashAggregate Group Key: dqa_t1.dt, dqa_t1.c -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select count(distinct c) from dqa_t1 group by d; @@ -453,7 +453,7 @@ explain (costs off) select count(distinct c) from dqa_t1 group by d; -> HashAggregate Group Key: dqa_t1.d, dqa_t1.c -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select count(distinct c), count(distinct dt) from dqa_t1; @@ -486,7 +486,7 @@ explain (costs off) select count(distinct c), count(distinct dt) from dqa_t1; -> HashAggregate Group Key: share0_ref2.dt -> Shared Scan (share slice:id 3:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) select count(distinct c), count(distinct dt), i from dqa_t1 group by i; @@ -533,7 +533,7 @@ explain (costs off) select count(distinct c), count(distinct dt), i from dqa_t1 -> Shared Scan (share slice:id 2:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) select count(distinct i), count(distinct c), d from dqa_t1 group by d; @@ -587,7 +587,7 @@ explain (costs off) select count(distinct i), count(distinct c), d from dqa_t1 g -> Shared Scan (share slice:id 1:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) select count(distinct dqa_t1.dt) from dqa_t1, dqa_t2 where dqa_t1.c = dqa_t2.c; @@ -613,7 +613,7 @@ explain (costs off) select count(distinct dqa_t1.dt) from dqa_t1, dqa_t2 where d -> Seq Scan on dqa_t2 -> Hash -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select count(distinct dqa_t1.dt) from dqa_t1, dqa_t2 where dqa_t1.c = dqa_t2.c group by dqa_t2.dt; @@ -698,7 +698,7 @@ explain (costs off) select count(distinct dqa_t1.dt) from dqa_t1, dqa_t2 where d -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: dqa_t2.c -> Seq Scan on dqa_t2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) -- MPP-19037 diff --git a/src/test/regress/expected/gp_dqa_optimizer.out b/src/test/regress/expected/gp_dqa_optimizer.out index 6e308f048d5920dd3affe91b18731db030547005..70e87efa23daa6d75357bac084c383226782b05d 100644 --- a/src/test/regress/expected/gp_dqa_optimizer.out +++ b/src/test/regress/expected/gp_dqa_optimizer.out @@ -95,7 +95,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1; -> HashAggregate Group Key: share0_ref2.dt -> Shared Scan (share slice:id 2:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select count(distinct d), count(distinct c), count(distinct dt) from dqa_t1; @@ -134,7 +134,7 @@ explain (costs off) select count(distinct d), count(distinct c), count(distinct -> HashAggregate Group Key: share0_ref3.dt -> Shared Scan (share slice:id 4:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) select count(distinct d), count(distinct dt) from dqa_t1 group by c; @@ -179,7 +179,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1 gro -> Shared Scan (share slice:id 2:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) select count(distinct d), count(distinct dt) from dqa_t1 group by d; @@ -233,7 +233,7 @@ explain (costs off) select count(distinct d), count(distinct dt) from dqa_t1 gro -> Shared Scan (share slice:id 1:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) select count(distinct dqa_t1.d) from dqa_t1, dqa_t2 where dqa_t1.d = dqa_t2.d; @@ -502,7 +502,7 @@ explain (costs off) select count(distinct c), count(distinct dt) from dqa_t1; -> HashAggregate Group Key: share0_ref2.dt -> Shared Scan (share slice:id 3:0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) select count(distinct c), count(distinct dt), i from dqa_t1 group by i; @@ -549,7 +549,7 @@ explain (costs off) select count(distinct c), count(distinct dt), i from dqa_t1 -> Shared Scan (share slice:id 2:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) select count(distinct i), count(distinct c), d from dqa_t1 group by d; @@ -603,7 +603,7 @@ explain (costs off) select count(distinct i), count(distinct c), d from dqa_t1 g -> Shared Scan (share slice:id 1:0) -> Materialize -> Seq Scan on dqa_t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) select count(distinct dqa_t1.dt) from dqa_t1, dqa_t2 where dqa_t1.c = dqa_t2.c; diff --git a/src/test/regress/expected/gp_explain.out b/src/test/regress/expected/gp_explain.out index 84eeca5b03cd3fa702a53f614a58537500362a45..28853cd4ebac516c95554cea4a4755a8ac217b3e 100644 --- a/src/test/regress/expected/gp_explain.out +++ b/src/test/regress/expected/gp_explain.out @@ -93,7 +93,7 @@ WHERE mpp22263.unique1 = v.i and mpp22263.stringu1 = v.j; -> Seq Scan on mpp22263 (cost=0.00..219.00 rows=3967 width=244) -> Hash (cost=0.03..0.03 rows=1 width=36) -> Values Scan on "*VALUES*" (cost=0.00..0.03 rows=1 width=36) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) -- atmsort.pm masks out differences in the Filter line, so just memorizing @@ -145,7 +145,7 @@ explain (costs off) select count(*) over (partition by g) from generate_series(1 -> Sort Sort Key: g -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- @@ -159,33 +159,33 @@ explain (costs off) select count(*) over (partition by g) from generate_series(1 CREATE EXTERNAL WEB TABLE dummy_ext_tab (x text) EXECUTE 'echo foo' FORMAT 'text'; -- External Table Scan explain (format json, costs off) SELECT * FROM dummy_ext_tab; - QUERY PLAN ---------------------------------------------- - [ + - { + - "Plan": { + - "Node Type": "Gather Motion", + - "Senders": 3, + - "Receivers": 1, + - "Slice": 1, + - "Segments": 3, + - "Gang Type": "primary reader", + - "Plans": [ + - { + - "Node Type": "External Scan", + - "Parent Relationship": "Outer", + - "Slice": 1, + - "Segments": 3, + - "Gang Type": "primary reader", + - "Relation Name": "dummy_ext_tab",+ - "Alias": "dummy_ext_tab" + - } + - ] + - }, + - "Settings": { + - "Optimizer": "legacy query optimizer"+ - } + - } + + QUERY PLAN +----------------------------------------------- + [ + + { + + "Plan": { + + "Node Type": "Gather Motion", + + "Senders": 3, + + "Receivers": 1, + + "Slice": 1, + + "Segments": 3, + + "Gang Type": "primary reader", + + "Plans": [ + + { + + "Node Type": "External Scan", + + "Parent Relationship": "Outer", + + "Slice": 1, + + "Segments": 3, + + "Gang Type": "primary reader", + + "Relation Name": "dummy_ext_tab", + + "Alias": "dummy_ext_tab" + + } + + ] + + }, + + "Settings": { + + "Optimizer": "Postgres query optimizer"+ + } + + } + ] (1 row) @@ -194,25 +194,25 @@ CREATE TEMP TABLE dummy_aotab (x int4) WITH (appendonly=true); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'x' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. explain (format yaml, costs off) SELECT * FROM dummy_aotab; - QUERY PLAN ------------------------------------------ - - Plan: + - Node Type: "Gather Motion" + - Senders: 3 + - Receivers: 1 + - Slice: 1 + - Segments: 3 + - Gang Type: "primary reader" + - Plans: + - - Node Type: "Seq Scan" + - Parent Relationship: "Outer" + - Slice: 1 + - Segments: 3 + - Gang Type: "primary reader" + - Relation Name: "dummy_aotab" + - Alias: "dummy_aotab" + - Settings: + - Optimizer: "legacy query optimizer" + QUERY PLAN +------------------------------------------- + - Plan: + + Node Type: "Gather Motion" + + Senders: 3 + + Receivers: 1 + + Slice: 1 + + Segments: 3 + + Gang Type: "primary reader" + + Plans: + + - Node Type: "Seq Scan" + + Parent Relationship: "Outer" + + Slice: 1 + + Segments: 3 + + Gang Type: "primary reader" + + Relation Name: "dummy_aotab" + + Alias: "dummy_aotab" + + Settings: + + Optimizer: "Postgres query optimizer" (1 row) -- DML node (with ORCA) @@ -240,7 +240,7 @@ explain (format xml, costs off) insert into dummy_aotab values (1); + + + - legacy query optimizer + + Postgres query optimizer + + + @@ -274,7 +274,7 @@ explain SELECT * from information_schema.key_column_usage; -> Hash (cost=49.33..49.33 rows=1111 width=70) -> Seq Scan on pg_attribute a (cost=0.00..49.33 rows=3333 width=70) Filter: (NOT attisdropped) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) -- github issue 5794. @@ -288,7 +288,7 @@ explain analyze SELECT * FROM explaintest; (slice0) Executor memory: 322K bytes. (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.600 ms (8 rows) diff --git a/src/test/regress/expected/gp_explain_optimizer.out b/src/test/regress/expected/gp_explain_optimizer.out index 256b99bfd5849ca347b58c4ebf913a92939c0970..42e8598f0e3acb5366a99f4ff56345359772c669 100644 --- a/src/test/regress/expected/gp_explain_optimizer.out +++ b/src/test/regress/expected/gp_explain_optimizer.out @@ -305,7 +305,7 @@ explain SELECT * from information_schema.key_column_usage; -> Hash (cost=49.33..49.33 rows=1111 width=70) -> Seq Scan on pg_attribute a (cost=0.00..49.33 rows=3333 width=70) Filter: (NOT attisdropped) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) -- github issue 5794. diff --git a/src/test/regress/expected/gpdiffcheck.out b/src/test/regress/expected/gpdiffcheck.out index 4651cb35704978f483c658dbcdd86c678fb0035e..3f4742730995cf4775f2d0f3705c2c58a876a17f 100755 --- a/src/test/regress/expected/gpdiffcheck.out +++ b/src/test/regress/expected/gpdiffcheck.out @@ -165,7 +165,7 @@ explain analyze select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c (slice4) Executor memory: 66K bytes (seg2). (slice5) Executor memory: 1103K bytes avg x 3 workers, 1114K bytes max (seg2). Work_mem: 1K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4571.552 ms (27 rows) @@ -189,7 +189,7 @@ explain select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c1) from -> Gather Motion 3:1 (slice3; segments: 3) (cost=1.01..1.07 rows=1 width=32) -> Aggregate (cost=1.01..1.02 rows=1 width=32) -> Seq Scan on gpd1 (cost=0.00..1.01 rows=1 width=2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c1) from gpd1); @@ -236,7 +236,7 @@ explain select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c1) from -> Gather Motion 3:1 (slice3; segments: 3) (cost=1.01..1.43 rows=1 width=32) -> Aggregate (cost=1.01..1.02 rows=1 width=32) -> Seq Scan on gpd1 (cost=0.00..1.01 rows=1 width=2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c1) from gpd1); @@ -288,7 +288,7 @@ explain analyze select a.* from gpd1 as a, gpd1 as b where b.c1 in (select max(c (slice4) Executor memory: 65K bytes (seg2). (slice5) Executor memory: 1103K bytes avg x 3 workers, 1114K bytes max (seg2). Work_mem: 1K bytes max. Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1507.339 ms (27 rows) diff --git a/src/test/regress/expected/gpdist.out b/src/test/regress/expected/gpdist.out index edb6820f397f955d9f5aaa83c63c069489988eaf..7d2a69b222cdc4e15ef0df38d16a22aa44805615 100644 --- a/src/test/regress/expected/gpdist.out +++ b/src/test/regress/expected/gpdist.out @@ -652,7 +652,7 @@ explain (costs off) select even.i from even left outer join odd on (even.i = odd -> Seq Scan on even -> Hash -> Seq Scan on odd - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- But this does. @@ -671,7 +671,7 @@ explain (costs off) select even.i from even right outer join odd on (even.i = od -> Seq Scan on odd -> Hash -> Seq Scan on even - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- Check that we can track the distribution through multiple FULL OUTER JOINs. @@ -692,7 +692,7 @@ explain (costs off) select * from a full join b on (a.i=b.i) full join c on (b.i -> Seq Scan on b -> Hash -> Seq Scan on c - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select * from a full join b on (a.i=b.i) full join c on (b.i=c.i); diff --git a/src/test/regress/expected/gpdist_legacy_opclasses.out b/src/test/regress/expected/gpdist_legacy_opclasses.out index 44242fed212da3bd00e316f8382859f4f4f82490..bef485a1b931b4dee620ca582dfa967fd3d51fcf 100644 --- a/src/test/regress/expected/gpdist_legacy_opclasses.out +++ b/src/test/regress/expected/gpdist_legacy_opclasses.out @@ -132,7 +132,7 @@ explain (costs off) select * from legacy_int a inner join legacy_int b on a.id = -> Seq Scan on legacy_int a -> Hash -> Seq Scan on legacy_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from legacy_int a inner join legacy_int b on a.id = b.id; @@ -156,7 +156,7 @@ explain (costs off) select * from legacy_int a inner join modern_int b on a.id = -> Redistribute Motion 3:3 (slice1; segments: 3) Hash Key: b.id -> Seq Scan on modern_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from legacy_int a inner join modern_int b on a.id = b.id; @@ -176,7 +176,7 @@ explain (costs off) select * from modern_int a inner join modern_int b on a.id = -> Seq Scan on modern_int a -> Hash -> Seq Scan on modern_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from modern_int a inner join modern_int b on a.id = b.id; @@ -202,7 +202,7 @@ explain (costs off) select * from legacy_int a inner join modern_text b on a.id: -> Seq Scan on legacy_int a -> Hash -> Seq Scan on modern_text b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from legacy_int a inner join modern_text b on a.id::text = b.t; @@ -224,7 +224,7 @@ explain (costs off) select * from legacy_domain_over_int a inner join legacy_dom -> Seq Scan on legacy_domain_over_int a -> Hash -> Seq Scan on legacy_domain_over_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) select * from legacy_int a inner join legacy_domain_over_int b on a.id = b.id; @@ -236,7 +236,7 @@ explain (costs off) select * from legacy_int a inner join legacy_domain_over_int -> Seq Scan on legacy_int a -> Hash -> Seq Scan on legacy_domain_over_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) select * from modern_int a inner join legacy_domain_over_int b on a.id = b.id; @@ -250,7 +250,7 @@ explain (costs off) select * from modern_int a inner join legacy_domain_over_int -> Redistribute Motion 3:3 (slice1; segments: 3) Hash Key: a.id -> Seq Scan on modern_int a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) create type colors as enum ('red', 'green', 'blue'); @@ -265,7 +265,7 @@ explain (costs off) select * from legacy_enum a inner join legacy_enum b on a.co -> Seq Scan on legacy_enum a -> Hash -> Seq Scan on legacy_enum b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from legacy_enum a inner join legacy_enum b on a.color = b.color; diff --git a/src/test/regress/expected/gpdist_legacy_opclasses_optimizer.out b/src/test/regress/expected/gpdist_legacy_opclasses_optimizer.out index 28d49dee601f22f774c80e1c0a1c495de456853d..79eb5d9b16675766784f301291a0032c75520cc4 100644 --- a/src/test/regress/expected/gpdist_legacy_opclasses_optimizer.out +++ b/src/test/regress/expected/gpdist_legacy_opclasses_optimizer.out @@ -156,7 +156,7 @@ explain (costs off) select * from legacy_int a inner join modern_int b on a.id = -> Redistribute Motion 3:3 (slice1; segments: 3) Hash Key: b.id -> Seq Scan on modern_int b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from legacy_int a inner join modern_int b on a.id = b.id; @@ -202,7 +202,7 @@ explain (costs off) select * from legacy_int a inner join modern_text b on a.id: -> Seq Scan on legacy_int a -> Hash -> Seq Scan on modern_text b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from legacy_int a inner join modern_text b on a.id::text = b.t; @@ -250,7 +250,7 @@ explain (costs off) select * from modern_int a inner join legacy_domain_over_int -> Redistribute Motion 3:3 (slice1; segments: 3) Hash Key: a.id -> Seq Scan on modern_int a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) create type colors as enum ('red', 'green', 'blue'); diff --git a/src/test/regress/expected/gpdist_opclasses.out b/src/test/regress/expected/gpdist_opclasses.out index 6a11bf995b78f5019bef26e0cd6c6f054f8ed624..da1b2b029d0604b864ba379a331201285036b95a 100644 --- a/src/test/regress/expected/gpdist_opclasses.out +++ b/src/test/regress/expected/gpdist_opclasses.out @@ -66,7 +66,7 @@ EXPLAIN (COSTS OFF) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: abstab_b.b -> Seq Scan on abstab_b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; @@ -97,7 +97,7 @@ EXPLAIN (COSTS OFF) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; -> Redistribute Motion 3:3 (slice1; segments: 3) Hash Key: abstab_b.b -> Seq Scan on abstab_b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; @@ -123,7 +123,7 @@ EXPLAIN (COSTS OFF) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; -> Seq Scan on abstab_a -> Hash -> Seq Scan on abstab_b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT a, b FROM abstab_a, abstab_b WHERE a |=| b; @@ -152,7 +152,7 @@ EXPLAIN (COSTS OFF) SELECT a, b FROM abstab_a, abstab_b WHERE a = b; -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: abstab_a.a -> Seq Scan on abstab_a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) SELECT a, b FROM abstab_a, abstab_b WHERE a = b; diff --git a/src/test/regress/expected/gporca.out b/src/test/regress/expected/gporca.out index d294a4c8f37094ce1c69754cc44105c8bbbd28bf..231cb897cbb62309bad3236a01f8fa83cb9dbd03 100644 --- a/src/test/regress/expected/gporca.out +++ b/src/test/regress/expected/gporca.out @@ -2412,7 +2412,7 @@ from orca.bar1 inner join orca.bar2 on (bar1.x2 = bar2.x2) order by bar1.x1; -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.20 rows=1 width=0) -> Seq Scan on foo (cost=0.00..3.20 rows=1 width=0) Settings: optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (23 rows) select case when bar1.x2 = bar2.x2 then coalesce((select 1 from orca.foo where bar1.x2 = bar2.x2 and bar1.x2 = random() and foo.x2 = bar2.x2),0) else 1 end as col1, bar1.x1 @@ -3492,7 +3492,7 @@ explain select * from orca.r, orca.s where r.a is not distinct from s.c; -> Materialize (cost=0.00..4.30 rows=20 width=8) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..4.00 rows=20 width=8) -> Seq Scan on r (cost=0.00..3.20 rows=7 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- explain Hash Join with equality join condition @@ -3507,7 +3507,7 @@ explain select * from orca.r, orca.s where r.a = s.c; -> Hash (cost=3.20..3.20 rows=7 width=8) -> Seq Scan on r (cost=0.00..3.20 rows=7 width=8) Settings: optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) -- sort @@ -8171,7 +8171,7 @@ explain select * from orca.t order by 1,2; -> Seq Scan on t_1_prt_part201206 (cost=0.00..364.00 rows=8800 width=94) -> Seq Scan on t_1_prt_part201207 (cost=0.00..364.00 rows=8800 width=94) -> Seq Scan on t_1_prt_part201208 (cost=0.00..364.00 rows=8800 width=94) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select tag2, tag1 from orca.t order by 1, 2;; @@ -8265,7 +8265,7 @@ explain select * from orca.t_date where user_id=9; Filter: user_id = 9::numeric -> Seq Scan on t_date_1_prt_part201208 (cost=0.00..1.01 rows=1 width=21) Filter: user_id = 9::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select * from orca.t_date where user_id=9; @@ -8317,7 +8317,7 @@ explain select * from orca.t_text where user_id=9; Filter: user_id = 9::numeric -> Seq Scan on t_text_1_prt_partugly (cost=0.00..2.06 rows=1 width=21) Filter: user_id = 9::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from orca.t_text where user_id=9; @@ -8376,7 +8376,7 @@ explain select * from orca.t_employee where user_id = 2; Filter: user_id = 2::numeric -> Seq Scan on t_employee_1_prt_part2 (cost=0.00..1.04 rows=1 width=47) Filter: user_id = 2::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from orca.t_employee where user_id = 2; @@ -8423,7 +8423,7 @@ explain select * from orca.t_ceeval_ints where user_id=4; Filter: user_id = 4::numeric -> Seq Scan on t_ceeval_ints_1_prt_part103 (cost=0.00..1.01 rows=1 width=21) Filter: user_id = 4::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from orca.t_ceeval_ints where user_id=4; @@ -9545,7 +9545,7 @@ where c.cid = s.cid and s.date_sk = d.date_sk and -> Seq Scan on sales s (cost=0.00..938.00 rows=28 width=40) Filter: ((lower(type) = 't1'::text) OR (upper(type) = 'T2'::text)) Planning time: 2.896 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) reset optimizer_segments; @@ -9565,7 +9565,7 @@ explain select * from orca.bm_test where i=2 and t='2'; -> Seq Scan on bm_test (cost=0.00..4.50 rows=2 width=6) Filter: i = 2 AND t = '2'::text Settings: optimizer=off; optimizer_cte_inlining_bound=1000 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) select * from orca.bm_test where i=2 and t='2'; @@ -9627,7 +9627,7 @@ explain select * from orca.bm_dyn_test where i=2 and t='2'; Filter: i = 2 AND t = '2'::text -> Seq Scan on bm_dyn_test_1_prt_part5 (cost=0.00..1.01 rows=1 width=10) Filter: i = 2 AND t = '2'::text - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select * from orca.bm_dyn_test where i=2 and t='2'; @@ -9687,7 +9687,7 @@ explain select * from orca.bm_dyn_test_onepart where i=2 and t='2'; Filter: i = 2 AND t = '2'::text -> Seq Scan on bm_dyn_test_onepart_1_prt_part5 (cost=0.00..1.01 rows=1 width=10) Filter: i = 2 AND t = '2'::text - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select * from orca.bm_dyn_test_onepart where i=2 and t='2'; @@ -10069,7 +10069,7 @@ ORDER BY 1 asc ; -> Hash (cost=324.00..324.00 rows=7467 width=108) -> Seq Scan on my_tt_agg_opt tt (cost=0.00..324.00 rows=7467 width=108) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (22 rows) reset optimizer_segments; @@ -10152,7 +10152,7 @@ where ordernum between 10 and 20; -> Seq Scan on idxscan_inner i (cost=0.00..2.04 rows=1 width=9) Filter: ordernum >= 10 AND ordernum <= 20 Settings: optimizer=off; optimizer_cte_inlining_bound=1000 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (11 rows) select id, comment from idxscan_outer as o join idxscan_inner as i on o.id = i.productid @@ -10205,7 +10205,7 @@ explain select * from orca.index_test where a = 5; -> Seq Scan on index_test (cost=0.00..4.25 rows=1 width=20) Filter: a = 5 Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- force_explain @@ -10216,7 +10216,7 @@ explain select * from orca.index_test where c = 5; -> Seq Scan on index_test (cost=0.00..4.25 rows=1 width=20) Filter: c = 5 Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- force_explain @@ -10227,7 +10227,7 @@ explain select * from orca.index_test where a = 5 and c = 5; -> Seq Scan on index_test (cost=0.00..4.50 rows=1 width=20) Filter: a = 5 AND c = 5 Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- renaming columns @@ -10319,7 +10319,7 @@ EXPLAIN SELECT * FROM btree_test WHERE a in (1, 47); -> Seq Scan on btree_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{1,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('2', 47); @@ -10329,7 +10329,7 @@ EXPLAIN SELECT * FROM btree_test WHERE a in ('2', 47); -> Seq Scan on btree_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{2,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2'); @@ -10339,7 +10339,7 @@ EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2'); -> Seq Scan on btree_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{1,2}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2', 47); @@ -10349,7 +10349,7 @@ EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2', 47); -> Seq Scan on btree_test (cost=0.00..4.38 rows=1 width=4) Filter: a = ANY ('{1,2,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- Test Bitmap index scan with in list @@ -10362,7 +10362,7 @@ EXPLAIN SELECT * FROM bitmap_test WHERE a in (1); -> Seq Scan on bitmap_test (cost=0.00..4.25 rows=1 width=4) Filter: a = 1 Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM bitmap_test WHERE a in (1, 47); @@ -10372,7 +10372,7 @@ EXPLAIN SELECT * FROM bitmap_test WHERE a in (1, 47); -> Seq Scan on bitmap_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{1,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM bitmap_test WHERE a in ('2', 47); @@ -10382,7 +10382,7 @@ EXPLAIN SELECT * FROM bitmap_test WHERE a in ('2', 47); -> Seq Scan on bitmap_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{2,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM bitmap_test WHERE a in ('1', '2'); @@ -10392,7 +10392,7 @@ EXPLAIN SELECT * FROM bitmap_test WHERE a in ('1', '2'); -> Seq Scan on bitmap_test (cost=0.00..4.25 rows=1 width=4) Filter: a = ANY ('{1,2}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM bitmap_test WHERE a in ('1', '2', 47); @@ -10402,7 +10402,7 @@ EXPLAIN SELECT * FROM bitmap_test WHERE a in ('1', '2', 47); -> Seq Scan on bitmap_test (cost=0.00..4.38 rows=1 width=4) Filter: a = ANY ('{1,2,47}'::integer[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- Test Logging for unsupported features in ORCA @@ -10450,7 +10450,7 @@ explain select count(*) from foo group by cube(a,b); -> Sort (cost=8552.10..8767.35 rows=28700 width=8) Sort Key: a, b -> Shared Scan (share slice:id 2:0) (cost=1391.50..1494.60 rows=28700 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (31 rows) reset client_min_messages; @@ -10554,7 +10554,7 @@ explain select * from foo where b in ('1', '2'); -> Seq Scan on foo (cost=0.00..667.50 rows=31 width=42) Filter: b::text = ANY ('{1,2}'::text[]) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) set optimizer_enable_ctas = off; @@ -10594,7 +10594,7 @@ explain (costs off) select count(*), t2.c from input_tab1 t1 left join input_tab -> Seq Scan on input_tab2 t2 -> Hash -> Seq Scan on input_tab1 t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) select count(*), t2.c from input_tab1 t1 left join input_tab2 t2 on t1.a = t2.c group by t2.c; @@ -10651,7 +10651,7 @@ FROM (SELECT * -> Seq Scan on tab_2 (cost=0.00..1.01 rows=1 width=7) -> Subquery Scan on "*SELECT* 2" (cost=0.00..1.02 rows=1 width=8) -> Seq Scan on tab_3 (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) SELECT Count(*) @@ -10870,7 +10870,7 @@ EXPLAIN SELECT a FROM csq_cast_param_outer WHERE b in (SELECT CASE WHEN a > 1 TH -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.10 rows=2 width=4) -> Seq Scan on csq_cast_param_inner (cost=0.00..1.02 rows=1 width=4) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) SELECT a FROM csq_cast_param_outer WHERE b in (SELECT CASE WHEN a > 1 THEN d ELSE '42' END FROM csq_cast_param_inner); @@ -10894,7 +10894,7 @@ EXPLAIN SELECT a FROM csq_cast_param_outer WHERE b in (SELECT CASE WHEN a > 1 TH -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.10 rows=2 width=4) -> Seq Scan on csq_cast_param_inner (cost=0.00..1.02 rows=1 width=4) Settings: optimizer=off; optimizer_cte_inlining_bound=1000; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) SELECT a FROM csq_cast_param_outer WHERE b in (SELECT CASE WHEN a > 1 THEN d ELSE '42' END FROM csq_cast_param_inner); @@ -10918,7 +10918,7 @@ EXPLAIN SELECT a FROM ggg WHERE a NOT IN (NULL, ''); Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=2) -> Seq Scan on ggg (cost=0.00..1.01 rows=1 width=2) Filter: a <> ALL ('{NULL,""}'::bpchar[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) EXPLAIN SELECT a FROM ggg WHERE a IN (NULL, 'x'); @@ -10928,7 +10928,7 @@ EXPLAIN SELECT a FROM ggg WHERE a IN (NULL, 'x'); -> Seq Scan on ggg (cost=0.00..1.01 rows=1 width=2) Filter: (a = ANY ('{NULL,x}'::bpchar[])) Planning time: 0.038 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- result node with one time filter and filter @@ -10987,7 +10987,7 @@ EXPLAIN WITH abc AS (SELECT onetimefilter1.a, onetimefilter1.b FROM onetimefilte -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=6.51..6.72 rows=4 width=8) -> Shared Scan (share slice:id 3:0) (cost=6.51..6.72 rows=4 width=8) Planning time: 0.276 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (43 rows) WITH abc AS (SELECT onetimefilter1.a, onetimefilter1.b FROM onetimefilter1, onetimefilter2 WHERE onetimefilter1.a=onetimefilter2.a) SELECT (SELECT 1 FROM abc WHERE f1.b = f2.b LIMIT 1), COALESCE((SELECT 2 FROM abc WHERE f1.a=random() AND f1.a=2), 0), (SELECT b FROM abc WHERE b=f1.b) FROM onetimefilter1 f1, onetimefilter2 f2 WHERE f1.b = f2.b; diff --git a/src/test/regress/expected/gporca_faults.out b/src/test/regress/expected/gporca_faults.out index 96e6ed69dd92df9900f504a98f189070149d308a..c79f6a57d60d312a941f8a051c8db88fc0af4bbe 100644 --- a/src/test/regress/expected/gporca_faults.out +++ b/src/test/regress/expected/gporca_faults.out @@ -49,7 +49,7 @@ EXPLAIN SELECT * FROM func1_nosql_vol(5), foo; -> Materialize (cost=1.01..1.02 rows=1 width=8) -> Seq Scan on foo (cost=0.00..1.01 rows=1 width=8) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select gp_inject_fault('opt_relcache_translator_catalog_access', 'reset', 1); diff --git a/src/test/regress/expected/gporca_faults_optimizer.out b/src/test/regress/expected/gporca_faults_optimizer.out index 019c84046c90c1aaa9f5493193371e418c1d94ed..66de09f4402936511f222810b4d4dd458a70fccc 100644 --- a/src/test/regress/expected/gporca_faults_optimizer.out +++ b/src/test/regress/expected/gporca_faults_optimizer.out @@ -45,7 +45,7 @@ EXPLAIN SELECT * FROM func1_nosql_vol(5), foo; -> Materialize (cost=1.01..1.02 rows=1 width=8) -> Seq Scan on foo (cost=0.00..1.01 rows=1 width=8) Settings: optimizer=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select gp_inject_fault('opt_relcache_translator_catalog_access', 'reset', 1); diff --git a/src/test/regress/expected/gporca_optimizer.out b/src/test/regress/expected/gporca_optimizer.out index 997d9bfd9376a0dad2f8fc605761535cfe1eca99..b8bb528ba94f53ee05fa0a91673e1fa7a570bdac 100644 --- a/src/test/regress/expected/gporca_optimizer.out +++ b/src/test/regress/expected/gporca_optimizer.out @@ -9717,7 +9717,7 @@ DETAIL: No plan has been computed for required properties Filter: i = 2 AND t = '2'::text -> Seq Scan on bm_dyn_test_onepart_1_prt_part5 (cost=0.00..1.01 rows=1 width=10) Filter: i = 2 AND t = '2'::text - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select * from orca.bm_dyn_test_onepart where i=2 and t='2'; @@ -10365,7 +10365,7 @@ DETAIL: DXL-to-PlStmt Translation: ScalarArrayOpExpr condition on index scan no -> Seq Scan on btree_test (cost=0.00..2.25 rows=1 width=4) Filter: a = ANY ('{1,47}'::integer[]) Settings: optimizer=on; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('2', 47); @@ -10377,7 +10377,7 @@ DETAIL: DXL-to-PlStmt Translation: ScalarArrayOpExpr condition on index scan no -> Seq Scan on btree_test (cost=0.00..2.25 rows=1 width=4) Filter: a = ANY ('{2,47}'::integer[]) Settings: optimizer=on; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2'); @@ -10389,7 +10389,7 @@ DETAIL: DXL-to-PlStmt Translation: ScalarArrayOpExpr condition on index scan no -> Seq Scan on btree_test (cost=0.00..2.25 rows=1 width=4) Filter: a = ANY ('{1,2}'::integer[]) Settings: optimizer=on; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) EXPLAIN SELECT * FROM btree_test WHERE a in ('1', '2', 47); @@ -10401,7 +10401,7 @@ DETAIL: DXL-to-PlStmt Translation: ScalarArrayOpExpr condition on index scan no -> Seq Scan on btree_test (cost=0.00..2.38 rows=1 width=4) Filter: a = ANY ('{1,2,47}'::integer[]) Settings: optimizer=on; optimizer_metadata_caching=on - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- Test Bitmap index scan with in list @@ -10514,7 +10514,7 @@ LOG: Planner produced plan :0 -> Sort (cost=8552.10..8767.35 rows=28700 width=8) Sort Key: a, b -> Shared Scan (share slice:id 2:0) (cost=1391.50..1494.60 rows=28700 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (31 rows) reset client_min_messages; diff --git a/src/test/regress/expected/indexjoin.out b/src/test/regress/expected/indexjoin.out index deb18e176430faae397d1716738b8236a4fade74..38ae08bd0e3bf7f9c0a9c6dc49df876b559c9086 100644 --- a/src/test/regress/expected/indexjoin.out +++ b/src/test/regress/expected/indexjoin.out @@ -47,7 +47,7 @@ ORDER BY 1 asc ; -> Hash (cost=26.27..26.27 rows=676 width=20) -> Seq Scan on my_tq_agg_small tq (cost=0.00..26.27 rows=676 width=20) Settings: optimizer=off; optimizer_nestloop_factor=1 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (19 rows) diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index 3a2d0468a7fe8aee08c48f103757eb515d0e5691..5bef1f81b7b176adff5229a0b14a3a0d935cae82 100755 --- a/src/test/regress/expected/inherit.out +++ b/src/test/regress/expected/inherit.out @@ -1267,7 +1267,7 @@ select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 l -> Limit -> Seq Scan on int4_tbl Filter: ((f1 < 10) AND (f1 > (-10))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 limit 1) ss on id = f1; @@ -1298,7 +1298,7 @@ select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 l -> Limit -> Seq Scan on int4_tbl Filter: ((f1 < 10) AND (f1 > (-10))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 limit 1) ss on id = f1; @@ -1356,7 +1356,7 @@ explain (verbose, costs off) select * from matest0 order by 1-id; Output: matest2.id, matest2.name -> Seq Scan on public.matest3 Output: matest3.id, matest3.name - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_indexscan=off, optimizer=off (19 rows) @@ -1389,7 +1389,7 @@ explain (verbose, costs off) select min(1-id) from matest0; Output: matest2.id -> Seq Scan on public.matest3 Output: matest3.id - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_indexscan=off, optimizer=off (17 rows) @@ -1424,7 +1424,7 @@ explain (verbose, costs off) select * from matest0 order by 1-id; Output: matest2.id, matest2.name, (1 - matest2.id) -> Index Scan using matest3i on public.matest3 Output: matest3.id, matest3.name, (1 - matest3.id) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_bitmapscan=off, enable_seqscan=off, optimizer=off (18 rows) @@ -1469,7 +1469,7 @@ explain (verbose, costs off) select min(1-id) from matest0; -> Index Scan using matest3i on public.matest3 Output: matest3.id, (1 - matest3.id) Index Cond: ((1 - matest3.id) IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_bitmapscan=off, enable_seqscan=off, optimizer=off (29 rows) @@ -1519,7 +1519,7 @@ order by t1.b limit 10; Filter: (c = d) -> Seq Scan on matest1 t2_1 Filter: (c = d) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) reset enable_nestloop; @@ -1547,7 +1547,7 @@ ORDER BY thousand, tenthous; -> Sort Sort Key: tenk1_1.thousand, tenk1_1.thousand -> Index Only Scan using tenk1_thous_tenthous on tenk1 tenk1_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) @@ -1565,7 +1565,7 @@ ORDER BY thousand, tenthous; -> Sort Sort Key: (42), (42) -> Index Only Scan using tenk1_hundred on tenk1 tenk1_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (costs off) @@ -1583,7 +1583,7 @@ ORDER BY thousand, tenthous; -> Sort Sort Key: tenk1_1.thousand, ((random())::integer) -> Index Only Scan using tenk1_thous_tenthous on tenk1 tenk1_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- Check min/max aggregate optimization @@ -1602,7 +1602,7 @@ SELECT min(x) FROM -> Append -> Index Only Scan using tenk1_unique1 on tenk1 a -> Index Only Scan using tenk1_unique2 on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -1619,7 +1619,7 @@ SELECT min(y) FROM -> Append -> Index Only Scan using tenk1_unique1 on tenk1 a -> Index Only Scan using tenk1_unique2 on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- XXX planner doesn't recognize that index on unique2 is sufficiently sorted @@ -1638,7 +1638,7 @@ ORDER BY x, y; -> Append -> Index Only Scan using tenk1_thous_tenthous on tenk1 a -> Index Only Scan using tenk1_unique2 on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- exercise rescan code path via a repeatedly-evaluated subquery @@ -1665,7 +1665,7 @@ FROM generate_series(1, 3) g(i); -> Sort Sort Key: ((d_1.d + g.i)) -> Function Scan on generate_series d_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) SELECT diff --git a/src/test/regress/expected/inherit_optimizer.out b/src/test/regress/expected/inherit_optimizer.out index dc21cbb893994e7655ccfeb49acb9a1a536573ba..b56679e236fa6f958ce589f6888599ff5b89562c 100644 --- a/src/test/regress/expected/inherit_optimizer.out +++ b/src/test/regress/expected/inherit_optimizer.out @@ -1280,7 +1280,7 @@ select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 l -> Limit -> Seq Scan on int4_tbl Filter: ((f1 < 10) AND (f1 > (-10))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 limit 1) ss on id = f1; @@ -1311,7 +1311,7 @@ select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 l -> Limit -> Seq Scan on int4_tbl Filter: ((f1 < 10) AND (f1 > (-10))) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from patest0 join (select f1 from int4_tbl where f1 < 10 and f1 > -10 limit 1) ss on id = f1; @@ -1369,7 +1369,7 @@ explain (verbose, costs off) select * from matest0 order by 1-id; Output: matest2.id, matest2.name -> Seq Scan on public.matest3 Output: matest3.id, matest3.name - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_indexscan=off, optimizer=on (19 rows) @@ -1402,7 +1402,7 @@ explain (verbose, costs off) select min(1-id) from matest0; Output: matest2.id -> Seq Scan on public.matest3 Output: matest3.id - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_indexscan=off, optimizer=off (17 rows) @@ -1437,7 +1437,7 @@ explain (verbose, costs off) select * from matest0 order by 1-id; Output: matest2.id, matest2.name, (1 - matest2.id) -> Index Scan using matest3i on public.matest3 Output: matest3.id, matest3.name, (1 - matest3.id) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_bitmapscan=off, enable_seqscan=off, optimizer=on (18 rows) @@ -1482,7 +1482,7 @@ explain (verbose, costs off) select min(1-id) from matest0; -> Index Scan using matest3i on public.matest3 Output: matest3.id, (1 - matest3.id) Index Cond: ((1 - matest3.id) IS NOT NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_bitmapscan=off, enable_seqscan=off, optimizer=off (29 rows) @@ -1532,7 +1532,7 @@ order by t1.b limit 10; Filter: (c = d) -> Seq Scan on matest1 t2_1 Filter: (c = d) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) reset enable_nestloop; @@ -1678,7 +1678,7 @@ FROM generate_series(1, 3) g(i); -> Sort Sort Key: ((d_1.d + g.i)) -> Function Scan on generate_series d_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) SELECT diff --git a/src/test/regress/expected/instr_in_shmem.out b/src/test/regress/expected/instr_in_shmem.out index 1d241291333ea7b1a1fd45c4c3972d78a4b8e6d9..cefb6ff41964860e9a5eefdfcb6402a8197ae812 100644 --- a/src/test/regress/expected/instr_in_shmem.out +++ b/src/test/regress/expected/instr_in_shmem.out @@ -125,7 +125,7 @@ EXPLAIN ANALYZE SELECT count(*) FROM a a1, a a2, a a3; (slice2) Executor memory: 62K bytes avg x 3 workers, 62K bytes max (seg0). (slice3) Executor memory: 158K bytes avg x 3 workers, 158K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Execution time: 73.541 ms (20 rows) @@ -144,7 +144,7 @@ EXPLAIN SELECT count(*) FROM a where id < (1/(select count(*) where 1=0)); -> Seq Scan on a (cost=0.00..3.75 rows=6 width=0) Filter: (id < (1 / $0)) Planning time: 0.414 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) EXPLAIN SELECT count(*) FROM a a1, a a2, a a3; @@ -163,7 +163,7 @@ EXPLAIN SELECT count(*) FROM a a1, a a2, a a3; -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..5.50 rows=50 width=0) -> Seq Scan on a a3 (cost=0.00..3.50 rows=17 width=0) Planning time: 0.556 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) -- Expected result is 1 row, means only current query in instrument slots, diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out index e9106e627e15f8435587978992ac8f7aec77541d..f8ab035cd7fd1aa765790f49c2cb9ebea12182d1 100755 --- a/src/test/regress/expected/interval.out +++ b/src/test/regress/expected/interval.out @@ -262,7 +262,7 @@ SELECT f1 FROM INTERVAL_TBL_OF r1 ORDER BY f1; Sort Key: f1 -> Bitmap Heap Scan on interval_tbl_of r1 -> Bitmap Index Scan on interval_tbl_of_f1_idx - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) SELECT f1 FROM INTERVAL_TBL_OF r1 ORDER BY f1; diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index ae2516116045458cbd8fcd733d6d136cdc3a9634..06489af2198e5709bccf671bb816f1ce5569f147 100755 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -2237,7 +2237,7 @@ where b.f1 = t.thousand and a.f1 = b.f1 and (a.f1+b.f1+999) = t.tenthous; -> Gather Motion 3:1 (slice3; segments: 3) -> Aggregate -> Seq Scan on int4_tbl i4b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select a.f1, b.f1, t.thousand, t.tenthous from @@ -2273,7 +2273,7 @@ select * from -> Sort Sort Key: j1_tbl.i -> Seq Scan on j1_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select * from @@ -2333,7 +2333,7 @@ select count(*) from Merge Key: y.unique2 -> Subquery Scan on y -> Index Scan using tenk1_unique2 on tenk1 y_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select count(*) from @@ -2506,7 +2506,7 @@ where not exists ( -> Seq Scan on tt4x t4 -> Hash -> Seq Scan on tt4x t5 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (27 rows) -- @@ -2643,7 +2643,7 @@ select a.idv, b.idv from tidv a, tidv b where a.idv = b.idv; -> Gather Motion 3:1 (slice2; segments: 3) Merge Key: b.idv -> Index Only Scan using tidv_idv_idx on tidv b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) set enable_mergejoin = 0; @@ -2658,7 +2658,7 @@ select a.idv, b.idv from tidv a, tidv b where a.idv = b.idv; -> Seq Scan on tidv a -> Index Only Scan using tidv_idv_idx on tidv b Index Cond: (idv = a.idv) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) rollback; @@ -2826,7 +2826,7 @@ SELECT qq, unique1 -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: COALESCE(b.q2, (-1)::bigint) -> Seq Scan on int8_tbl b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT qq, unique1 @@ -2903,7 +2903,7 @@ where nt3.id = 1 and ss2.b3; -> Hash -> Seq Scan on nt3 Filter: (id = 1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select nt3.id @@ -2956,7 +2956,7 @@ order by 1,2; -> Materialize -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on int8_tbl t3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) -- @@ -3070,7 +3070,7 @@ where q1 = thousand or q2 = thousand; -> Seq Scan on int4_tbl -> Function Scan on q1 -> Function Scan on q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain (costs off) @@ -3094,7 +3094,7 @@ where thousand = (q1 + q2); -> Hash -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on int4_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) -- @@ -3121,7 +3121,7 @@ where thousand = a.q1 and tenthous = b.q1 and a.q2 = 1 and b.q2 = 2; Filter: (q2 = 1) -> Index Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand = a.q1) AND (tenthous = b.q1)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) reset enable_nestloop; @@ -3218,7 +3218,7 @@ select * from tenk1 a join tenk1 b on -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on tenk1 a Filter: ((unique1 = 1) OR (unique2 = 3)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain (costs off) @@ -3235,7 +3235,7 @@ select * from tenk1 a join tenk1 b on -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on tenk1 a Filter: ((unique1 = 1) OR (unique2 = 3)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain (costs off) @@ -3253,7 +3253,7 @@ select * from tenk1 a join tenk1 b on -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on tenk1 a Filter: ((unique1 = 1) OR (unique2 = 3) OR (unique2 = 7)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -3283,7 +3283,7 @@ where t1.unique1 = 1; -> Hash -> Index Scan using tenk1_unique1 on tenk1 t1 Index Cond: (unique1 = 1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) explain (costs off) @@ -3311,7 +3311,7 @@ where t1.unique1 = 1; -> Hash -> Index Scan using tenk1_unique1 on tenk1 t1 Index Cond: (unique1 = 1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) explain (costs off) @@ -3345,7 +3345,7 @@ select count(*) from -> Hash -> Broadcast Motion 3:3 (slice2; segments: 3) -> Seq Scan on int4_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) select count(*) from @@ -3397,7 +3397,7 @@ select b.unique1 from -> Seq Scan on int4_tbl i1 -> Hash -> Seq Scan on int4_tbl i2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) select b.unique1 from @@ -3436,7 +3436,7 @@ order by fault; -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: int8_tbl.q2 -> Seq Scan on int8_tbl - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select * from @@ -3496,7 +3496,7 @@ select q1, unique2, thousand, hundred -> Seq Scan on tenk1 b -> Hash -> Seq Scan on int8_tbl a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select q1, unique2, thousand, hundred @@ -3521,7 +3521,7 @@ select f1, unique2, case when unique2 is null then f1 else 0 end -> Seq Scan on tenk1 b -> Hash -> Seq Scan on int4_tbl a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select f1, unique2, case when unique2 is null then f1 else 0 end @@ -3557,7 +3557,7 @@ select a.unique1, b.unique1, c.unique1, coalesce(b.twothousand, a.twothousand) -> Broadcast Motion 3:3 (slice2; segments: 3) -> Index Scan using tenk1_unique2 on tenk1 c Index Cond: (unique2 = 44) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select a.unique1, b.unique1, c.unique1, coalesce(b.twothousand, a.twothousand) @@ -3606,7 +3606,7 @@ using (join_key); Output: "*VALUES*".column1 -> Values Scan on "*VALUES*" Output: "*VALUES*".column1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (23 rows) @@ -3686,7 +3686,7 @@ select t1.* from Output: i4.f1 -> Seq Scan on public.int4_tbl i4 Output: i4.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (43 rows) select t1.* from @@ -3768,7 +3768,7 @@ select t1.* from Output: i4.f1 -> Seq Scan on public.int4_tbl i4 Output: i4.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (51 rows) select t1.* from @@ -3850,7 +3850,7 @@ select t1.* from Output: i4.f1 -> Seq Scan on public.int4_tbl i4 Output: i4.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (50 rows) select t1.* from @@ -3910,7 +3910,7 @@ select * from -> Seq Scan on public.text_tbl t1 Output: t1.f1 Filter: (t1.f1 = 'doh!'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select * from @@ -4154,7 +4154,7 @@ select * from -> Redistribute Motion 1:3 (slice3; segments: 1) Hash Key: (1) -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select * from @@ -4184,7 +4184,7 @@ explain (costs off) -> Hash -> Seq Scan on int4_tbl a Filter: (f1 = 0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) explain (costs off) @@ -4203,7 +4203,7 @@ explain (costs off) Hash Key: b.unique2 -> Index Scan using tenk1_unique2 on tenk1 b Index Cond: (unique2 = 42) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- @@ -4244,7 +4244,7 @@ explain (verbose, costs off) Hash Key: COALESCE(b.q1, 1::bigint) -> Seq Scan on public.int8_tbl b Output: b.q1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: enable_hashjoin=off, enable_mergejoin=on, enable_nestloop=off (26 rows) @@ -4284,7 +4284,7 @@ explain (costs off) SELECT a.* FROM a LEFT JOIN b ON a.b_id = b.id; ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) explain (costs off) SELECT b.* FROM b LEFT JOIN c ON b.c_id = c.id; @@ -4292,7 +4292,7 @@ explain (costs off) SELECT b.* FROM b LEFT JOIN c ON b.c_id = c.id; ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) explain (costs off) @@ -4302,7 +4302,7 @@ explain (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on a - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) -- check optimization of outer join within another special join @@ -4318,7 +4318,7 @@ select id from a where id in ( -> Seq Scan on a -> Hash -> Seq Scan on b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) rollback; @@ -4341,7 +4341,7 @@ explain (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on parent p - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) -- this case is not @@ -4367,7 +4367,7 @@ explain (costs off) -> Seq Scan on parent p -> Hash -> Seq Scan on child c - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- check for a 9.0rc1 bug: join removal breaks pseudoconstant qual handling @@ -4386,7 +4386,7 @@ select p.* from ----------------------------------- Result One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) select p.* from @@ -4404,7 +4404,7 @@ select p.* from ----------------------------------- Result One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) -- bug 5255: this is not optimizable by join removal @@ -4460,7 +4460,7 @@ select t1.* from ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on uniquetbl t1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) explain (costs off) @@ -4490,7 +4490,7 @@ where ss.stringu2 !~* ss.case1; -> Hash -> Broadcast Motion 3:3 (slice2; segments: 3) -> Seq Scan on text_tbl t0 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select t0.* @@ -4549,7 +4549,7 @@ explain (costs off) -> Seq Scan on tenk1 a -> Hash -> Seq Scan on int4_tbl b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select unique2, x.* @@ -4570,7 +4570,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -4584,7 +4584,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select unique2, x.* @@ -4609,7 +4609,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- check scoping of lateral versus parent references @@ -4651,7 +4651,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -4664,7 +4664,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- don't need the explicit LATERAL keyword for functions @@ -4678,7 +4678,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- lateral with UNION ALL subselect @@ -4697,7 +4697,7 @@ explain (costs off) Filter: (g.g = q1) -> Seq Scan on int8_tbl b Filter: (g.g = q2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select * from generate_series(100,200) g, @@ -4730,7 +4730,7 @@ explain (costs off) -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: b.unique2 -> Seq Scan on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select count(*) from tenk1 a, @@ -5069,7 +5069,7 @@ select * from -> Seq Scan on public.int8_tbl b Output: b.q1, b.q2, a.q2 Filter: (a.q2 = b.q1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (14 rows) @@ -5108,7 +5108,7 @@ select * from -> Seq Scan on public.int8_tbl b Output: b.q1, b.q2, COALESCE(a.q2, 42::bigint) Filter: (a.q2 = b.q1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (14 rows) @@ -5147,7 +5147,7 @@ select * from int4_tbl i left join Output: j.f1 -> Seq Scan on public.int2_tbl j Output: j.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (13 rows) @@ -5176,7 +5176,7 @@ select * from int4_tbl i left join -> Seq Scan on public.int2_tbl j Output: j.f1, COALESCE(i.*) Filter: (i.f1 = j.f1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (11 rows) @@ -5218,7 +5218,7 @@ select * from int4_tbl a, Output: b.f1 -> Seq Scan on public.int4_tbl b Output: b.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (22 rows) @@ -5290,7 +5290,7 @@ select * from Output: c.q1 -> Seq Scan on public.int8_tbl c Output: c.q1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) select * from @@ -5393,7 +5393,7 @@ select * from Output: ((COALESCE((COALESCE(b.q2, 42::bigint)), d.q2))) -> Result Output: (COALESCE((COALESCE(b.q2, 42::bigint)), d.q2)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (38 rows) @@ -5459,7 +5459,7 @@ select c.*,a.*,ss1.q1,ss2.q1,ss3.* from Output: i.f1 -> Seq Scan on public.int4_tbl i Output: i.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (50 rows) @@ -5487,7 +5487,7 @@ select * from Output: (3) -> Result Output: 3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (17 rows) diff --git a/src/test/regress/expected/join_gp.out b/src/test/regress/expected/join_gp.out index d8a4db9c8b24857027e10bce3767ffcdc0aca995..168ef2622041751a81f6694a913eac73c8c92685 100644 --- a/src/test/regress/expected/join_gp.out +++ b/src/test/regress/expected/join_gp.out @@ -165,7 +165,7 @@ explain select * from t1,t2 where t1.x = 100 and t1.x = t2.y and t1.x <= t2.x; -> Seq Scan on t2 (cost=0.00..4.75 rows=1 width=12) Filter: ((100 <= x) AND (y <= x) AND (y = 100)) Settings: optimizer=off; optimizer_segments=2 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (11 rows) reset optimizer_segments; @@ -321,7 +321,7 @@ explain select a from foo where a<1 and a>1 and not exists (select c from bar wh ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) select a from foo where a<1 and a>1 and not exists (select c from bar where c=a); @@ -506,7 +506,7 @@ explain (costs off) select X.a from input_table X full join (select a from input -> Sort Sort Key: input_table.a -> Seq Scan on input_table - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- Cleanup @@ -537,7 +537,7 @@ explain select * from t5370 a , t5370_2 b where a.name=b.name; -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..33.00 rows=334 width=7) Hash Key: b.name -> Seq Scan on t5370_2 b (cost=0.00..13.00 rows=334 width=7) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) drop table t5370; @@ -566,7 +566,7 @@ explain (costs off) select * from t6215 a full join t6215 b on true; -> Seq Scan on t6215 a -> Materialize -> Seq Scan on t6215 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) select * from t6215 a full join t6215 b on true; @@ -629,7 +629,7 @@ explain (costs off) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t -> Hash -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on t3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t1.b = t3.b) where (t2.a IS NULL OR (t1.c = t3.c)); @@ -652,7 +652,7 @@ explain (costs off) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t -> Seq Scan on t2 -> Hash -> Seq Scan on t3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t1.b = t3.b) where (t2.a = t3.a); @@ -676,7 +676,7 @@ explain (costs off) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t -> Hash -> Broadcast Motion 3:3 (slice1; segments: 3) -> Seq Scan on t3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t1.b = t3.b) where (t2.a is distinct from t3.a); @@ -701,7 +701,7 @@ explain select * from t3 join (select t1.a t1a, t1.b t1b, t1.c t1c, t2.a t2a, t2 -> Seq Scan on t1 (cost=0.00..13.00 rows=334 width=12) -> Hash (cost=2.02..2.02 rows=1 width=12) -> Seq Scan on t3 (cost=0.00..2.02 rows=1 width=12) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select * from t3 join (select t1.a t1a, t1.b t1b, t1.c t1c, t2.a t2a, t2.b t2b, t2.c t2c from t1 left join t2 on (t1.a = t2.a)) t on (t1a = t3.a) WHERE (t2a IS NULL OR (t1c = t3.a)); @@ -743,7 +743,7 @@ explain select * from (select t1.a t1a, t1.b t1b, t2.a t2a, t2.b t2b from t1 lef -> Hash (cost=2.10..2.10 rows=2 width=12) -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..2.10 rows=2 width=12) -> Seq Scan on t3 t3_1 (cost=0.00..2.02 rows=1 width=12) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (27 rows) select * from (select t1.a t1a, t1.b t1b, t2.a t2a, t2.b t2b from t1 left join t2 on t1.a = t2.a) tt @@ -768,7 +768,7 @@ drop table t1, t2, t3; -- for further improvement (e.g. referring subplan code to do broadcast -- for base rel if needed, which needs much effort and does not seem to -- be deserved given we will probably refactor related code for the lateral --- support in the near future). For the query and guc settings below, legacy +-- support in the near future). For the query and guc settings below, Postgres -- planner can not generate a plan. set enable_nestloop = 1; set enable_material = 0; @@ -785,7 +785,7 @@ explain select tenk1.unique2 >= 0 from tenk1 left join tenk2 on true limit 1; -> Materialize (cost=0.16..18479.11 rows=10000 width=0) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.16..18329.11 rows=10000 width=0) -> Index Only Scan using tenk2_unique2 on tenk2 (cost=0.16..17929.11 rows=3334 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select tenk1.unique2 >= 0 from tenk1 left join tenk2 on true limit 1; diff --git a/src/test/regress/expected/join_gp_optimizer.out b/src/test/regress/expected/join_gp_optimizer.out index ad77d40e8ad848f517a892f8c6e88877ec9e5f2e..2e07b7d56af9bf9fbc88c5802dfa493044787651 100644 --- a/src/test/regress/expected/join_gp_optimizer.out +++ b/src/test/regress/expected/join_gp_optimizer.out @@ -819,7 +819,7 @@ drop table t1, t2, t3; -- for further improvement (e.g. referring subplan code to do broadcast -- for base rel if needed, which needs much effort and does not seem to -- be deserved given we will probably refactor related code for the lateral --- support in the near future). For the query and guc settings below, legacy +-- support in the near future). For the query and guc settings below, Postgres -- planner can not generate a plan. set enable_nestloop = 1; set enable_material = 0; diff --git a/src/test/regress/expected/join_optimizer.out b/src/test/regress/expected/join_optimizer.out index 60c65426f1f909f0f64fb06663ddc4798a466001..60ca2a198eebdb69be01fa9d366fc4ce58dd22d8 100755 --- a/src/test/regress/expected/join_optimizer.out +++ b/src/test/regress/expected/join_optimizer.out @@ -2177,7 +2177,7 @@ select aa, bb, unique1, unique1 ----------------------------------- Result One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) select aa, bb, unique1, unique1 @@ -3560,7 +3560,7 @@ left join unnest(v1ys) as u1(u1y) on u1y = v2y; -> Function Scan on unnest u1 -> Hash -> Values Scan on "*VALUES*_1" - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from @@ -4174,7 +4174,7 @@ where ss1.c2 = 0; Output: (i41.f1), (i8.q1), (i8.q2), (i42.f1), (i43.f1), ((42)) -> Seq Scan on public.text_tbl Output: i41.f1, i8.q1, i8.q2, i42.f1, i43.f1, (42) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=on (42 rows) @@ -4706,7 +4706,7 @@ explain (costs off) -> Seq Scan on tenk1 a -> Hash -> Seq Scan on int4_tbl b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select unique2, x.* @@ -4727,7 +4727,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -4741,7 +4741,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select unique2, x.* @@ -4766,7 +4766,7 @@ explain (costs off) -> Seq Scan on tenk1 -> Hash -> Seq Scan on int4_tbl x - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- check scoping of lateral versus parent references @@ -4808,7 +4808,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -4821,7 +4821,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- don't need the explicit LATERAL keyword for functions @@ -4835,7 +4835,7 @@ explain (costs off) -> Nested Loop -> Seq Scan on tenk1 a -> Function Scan on generate_series g - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- lateral with UNION ALL subselect @@ -4854,7 +4854,7 @@ explain (costs off) Filter: (g.g = q1) -> Seq Scan on int8_tbl b Filter: (g.g = q2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select * from generate_series(100,200) g, @@ -4887,7 +4887,7 @@ explain (costs off) -> Redistribute Motion 3:3 (slice2; segments: 3) Hash Key: b.unique2 -> Seq Scan on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select count(*) from tenk1 a, @@ -5226,7 +5226,7 @@ select * from -> Seq Scan on public.int8_tbl b Output: b.q1, b.q2, a.q2 Filter: (a.q2 = b.q1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (14 rows) @@ -5265,7 +5265,7 @@ select * from -> Seq Scan on public.int8_tbl b Output: b.q1, b.q2, COALESCE(a.q2, 42::bigint) Filter: (a.q2 = b.q1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (14 rows) @@ -5304,7 +5304,7 @@ select * from int4_tbl i left join Output: j.f1 -> Seq Scan on public.int2_tbl j Output: j.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (13 rows) @@ -5333,7 +5333,7 @@ select * from int4_tbl i left join -> Seq Scan on public.int2_tbl j Output: j.f1, COALESCE(i.*) Filter: (i.f1 = j.f1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (11 rows) @@ -5375,7 +5375,7 @@ select * from int4_tbl a, Output: b.f1 -> Seq Scan on public.int4_tbl b Output: b.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (22 rows) @@ -5447,7 +5447,7 @@ select * from Output: c.q1 -> Seq Scan on public.int8_tbl c Output: c.q1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (24 rows) @@ -5551,7 +5551,7 @@ select * from Output: ((COALESCE((COALESCE(b.q2, 42::bigint)), d.q2))) -> Result Output: (COALESCE((COALESCE(b.q2, 42::bigint)), d.q2)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (38 rows) @@ -5617,7 +5617,7 @@ select c.*,a.*,ss1.q1,ss2.q1,ss3.* from Output: i.f1 -> Seq Scan on public.int4_tbl i Output: i.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (50 rows) @@ -5645,7 +5645,7 @@ select * from Output: (3) -> Result Output: 3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) -- check handling of nested appendrels inside LATERAL @@ -5701,7 +5701,7 @@ select * from Output: tenk1.unique1, tenk1.unique2 -> Seq Scan on public.tenk1 Output: tenk1.unique1, tenk1.unique2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) select * from diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out index d98d5c304b710ef83be1803c3862702f5ea0d82b..31ba66c6cdac7a6690fa77af9196d3a9b9325387 100644 --- a/src/test/regress/expected/matview.out +++ b/src/test/regress/expected/matview.out @@ -30,7 +30,7 @@ HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sur -> HashAggregate Group Key: t.type -> Seq Scan on t - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) CREATE MATERIALIZED VIEW tm AS SELECT type, sum(amt) AS totamt FROM t GROUP BY type WITH NO DATA; @@ -75,7 +75,7 @@ HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sur -> HashAggregate Group Key: t.type -> Seq Scan on t - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) CREATE MATERIALIZED VIEW tvm AS SELECT * FROM tv ORDER BY type; @@ -111,7 +111,7 @@ HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sur -> HashAggregate Group Key: t.type -> Seq Scan on t - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) CREATE MATERIALIZED VIEW tvvm AS SELECT * FROM tvv; @@ -242,7 +242,7 @@ EXPLAIN (costs off) QUERY PLAN ----------------------------------- Seq Scan on tmm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (2 rows) EXPLAIN (costs off) @@ -251,7 +251,7 @@ EXPLAIN (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on tvmm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN (costs off) @@ -260,7 +260,7 @@ EXPLAIN (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on tvvm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) SELECT * FROM tmm; @@ -292,7 +292,7 @@ EXPLAIN (costs off) QUERY PLAN ----------------------------------- Seq Scan on tmm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (2 rows) EXPLAIN (costs off) @@ -301,7 +301,7 @@ EXPLAIN (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on tvmm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN (costs off) @@ -310,7 +310,7 @@ EXPLAIN (costs off) ------------------------------------------ Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on tvvm - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) SELECT * FROM tmm; diff --git a/src/test/regress/expected/notin.out b/src/test/regress/expected/notin.out index d94310d33c2c87951ec446b79ac91077718af062..bdb5fa72f81ed224fd72eacf40a012b7bdb24407 100644 --- a/src/test/regress/expected/notin.out +++ b/src/test/regress/expected/notin.out @@ -85,7 +85,7 @@ explain select c1 from t1 where c1 not in -> Hash (cost=2.25..2.25 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.25 rows=5 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select c1 from t1 where c1 not in @@ -119,7 +119,7 @@ explain select c1 from t1 where c1 not in -> Hash (cost=2.15..2.15 rows=3 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) select c1 from t1 where c1 not in @@ -164,7 +164,7 @@ explain select c1 from t1 where c1 not in -> Hash (cost=1.10..1.10 rows=2 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.10 rows=2 width=4) -> Seq Scan on t4 (cost=0.00..1.02 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (18 rows) select c1 from t1 where c1 not in @@ -201,7 +201,7 @@ explain select c1 from t1, -> Hash (cost=2.15..2.15 rows=3 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) select c1 from t1, @@ -236,7 +236,7 @@ explain select c1 from t1, -> Hash (cost=2.15..2.15 rows=3 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select c1 from t1, @@ -263,7 +263,7 @@ explain select c1 from t1 where c1 not in -> Hash (cost=2.25..2.25 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.25 rows=5 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select c1 from t1 where c1 not in @@ -292,7 +292,7 @@ explain select c1 from t1 where c1 > 6 and c1 not in -> Hash (cost=2.25..2.25 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.25 rows=5 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select c1 from t1 where c1 > 6 and c1 not in @@ -322,7 +322,7 @@ explain select c1 from t1,t2 where c1 not in -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) -> Hash (cost=3.05..3.05 rows=2 width=4) -> Seq Scan on t2 (cost=0.00..3.05 rows=2 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select c1 from t1,t2 where c1 not in @@ -412,7 +412,7 @@ explain select x,y from l1 where (x,y) not in Group Key: l1_1.y -> Seq Scan on l1 l1_1 (cost=0.00..3.12 rows=2 width=8) Filter: y < 4 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) select x,y from l1 where (x,y) not in @@ -442,7 +442,7 @@ explain select * from g1 where (a,b,c) not in -> Materialize (cost=3.53..3.83 rows=10 width=12) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.50 rows=10 width=12) -> Seq Scan on l1 (cost=0.00..3.10 rows=4 width=12) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select * from g1 where (a,b,c) not in @@ -478,7 +478,7 @@ explain select c1 from t1, t2 where c1 not in -> Hash (cost=2.05..2.05 rows=2 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (15 rows) select c1 from t1, t2 where c1 not in @@ -546,7 +546,7 @@ explain select c1 from t1 where c1 not in -> Seq Scan on t2 (cost=0.00..2.08 rows=1 width=4) Filter: c2 > 2 AND c2 > 3 Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) select c1 from t1 where c1 not in @@ -662,7 +662,7 @@ explain select (case when c1%2 = 0 -> Hash (cost=2.10..2.10 rows=2 width=4) -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..2.10 rows=2 width=4) -> Seq Scan on t4 (cost=0.00..2.02 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) select (case when c1%2 = 0 @@ -695,7 +695,7 @@ explain select c1 from t1 where not c1 >= some (select c2 from t2); -> Materialize (cost=2.27..2.42 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.25 rows=5 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select c1 from t1 where not c1 >= some (select c2 from t2); @@ -716,7 +716,7 @@ explain select c2 from t2 where not c2 < all (select c2 from t2); -> Materialize (cost=0.00..3.33 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.25 rows=5 width=4) -> Seq Scan on t2 t2_1 (cost=0.00..3.05 rows=2 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select c2 from t2 where not c2 < all (select c2 from t2); @@ -742,7 +742,7 @@ explain select c3 from t3 where not c3 <> any (select c4 from t4); -> Materialize (cost=1.11..1.17 rows=2 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.10 rows=2 width=4) -> Seq Scan on t4 (cost=0.00..1.02 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select c3 from t3 where not c3 <> any (select c4 from t4); @@ -774,7 +774,7 @@ explain select c1 from t1 where c1 not in (select c2 from t2 order by c2 limit 3 Sort Key: t2.c2 -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (19 rows) select c1 from t1 where c1 not in (select c2 from t2 order by c2 limit 3) order by c1; @@ -804,7 +804,7 @@ explain select c1 from t1 where c1 =all (select c2 from t2 where c2 > -1 and c2 -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.12 rows=1 width=4) -> Seq Scan on t2 (cost=0.00..2.08 rows=1 width=4) Filter: c2 > (-1) AND c2 <= 1 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select c1 from t1 where c1 =all (select c2 from t2 where c2 > -1 and c2 <= 1); @@ -826,7 +826,7 @@ explain select c1 from t1 where c1 <>all (select c2 from t2); -> Hash (cost=2.25..2.25 rows=5 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.25 rows=5 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select c1 from t1 where c1 <>all (select c2 from t2); @@ -857,7 +857,7 @@ explain select c1 from t1 where c1 <=all (select c2 from t2 where c2 not in (sel -> Hash (cost=2.35..2.35 rows=7 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.35 rows=7 width=4) -> Seq Scan on t1n (cost=0.00..2.07 rows=3 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) select c1 from t1 where c1 <=all (select c2 from t2 where c2 not in (select c1n from t1n)); @@ -894,7 +894,7 @@ explain select c1 from t1 where not c1 =all (select c2 from t2 where not c2 >all -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (14 rows) select c1 from t1 where not c1 =all (select c2 from t2 where not c2 >all (select c3 from t3)); @@ -932,7 +932,7 @@ explain select c1 from t1 where not c1 <>all (select c1n from t1n where c1n Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.04 rows=1 width=4) -> Seq Scan on t3 (cost=0.00..2.04 rows=1 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (15 rows) select c1 from t1 where not c1 <>all (select c1n from t1n where c1n =all (select c2 from t2 where c2 = c1); -> Hash (cost=2.05..2.05 rows=2 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select c1 from t1 where not c1 >=all (select c2 from t2 where c2 = c1); @@ -978,7 +978,7 @@ explain select c1 from t1 where not exists (select c2 from t2 where c2 = c1); -> Hash (cost=2.05..2.05 rows=2 width=4) -> Seq Scan on t2 (cost=0.00..2.05 rows=2 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select c1 from t1 where not exists (select c2 from t2 where c2 = c1); @@ -1009,7 +1009,7 @@ explain select c1 from t1 where not exists (select c2 from t2 where c2 not in (s -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (15 rows) select c1 from t1 where not exists (select c2 from t2 where c2 not in (select c3 from t3) and c2 = c1); @@ -1049,7 +1049,7 @@ explain select c1 from t1 where not exists (select c2 from t2 where exists (sele -> Hash (cost=2.15..2.15 rows=3 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..2.15 rows=3 width=4) -> Seq Scan on t3 (cost=0.00..2.03 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select c1 from t1 where not exists (select c2 from t2 where exists (select c3 from t3) and c2 <>all (select c3 from t3) and c2 = c1); @@ -1105,7 +1105,7 @@ explain select c1 from t1 where c1 not in (select c2 from t2 where c2 > 4) and c -> Hash (cost=2.06..2.06 rows=1 width=4) -> Seq Scan on t2 (cost=0.00..2.06 rows=1 width=4) Filter: c2 > 4 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select c1 from t1 where c1 not in (select c2 from t2 where c2 > 4) and c1 is not null; @@ -1157,7 +1157,7 @@ explain select c1 from t1 where c1::absint not in -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.35 rows=7 width=4) -> Seq Scan on t1n (cost=0.00..3.07 rows=3 width=4) Planning time: 0.865 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select c1 from t1 where c1::absint not in diff --git a/src/test/regress/expected/notin_optimizer.out b/src/test/regress/expected/notin_optimizer.out index 2d1711125dbff1129cfa4ee91ac396149c393f2c..305912a41c7a17458ce0381c8433be87f0566709 100644 --- a/src/test/regress/expected/notin_optimizer.out +++ b/src/test/regress/expected/notin_optimizer.out @@ -421,7 +421,7 @@ explain select x,y from l1 where (x,y) not in Group Key: l1_1.y -> Seq Scan on l1 l1_1 (cost=0.00..3.12 rows=2 width=8) Filter: y < 4 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) select x,y from l1 where (x,y) not in @@ -451,7 +451,7 @@ explain select * from g1 where (a,b,c) not in -> Materialize (cost=3.53..3.83 rows=10 width=12) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.50 rows=10 width=12) -> Seq Scan on l1 (cost=0.00..3.10 rows=4 width=12) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (10 rows) select * from g1 where (a,b,c) not in diff --git a/src/test/regress/expected/olap_window_seq.out b/src/test/regress/expected/olap_window_seq.out index 84763bfac656237dec55c856dc526658e96a1a62..7be56861103dd6a59847bbd2e8a64069e730e6c6 100755 --- a/src/test/regress/expected/olap_window_seq.out +++ b/src/test/regress/expected/olap_window_seq.out @@ -7685,7 +7685,7 @@ explain select n from ( select row_number() over () from (values (0)) as t(x) ) -> WindowAgg (cost=0.00..0.01 rows=1 width=0) -> Values Scan on "*VALUES*" (cost=0.00..0.01 rows=1 width=0) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) -- Test for MPP-11645 @@ -7901,7 +7901,7 @@ explain select count(*) over (order by i), count(*) over (partition by i order b -> Sort (cost=7208.12..7402.87 rows=25967 width=8) Sort Key: i, j -> Seq Scan on redundant_sort_check (cost=0.00..879.00 rows=25967 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- End of MPP-13710 @@ -8174,7 +8174,7 @@ FROM foo; -> Sort (cost=3.27..3.29 rows=4 width=16) Sort Key: a, c, b, d -> Seq Scan on foo (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (25 rows) drop table foo; @@ -8205,7 +8205,7 @@ explain select k from ( select row_number() over()+2 as k from window_preds unio -> WindowAgg (cost=0.00..1.02 rows=1 width=0) -> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..1.01 rows=1 width=0) -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select k from ( select row_number() over()+2 as k from window_preds union all select row_number() over()+2 as k from window_preds) as t where k = 3; @@ -8230,7 +8230,7 @@ explain insert into window_preds select k from ( select row_number() over()+2 as -> WindowAgg (cost=0.00..1.02 rows=1 width=0) -> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..1.01 rows=1 width=0) -> Seq Scan on window_preds window_preds_2 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) insert into window_preds select k from ( select row_number() over()+2 as k from window_preds union all select row_number() over()+2 as k from window_preds) as t where k = 3; @@ -8255,7 +8255,7 @@ explain SELECT t.k FROM window_preds p1, window_preds p2, (SELECT ROW_NUMBER() O -> WindowAgg (cost=0.00..1.02 rows=1 width=0) -> Gather Motion 3:1 (slice4; segments: 3) (cost=0.00..1.01 rows=1 width=0) -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) SELECT t.k FROM window_preds p1, window_preds p2, (SELECT ROW_NUMBER() OVER() AS k FROM window_preds union all SELECT ROW_NUMBER() OVER() AS k FROM window_preds) AS t WHERE t.k = 1 limit 1; @@ -8287,7 +8287,7 @@ explain with CTE as (select i, row_number() over (partition by j) j from window_ -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..1.03 rows=1 width=8) Hash Key: window_preds_1.j -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) insert into window_preds with CTE as (select i, row_number() over (partition by j) j from window_preds union all select i, row_number() over (partition by j) from window_preds) select * from cte where j = 1; @@ -8303,7 +8303,7 @@ explain select k from ( select k from (select row_number() over() as k from wind -> Seq Scan on window_preds (cost=0.00..1.01 rows=1 width=0) -> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..1.04 rows=1 width=8) -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select k from ( select k from (select row_number() over() as k from window_preds) f union all select 1::bigint as k from window_preds) as t where k = 1; @@ -8349,7 +8349,7 @@ explain insert into window_preds select k from ( select k from (select row_numbe -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=0) -> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..1.04 rows=1 width=8) -> Seq Scan on window_preds window_preds_2 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) insert into window_preds select k from ( select k from (select row_number() over() as k from window_preds) f union all select 1::bigint as k from window_preds) as t where k = 1; @@ -8376,7 +8376,7 @@ explain with CTE as (select i, row_number() over (partition by j) j from window_ -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..1.03 rows=1 width=8) Hash Key: window_preds_1.j -> Seq Scan on window_preds window_preds_1 (cost=0.00..1.01 rows=1 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) insert into window_preds with CTE as (select i, row_number() over (partition by j) j from window_preds union all select i, row_number() over (partition by j) from window_preds) select * from cte where i = 1; diff --git a/src/test/regress/expected/partial_table.out b/src/test/regress/expected/partial_table.out index 051384b590c1549cb8fa685f9481fefcee729299..c0aacb0fbe52bbd0d19c5171ab8807415897c4f4 100644 --- a/src/test/regress/expected/partial_table.out +++ b/src/test/regress/expected/partial_table.out @@ -309,7 +309,7 @@ begin; (slice2) Executor memory: 66K bytes avg x 2 workers, 66K bytes max (seg0). (slice3) Executor memory: 3244K bytes avg x 2 workers, 4270K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Execution time: 9.956 ms (26 rows) @@ -341,7 +341,7 @@ begin; (slice2) Executor memory: 66K bytes avg x 2 workers, 66K bytes max (seg0). (slice3) Executor memory: 3232K bytes avg x 2 workers, 4258K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Execution time: 3.839 ms (26 rows) @@ -413,7 +413,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice3) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). (slice4) Executor memory: 129K bytes avg x 3 workers, 129K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 14.189 ms (30 rows) @@ -438,7 +438,7 @@ begin; -> Broadcast Motion 1:2 (slice1; segments: 1) (cost=0.00..1.04 rows=3 width=22) -> Seq Scan on d1 b (cost=0.00..1.00 rows=1 width=22) Planning time: 0.915 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) update d2 a set c3=b.c3 from d1 b returning *; @@ -458,7 +458,7 @@ begin; -> Seq Scan on d1 a (cost=0.00..1.00 rows=1 width=22) -> Seq Scan on d2 b (cost=0.00..1.00 rows=1 width=22) Planning time: 0.799 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) update d1 a set c3=b.c3 from d2 b returning *; @@ -780,7 +780,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 6.541 ms (13 rows) @@ -796,7 +796,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes avg x 3 workers, 78K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.148 ms (11 rows) @@ -812,7 +812,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.205 ms (11 rows) @@ -828,7 +828,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.027 ms (11 rows) @@ -845,7 +845,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.919 ms (13 rows) @@ -862,7 +862,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.182 ms (14 rows) @@ -878,7 +878,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.165 ms (11 rows) @@ -894,7 +894,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.223 ms (11 rows) @@ -910,7 +910,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.053 ms (11 rows) @@ -926,7 +926,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.028 ms (11 rows) @@ -942,7 +942,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.135 ms (11 rows) @@ -958,7 +958,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.070 ms (11 rows) @@ -975,7 +975,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 6.008 ms (13 rows) @@ -992,7 +992,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.638 ms (14 rows) @@ -1008,7 +1008,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.094 ms (11 rows) @@ -1024,7 +1024,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.085 ms (11 rows) @@ -1041,7 +1041,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.583 ms (13 rows) @@ -1058,7 +1058,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.447 ms (13 rows) @@ -1077,7 +1077,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.039 ms (13 rows) @@ -1096,7 +1096,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.340 ms (14 rows) @@ -1112,7 +1112,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.370 ms (11 rows) @@ -1128,7 +1128,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.071 ms (11 rows) @@ -1146,7 +1146,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.588 ms (13 rows) @@ -1165,7 +1165,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.159 ms (14 rows) @@ -1185,7 +1185,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.018 ms (16 rows) @@ -1204,7 +1204,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.289 ms (14 rows) @@ -1220,7 +1220,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.036 ms (11 rows) @@ -1236,7 +1236,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.005 ms (11 rows) @@ -1256,7 +1256,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.589 ms (16 rows) @@ -1276,7 +1276,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.643 ms (16 rows) @@ -1294,7 +1294,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.490 ms (13 rows) @@ -1313,7 +1313,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.184 ms (14 rows) @@ -1329,7 +1329,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.169 ms (11 rows) @@ -1345,7 +1345,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.995 ms (11 rows) @@ -1363,7 +1363,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.364 ms (13 rows) @@ -1381,7 +1381,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.899 ms (13 rows) @@ -1400,7 +1400,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.164 ms (13 rows) @@ -1419,7 +1419,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4170K bytes avg x 3 workers, 4170K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.722 ms (14 rows) @@ -1439,7 +1439,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.343 ms (16 rows) @@ -1458,7 +1458,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.357 ms (14 rows) @@ -1476,7 +1476,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.651 ms (13 rows) @@ -1495,7 +1495,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.546 ms (14 rows) @@ -1511,7 +1511,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.190 ms (11 rows) @@ -1527,7 +1527,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.001 ms (11 rows) @@ -1543,7 +1543,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.951 ms (11 rows) @@ -1559,7 +1559,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.969 ms (11 rows) @@ -1575,7 +1575,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.075 ms (11 rows) @@ -1591,7 +1591,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.028 ms (11 rows) @@ -1609,7 +1609,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.647 ms (13 rows) @@ -1628,7 +1628,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.610 ms (14 rows) @@ -1648,7 +1648,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.470 ms (16 rows) @@ -1668,7 +1668,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.332 ms (16 rows) @@ -1686,7 +1686,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.497 ms (13 rows) @@ -1704,7 +1704,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.561 ms (13 rows) @@ -1727,7 +1727,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 12.201 ms (17 rows) @@ -1743,7 +1743,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes avg x 3 workers, 78K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.957 ms (11 rows) @@ -1759,7 +1759,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.908 ms (11 rows) @@ -1775,7 +1775,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.960 ms (11 rows) @@ -1797,7 +1797,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.328 ms (17 rows) @@ -1816,7 +1816,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.556 ms (14 rows) @@ -1832,7 +1832,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.972 ms (11 rows) @@ -1848,7 +1848,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.972 ms (11 rows) @@ -1864,7 +1864,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.893 ms (11 rows) @@ -1880,7 +1880,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.869 ms (11 rows) @@ -1896,7 +1896,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.087 ms (11 rows) @@ -1912,7 +1912,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.045 ms (11 rows) @@ -1934,7 +1934,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.302 ms (17 rows) @@ -1953,7 +1953,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.654 ms (14 rows) @@ -1969,7 +1969,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.075 ms (11 rows) @@ -1985,7 +1985,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.943 ms (11 rows) @@ -2007,7 +2007,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.498 ms (17 rows) @@ -2029,7 +2029,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.819 ms (17 rows) @@ -2047,7 +2047,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.543 ms (13 rows) @@ -2063,7 +2063,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes avg x 3 workers, 78K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.907 ms (11 rows) @@ -2079,7 +2079,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.952 ms (11 rows) @@ -2095,7 +2095,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.982 ms (11 rows) @@ -2112,7 +2112,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.448 ms (13 rows) @@ -2129,7 +2129,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.552 ms (14 rows) @@ -2149,7 +2149,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.561 ms (16 rows) @@ -2169,7 +2169,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.434 ms (16 rows) @@ -2185,7 +2185,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.985 ms (11 rows) @@ -2201,7 +2201,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.906 ms (11 rows) @@ -2221,7 +2221,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.536 ms (16 rows) @@ -2241,7 +2241,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.429 ms (16 rows) @@ -2258,7 +2258,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.601 ms (13 rows) @@ -2275,7 +2275,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.023 ms (14 rows) @@ -2291,7 +2291,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.015 ms (11 rows) @@ -2307,7 +2307,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.979 ms (11 rows) @@ -2324,7 +2324,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.549 ms (13 rows) @@ -2341,7 +2341,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.448 ms (13 rows) @@ -2360,7 +2360,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.737 ms (13 rows) @@ -2379,7 +2379,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.268 ms (14 rows) @@ -2395,7 +2395,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.996 ms (11 rows) @@ -2411,7 +2411,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.024 ms (11 rows) @@ -2429,7 +2429,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.685 ms (13 rows) @@ -2448,7 +2448,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.813 ms (14 rows) @@ -2468,7 +2468,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.531 ms (16 rows) @@ -2488,7 +2488,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.583 ms (16 rows) @@ -2504,7 +2504,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.013 ms (11 rows) @@ -2520,7 +2520,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.973 ms (11 rows) @@ -2540,7 +2540,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.479 ms (16 rows) @@ -2560,7 +2560,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.539 ms (16 rows) @@ -2578,7 +2578,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.531 ms (13 rows) @@ -2597,7 +2597,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.228 ms (14 rows) @@ -2613,7 +2613,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.921 ms (11 rows) @@ -2629,7 +2629,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.033 ms (11 rows) @@ -2647,7 +2647,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.668 ms (13 rows) @@ -2665,7 +2665,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.610 ms (13 rows) @@ -2688,7 +2688,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.593 ms (17 rows) @@ -2707,7 +2707,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.922 ms (14 rows) @@ -2727,7 +2727,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.487 ms (16 rows) @@ -2746,7 +2746,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.554 ms (14 rows) @@ -2768,7 +2768,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.554 ms (17 rows) @@ -2787,7 +2787,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.969 ms (14 rows) @@ -2807,7 +2807,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.870 ms (16 rows) @@ -2827,7 +2827,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.182 ms (16 rows) @@ -2843,7 +2843,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.074 ms (11 rows) @@ -2859,7 +2859,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.981 ms (11 rows) @@ -2879,7 +2879,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.081 ms (16 rows) @@ -2899,7 +2899,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.325 ms (16 rows) @@ -2921,7 +2921,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 6.261 ms (17 rows) @@ -2940,7 +2940,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.018 ms (14 rows) @@ -2960,7 +2960,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.591 ms (16 rows) @@ -2980,7 +2980,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 2.802 ms (16 rows) @@ -3002,7 +3002,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.749 ms (17 rows) @@ -3024,7 +3024,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.359 ms (17 rows) @@ -3047,7 +3047,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.784 ms (17 rows) @@ -3063,7 +3063,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes avg x 3 workers, 78K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.954 ms (11 rows) @@ -3079,7 +3079,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.063 ms (11 rows) @@ -3095,7 +3095,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.968 ms (11 rows) @@ -3117,7 +3117,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 6.142 ms (17 rows) @@ -3136,7 +3136,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.862 ms (14 rows) @@ -3156,7 +3156,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.285 ms (16 rows) @@ -3176,7 +3176,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.063 ms (16 rows) @@ -3192,7 +3192,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.946 ms (11 rows) @@ -3208,7 +3208,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 78K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.883 ms (11 rows) @@ -3228,7 +3228,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.353 ms (16 rows) @@ -3248,7 +3248,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 50K bytes avg x 3 workers, 50K bytes max (seg0). (slice2) Executor memory: 66K bytes (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 3.353 ms (16 rows) @@ -3270,7 +3270,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 5.253 ms (17 rows) @@ -3289,7 +3289,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice1) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice2) Executor memory: 4182K bytes avg x 3 workers, 4182K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.098 ms (14 rows) @@ -3305,7 +3305,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 1.022 ms (11 rows) @@ -3321,7 +3321,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice0) Executor memory: 386K bytes. (slice1) Executor memory: 98K bytes avg x 3 workers, 98K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 0.923 ms (11 rows) @@ -3343,7 +3343,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 6.083 ms (17 rows) @@ -3365,7 +3365,7 @@ select gp_debug_reset_create_table_default_numsegments(); (slice2) Executor memory: 66K bytes avg x 3 workers, 66K bytes max (seg0). (slice3) Executor memory: 4174K bytes avg x 3 workers, 4174K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Total runtime: 4.955 ms (17 rows) diff --git a/src/test/regress/expected/partition.out b/src/test/regress/expected/partition.out index 3264ea6bf1d31c2961e66c917aeb543b7dc07ade..218ad3541b0e860b5d8d67bc36c77acc00ef5626 100755 --- a/src/test/regress/expected/partition.out +++ b/src/test/regress/expected/partition.out @@ -6887,7 +6887,7 @@ explain select foo_p.b, foo_p.t from foo_p left outer join bar on foo_p.a = bar. Filter: t IS NOT NULL AND a = ('{1}'::integer[])[1] -> Seq Scan on foo_p_1_prt_6 (cost=0.00..5.50 rows=1 width=34) Filter: t IS NOT NULL AND a = ('{1}'::integer[])[1] - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) reset optimizer_segments; diff --git a/src/test/regress/expected/partition1.out b/src/test/regress/expected/partition1.out index add7d50ed1e4cd12460b50fd4cd37fca66b14958..a2b1b8e50674e3a21e739206c07110808cb6038b 100644 --- a/src/test/regress/expected/partition1.out +++ b/src/test/regress/expected/partition1.out @@ -1589,7 +1589,7 @@ ERROR: table "b" does not exist -- MPP-3988: allow same column in multiple partitioning keys at -- different levels -- so this is legal again... drop table if exists a; --- TEST: make sure GPOPT (aka pivotal query optimizer) fall back to legacy query optimizer +-- TEST: make sure GPOPT (aka pivotal query optimizer) fall back to Postgres query optimizer -- for queries with partition elimination over FULL OUTER JOIN -- between partitioned tables. -- SETUP @@ -1617,7 +1617,7 @@ NOTICE: CREATE TABLE will create partition "s2_1_prt_1" for table "s2" NOTICE: CREATE TABLE will create partition "s2_1_prt_2" for table "s2" -- end_ignore -- VERIFY --- expect GPOPT fall back to legacy query optimizer +-- expect GPOPT fall back to Postgres query optimizer -- since GPOPT don't support partition elimination through full outer joins select * from s1 full outer join s2 on s1.d1 = s2.d2 and s1.p1 = s2.p2 where s1.p1 = 1; d1 | p1 | d2 | p2 diff --git a/src/test/regress/expected/partition_pruning.out b/src/test/regress/expected/partition_pruning.out index 37da906f30603125e3281b275b8d8b3b872f56e2..73cb664829739b7dc6b064cba14d8fe6f2763672 100644 --- a/src/test/regress/expected/partition_pruning.out +++ b/src/test/regress/expected/partition_pruning.out @@ -120,7 +120,7 @@ EXPLAIN EXECUTE prep_prune; -> Append (cost=10000000000.00..10000000003.12 rows=1 width=12) -> Seq Scan on pt_lt_tab_1_prt_part1 (cost=10000000000.00..10000000003.12 rows=1 width=12) Filter: col2 = 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- Also test that Params are const-evaluated. @@ -132,7 +132,7 @@ EXPLAIN EXECUTE prep_prune_param(10); -> Append (cost=10000000000.00..10000000003.12 rows=1 width=12) -> Seq Scan on pt_lt_tab_1_prt_part1 (cost=10000000000.00..10000000003.12 rows=1 width=12) Filter: col2 = 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- @description B-tree single index key = non-partitioning key @@ -174,7 +174,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 < 10 ORDER BY col2,col3 LIMIT 5; Index Cond: (col1 < 10) -> Index Scan using pt_lt_tab_1_prt_part5_col1_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col1 < 10) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) SELECT * FROM pt_lt_tab WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; @@ -202,7 +202,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; Index Cond: (col1 > 50) -> Index Scan using pt_lt_tab_1_prt_part5_col1_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col1 > 50) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col1 = 25 ORDER BY col2,col3 LIMIT 5; @@ -231,7 +231,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 = 25 ORDER BY col2,col3 LIMIT 5; Index Cond: (col1 = 25) -> Index Scan using pt_lt_tab_1_prt_part5_col1_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col1 = 25) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col1 <> 10 ORDER BY col2,col3 LIMIT 5; @@ -264,7 +264,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 <> 10 ORDER BY col2,col3 LIMIT 5; Filter: col1 <> 10 -> Seq Scan on pt_lt_tab_1_prt_part5 (cost=10000000000.00..10000000003.12 rows=3 width=12) Filter: col1 <> 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col1 > 10 AND col1 < 50 ORDER BY col2,col3 LIMIT 5; @@ -305,7 +305,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 > 10 AND col1 < 50 ORDER BY col2,col3 Recheck Cond: ((col1 > 10) AND (col1 < 50)) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col1_idx (cost=0.00..10000.24 rows=4 width=0) Index Cond: ((col1 > 10) AND (col1 < 50)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (26 rows) SELECT * FROM pt_lt_tab WHERE col1 > 10 OR col1 = 25 ORDER BY col2,col3 LIMIT 5; @@ -363,7 +363,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 > 10 OR col1 = 25 ORDER BY col2,col3 Index Cond: (col1 > 10) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col1_idx (cost=0.00..1000.14 rows=1 width=0) Index Cond: (col1 = 25) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (43 rows) SELECT * FROM pt_lt_tab WHERE col1 between 10 AND 25 ORDER BY col2,col3 LIMIT 5; @@ -400,7 +400,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 between 10 AND 25 ORDER BY col2,col3 Index Cond: ((col1 >= 10) AND (col1 <= 25)) -> Index Scan using pt_lt_tab_1_prt_part5_col1_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: ((col1 >= 10) AND (col1 <= 25)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) DROP INDEX idx1; @@ -435,7 +435,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 < 10 ORDER BY col2,col3 LIMIT 5; Recheck Cond: (col2 < 10::numeric) -> Bitmap Index Scan on pt_lt_tab_1_prt_part1_col2_idx (cost=0.00..10000.21 rows=4 width=0) Index Cond: (col2 < 10::numeric) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM pt_lt_tab WHERE col2 > 50 ORDER BY col2,col3 LIMIT 5; @@ -451,7 +451,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 50 ORDER BY col2,col3 LIMIT 5; Sort Key: pt_lt_tab.col2, pt_lt_tab.col3 -> Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM pt_lt_tab WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; @@ -472,7 +472,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; -> Append (cost=0.14..1100.15 rows=1 width=12) -> Index Scan using pt_lt_tab_1_prt_part3_col2_idx on pt_lt_tab_1_prt_part3 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col2 = 25::numeric) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) SELECT * FROM pt_lt_tab WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; @@ -505,7 +505,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; Filter: col2 <> 10::numeric -> Seq Scan on pt_lt_tab_1_prt_part5 (cost=10000000000.00..10000000003.12 rows=3 width=12) Filter: col2 <> 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col2 > 10 AND col2 < 50 ORDER BY col2,col3 LIMIT 5; @@ -544,7 +544,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 10 AND col2 < 50 ORDER BY col2,col3 Recheck Cond: ((col2 > 10::numeric) AND (col2 < 50::numeric)) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col2_idx (cost=0.00..10000.24 rows=4 width=0) Index Cond: ((col2 > 10::numeric) AND (col2 < 50::numeric)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (24 rows) SELECT * FROM pt_lt_tab WHERE col2 > 10 OR col2 = 50 ORDER BY col2,col3 LIMIT 5; @@ -595,7 +595,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 10 OR col2 = 50 ORDER BY col2,col3 Index Cond: (col2 > 10::numeric) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col2_idx (cost=0.00..1000.14 rows=1 width=0) Index Cond: (col2 = 50::numeric) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (36 rows) SELECT * FROM pt_lt_tab WHERE col2 between 10 AND 50 ORDER BY col2,col3 LIMIT 5; @@ -636,7 +636,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 between 10 AND 50 ORDER BY col2,col3 Recheck Cond: ((col2 >= 10::numeric) AND (col2 <= 50::numeric)) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col2_idx (cost=0.00..10000.24 rows=4 width=0) Index Cond: ((col2 >= 10::numeric) AND (col2 <= 50::numeric)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (26 rows) DROP INDEX idx1; @@ -679,7 +679,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 < 10 ORDER BY col2,col3 LIMIT 5; Index Cond: (col1 < 10) -> Index Scan using pt_lt_tab_1_prt_part5_col1_col2_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col1 < 10) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) SELECT * FROM pt_lt_tab WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; @@ -707,7 +707,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; Index Cond: (col1 > 50) -> Index Scan using pt_lt_tab_1_prt_part5_col1_col2_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: (col1 > 50) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; @@ -728,7 +728,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; -> Append (cost=0.14..10100.22 rows=1 width=12) -> Index Scan using pt_lt_tab_1_prt_part3_col1_col2_idx on pt_lt_tab_1_prt_part3 (cost=0.14..10100.22 rows=1 width=12) Index Cond: (col2 = 25::numeric) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) SELECT * FROM pt_lt_tab WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; @@ -761,7 +761,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; Filter: col2 <> 10::numeric -> Seq Scan on pt_lt_tab_1_prt_part5 (cost=10000000000.00..10000000003.12 rows=3 width=12) Filter: col2 <> 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab WHERE col2 > 10 AND col1 = 10 ORDER BY col2,col3 LIMIT 5; @@ -787,7 +787,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 10 AND col1 = 10 ORDER BY col2,col3 Index Cond: ((col1 = 10) AND (col2 > 10::numeric)) -> Index Scan using pt_lt_tab_1_prt_part5_col1_col2_idx on pt_lt_tab_1_prt_part5 (cost=0.14..1100.15 rows=1 width=12) Index Cond: ((col1 = 10) AND (col2 > 10::numeric)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT * FROM pt_lt_tab WHERE col2 > 10.00 OR col1 = 50 ORDER BY col2,col3 LIMIT 5; @@ -845,7 +845,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 10.00 OR col1 = 50 ORDER BY col2,co Index Cond: (col2 > 10.00) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col1_col2_idx (cost=0.00..1000.14 rows=1 width=0) Index Cond: (col1 = 50) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (43 rows) SELECT * FROM pt_lt_tab WHERE col2 between 10 AND 50 ORDER BY col2,col3 LIMIT 5; @@ -886,7 +886,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 between 10 AND 50 ORDER BY col2,col3 Recheck Cond: ((col2 >= 10::numeric) AND (col2 <= 50::numeric)) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col1_col2_idx (cost=0.00..10000.24 rows=4 width=0) Index Cond: ((col2 >= 10::numeric) AND (col2 <= 50::numeric)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (26 rows) DROP INDEX idx1; @@ -928,7 +928,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 < 10 ORDER BY col2,col3 LIMIT 5; Index Cond: col1 < 10 -> Index Scan using pt_lt_tab_df_1_prt_def_col2_col1_key on pt_lt_tab_df_1_prt_def (cost=0.14..10100.24 rows=1 width=12) Index Cond: col1 < 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) SELECT * FROM pt_lt_tab_df WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; @@ -965,7 +965,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 > 50 ORDER BY col2,col3 LIMIT 5; Recheck Cond: col1 > 50 -> Bitmap Index Scan on pt_lt_tab_df_1_prt_def_col2_col1_key (cost=0.00..10000.23 rows=4 width=0) Index Cond: col1 > 50 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) SELECT * FROM pt_lt_tab_df WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; @@ -988,7 +988,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 = 25 ORDER BY col2,col3 LIMIT 5; Index Cond: col2 = 25::numeric -> Index Scan using pt_lt_tab_df_1_prt_def_col2_col1_key on pt_lt_tab_df_1_prt_def (cost=0.14..900.15 rows=1 width=12) Index Cond: col2 = 25::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM pt_lt_tab_df WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; @@ -1023,7 +1023,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; Filter: col2 <> 10::numeric -> Seq Scan on pt_lt_tab_df_1_prt_def (cost=10000000000.00..10000000003.16 rows=5 width=12) Filter: col2 <> 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) SELECT * FROM pt_lt_tab_df WHERE col2 > 10 AND col1 = 10 ORDER BY col2,col3 LIMIT 5; @@ -1051,7 +1051,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 10 AND col1 = 10 ORDER BY col2,c Index Cond: col2 > 10::numeric AND col1 = 10 -> Index Scan using pt_lt_tab_df_1_prt_def_col2_col1_key on pt_lt_tab_df_1_prt_def (cost=0.14..7800.25 rows=1 width=12) Index Cond: col2 > 10::numeric AND col1 = 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) SELECT * FROM pt_lt_tab_df WHERE col2 > 10.00 OR col1 = 50 ORDER BY col2,col3 LIMIT 5; @@ -1116,7 +1116,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 10.00 OR col1 = 50 ORDER BY col2 Index Cond: col2 > 10.00 -> Bitmap Index Scan on pt_lt_tab_df_1_prt_def_col2_col1_key (cost=0.00..10000.23 rows=1 width=0) Index Cond: col1 = 50 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (50 rows) SELECT * FROM pt_lt_tab_df WHERE col2 between 10 AND 50 ORDER BY col2,col3 LIMIT 5; @@ -1159,7 +1159,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 between 10 AND 50 ORDER BY col2,co Index Cond: col2 >= 10::numeric AND col2 <= 50::numeric -> Index Scan using pt_lt_tab_df_1_prt_def_col2_col1_key on pt_lt_tab_df_1_prt_def (cost=0.14..900.15 rows=1 width=12) Index Cond: col2 >= 10::numeric AND col2 <= 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) ALTER TABLE pt_lt_tab_df DROP CONSTRAINT col2_col1_unique; @@ -1209,7 +1209,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 between 1 AND 50 ORDER BY col2,col3 L Recheck Cond: col2 >= 1::numeric AND col2 <= 50::numeric -> Bitmap Index Scan on idx5 (cost=0.00..10000.24 rows=4 width=0) Index Cond: col2 >= 1::numeric AND col2 <= 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) SELECT * FROM pt_lt_tab WHERE col2 > 5 ORDER BY col2,col3 LIMIT 5; @@ -1252,7 +1252,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 5 ORDER BY col2,col3 LIMIT 5; Recheck Cond: col2 > 5::numeric -> Bitmap Index Scan on idx5 (cost=0.00..10000.21 rows=4 width=0) Index Cond: col2 > 5::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) SELECT * FROM pt_lt_tab WHERE col2 = 5 ORDER BY col2,col3 LIMIT 5; @@ -1273,7 +1273,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 = 5 ORDER BY col2,col3 LIMIT 5; -> Append (cost=0.14..1100.15 rows=1 width=12) -> Index Scan using idx1 on pt_lt_tab_1_prt_part1 (cost=0.14..1100.15 rows=1 width=12) Index Cond: col2 = 5::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) DROP INDEX idx1; @@ -1319,7 +1319,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 between 1 AND 100 ORDER BY col1 LI Index Cond: col1 >= 1 AND col1 <= 100 -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..7998.23 rows=4 width=12) Index Cond: col1 >= 1 AND col1 <= 100 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) SELECT * FROM pt_lt_tab_df WHERE col1 > 50 ORDER BY col1 LIMIT 5; @@ -1353,7 +1353,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 > 50 ORDER BY col1 LIMIT 5; Index Cond: col1 > 50 -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..7998.21 rows=4 width=12) Index Cond: col1 > 50 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) SELECT * FROM pt_lt_tab_df WHERE col1 < 50 ORDER BY col1 LIMIT 5; @@ -1387,7 +1387,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 < 50 ORDER BY col1 LIMIT 5; Index Cond: col1 < 50 -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..900.15 rows=1 width=12) Index Cond: col1 < 50 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (19 rows) DROP INDEX idx1; @@ -1447,7 +1447,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 between 1 AND 100 ORDER BY col2,co Recheck Cond: col2 >= 1::numeric AND col2 <= 100::numeric -> Bitmap Index Scan on idx6 (cost=0.00..7700.24 rows=4 width=0) Index Cond: col2 >= 1::numeric AND col2 <= 100::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) SELECT * FROM pt_lt_tab_df WHERE col2 > 50 ORDER BY col2,col3 LIMIT 5; @@ -1474,7 +1474,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 50 ORDER BY col2,col3 LIMIT 5; Recheck Cond: col2 > 50::numeric -> Bitmap Index Scan on idx6 (cost=0.00..7700.21 rows=4 width=0) Index Cond: col2 > 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM pt_lt_tab_df WHERE col2 = 50 ORDER BY col2,col3 LIMIT 5; @@ -1497,7 +1497,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 = 50 ORDER BY col2,col3 LIMIT 5; Index Cond: col2 = 50::numeric -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..900.15 rows=1 width=12) Index Cond: col2 = 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM pt_lt_tab_df WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; @@ -1532,7 +1532,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 <> 10 ORDER BY col2,col3 LIMIT 5; Filter: col2 <> 10::numeric -> Seq Scan on pt_lt_tab_df_1_prt_def (cost=10000000000.00..10000000003.16 rows=5 width=12) Filter: col2 <> 10::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) SELECT * FROM pt_lt_tab_df WHERE col2 between 1 AND 100 ORDER BY col2,col3 LIMIT 5; @@ -1579,7 +1579,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 between 1 AND 100 ORDER BY col2,co Recheck Cond: col2 >= 1::numeric AND col2 <= 100::numeric -> Bitmap Index Scan on idx6 (cost=0.00..7700.24 rows=4 width=0) Index Cond: col2 >= 1::numeric AND col2 <= 100::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) SELECT * FROM pt_lt_tab_df WHERE col2 < 50 AND col1 > 10 ORDER BY col2,col3 LIMIT 5; @@ -1630,7 +1630,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 < 50 AND col1 > 10 ORDER BY col2,c -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..900.16 rows=1 width=12) Index Cond: col2 < 50::numeric Filter: col1 > 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (36 rows) DROP INDEX idx1; @@ -1667,7 +1667,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 51 ORDER BY col2,col3 LIMIT 5; -> Append (cost=10000000000.00..10000000003.16 rows=4 width=12) -> Seq Scan on pt_lt_tab_df_1_prt_def (cost=10000000000.00..10000000003.16 rows=4 width=12) Filter: col2 > 51::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) SELECT * FROM pt_lt_tab_df WHERE col2 = 50 ORDER BY col2,col3 LIMIT 5; @@ -1690,7 +1690,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 = 50 ORDER BY col2,col3 LIMIT 5; Index Cond: col2 = 50::numeric -> Seq Scan on pt_lt_tab_df_1_prt_def (cost=10000000000.00..10000000003.16 rows=1 width=12) Filter: col2 = 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) DROP INDEX idx1; @@ -1738,7 +1738,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 = 50 ORDER BY col2,col3 LIMIT 5; Index Cond: col2 = 50::numeric -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..900.15 rows=1 width=12) Index Cond: col2 = 50::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM pt_lt_tab_df WHERE col2 > 10 AND col1 between 1 AND 100 ORDER BY col2,col3 LIMIT 5; @@ -1781,7 +1781,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 10 AND col1 between 1 AND 100 OR Recheck Cond: col2 > 10::numeric AND col1 >= 1 AND col1 <= 100 -> Bitmap Index Scan on idx6 (cost=0.00..7700.26 rows=3 width=0) Index Cond: col2 > 10::numeric AND col1 >= 1 AND col1 <= 100 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (28 rows) SELECT * FROM pt_lt_tab_df WHERE col1 = 10 ORDER BY col2,col3 LIMIT 5; @@ -1812,7 +1812,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col1 = 10 ORDER BY col2,col3 LIMIT 5; Index Cond: col1 = 10 -> Index Scan using idx6 on pt_lt_tab_df_1_prt_def (cost=0.14..10100.24 rows=1 width=12) Index Cond: col1 = 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) DROP INDEX idx1; @@ -1845,7 +1845,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 = 35 ORDER BY col2,col3 LIMIT 5; Filter: col2 = 35::numeric -> Seq Scan on pt_lt_tab_df_1_prt_def (cost=10000000000.00..10000000003.16 rows=1 width=12) Filter: col2 = 35::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) DROP INDEX idx1; @@ -1889,7 +1889,7 @@ EXPLAIN SELECT * FROM pt_lt_tab_df WHERE col2 > 15 ORDER BY col2,col3 LIMIT 5; Recheck Cond: col2 > 15::numeric -> Bitmap Index Scan on idx6 (cost=0.00..7700.21 rows=4 width=0) Index Cond: col2 > 15::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) DROP INDEX idx1; @@ -1950,7 +1950,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col4 is False ORDER BY col2,col3 LIMIT 5; Filter: (col4 IS FALSE) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col4_idx (cost=0.00..10000.21 rows=4 width=0) Index Cond: (col4 = false) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (26 rows) SELECT * FROM pt_lt_tab WHERE col4 = False ORDER BY col2,col3 LIMIT 5; @@ -1991,7 +1991,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col4 = False ORDER BY col2,col3 LIMIT 5; Filter: (NOT col4) -> Bitmap Index Scan on pt_lt_tab_1_prt_part5_col4_idx (cost=0.00..10000.21 rows=4 width=0) Index Cond: (col4 = false) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (26 rows) SELECT * FROM pt_lt_tab WHERE col2 > 41 ORDER BY col2,col3 LIMIT 5; @@ -2016,7 +2016,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 41 ORDER BY col2,col3 LIMIT 5; -> Append (cost=10000000000.00..10000000003.12 rows=4 width=8) -> Seq Scan on pt_lt_tab_1_prt_part5 (cost=10000000000.00..10000000003.12 rows=4 width=8) Filter: col2 > 41::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) ALTER TABLE pt_lt_tab DROP column col4; @@ -2042,7 +2042,7 @@ EXPLAIN SELECT * FROM pt_lt_tab WHERE col2 > 41 ORDER BY col2,col3 LIMIT 5; -> Append (cost=10000000000.00..10000000003.12 rows=4 width=7) -> Seq Scan on pt_lt_tab_1_prt_part5 (cost=10000000000.00..10000000003.12 rows=4 width=7) Filter: col2 > 41::numeric - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -2114,7 +2114,7 @@ EXPLAIN SELECT * FROM pt_complex WHERE i = 1 AND j = 1; Filter: (j = 1) -> Bitmap Index Scan on pt_complex_1_prt_p2_2_prt_p11_3_prt_p12_i_idx (cost=0.00..100.65 rows=22 width=0) Index Cond: (i = 1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) -- @@ -2159,7 +2159,7 @@ explain select * from ds_4 where month_id = '200800'; -> Append (cost=10000000000.00..10000000280.00 rows=5 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000280.00 rows=5 width=196) Filter: month_id::text = '200800'::text - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- now we can evaluate this function at planning/prune time @@ -2173,7 +2173,7 @@ explain select * from ds_4 where month_id::int = 200800; -> Append (cost=10000000000.00..10000000352.00 rows=5 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000352.00 rows=5 width=196) Filter: month_id::integer = 200800 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- this will be satisfied by 200800 @@ -2187,7 +2187,7 @@ explain select * from ds_4 where month_id::int - 801 < 200000; -> Append (cost=10000000000.00..10000000388.00 rows=1600 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000388.00 rows=1600 width=196) Filter: (month_id::integer - 801) < 200000 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- test OR case -- should NOT get pruning @@ -2204,7 +2204,7 @@ explain select * from ds_4 where month_id::int - 801 < 200000 OR count_vas > 10; Filter: (month_id::integer - 801) < 200000 OR count_vas > 10 -> Seq Scan on ds_4_1_prt_p200803 (cost=10000000000.00..10000000424.00 rows=2667 width=196) Filter: (month_id::integer - 801) < 200000 OR count_vas > 10 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- test AND case -- should still get pruning @@ -2218,7 +2218,7 @@ explain select * from ds_4 where month_id::int - 801 < 200000 AND count_vas > 10 -> Append (cost=10000000000.00..10000000424.00 rows=924 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000424.00 rows=924 width=196) Filter: count_vas > 10 AND (month_id::integer - 801) < 200000 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- test expression case : should get pruning @@ -2232,7 +2232,7 @@ explain select * from ds_4 where case when month_id = '200800' then 100 else 2 e -> Append (cost=10000000000.00..10000000316.00 rows=5 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000316.00 rows=5 width=196) Filter: CASE WHEN month_id::text = '200800'::text THEN 100 ELSE 2 END = 100 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- test expression case : should get pruning @@ -2246,7 +2246,7 @@ explain select * from ds_4 where case when month_id = '200800' then NULL else 2 -> Append (cost=10000000000.00..10000000280.00 rows=5 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000280.00 rows=5 width=196) Filter: CASE WHEN month_id::text = '200800'::text THEN NULL::integer ELSE 2 END IS NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- should still get pruning here -- count_vas is only used in the path for month id = 200800 @@ -2260,7 +2260,7 @@ explain select * from ds_4 where case when month_id::int = 200800 then count_vas -> Append (cost=10000000000.00..10000000352.00 rows=5 width=196) -> Seq Scan on ds_4_1_prt_p200800 (cost=10000000000.00..10000000352.00 rows=5 width=196) Filter: CASE WHEN month_id::integer = 200800 THEN count_vas ELSE 2 END IS NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- do one that matches a couple partitions @@ -2276,7 +2276,7 @@ explain select * from ds_4 where month_id::int in (200801, 1,55,6,6,6,6,66,565,6 Filter: month_id::integer = ANY ('{200801,1,55,6,6,6,6,66,565,65,65,200803}'::integer[]) -> Seq Scan on ds_4_1_prt_p200803 (cost=10000000000.00..10000000532.00 rows=58 width=196) Filter: month_id::integer = ANY ('{200801,1,55,6,6,6,6,66,565,65,65,200803}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- cleanup @@ -2349,7 +2349,7 @@ explain select * from ds_2 where month_id::int in (200808, 1315) order by month_ -> Append (cost=10000000000.00..10000000352.00 rows=10 width=196) -> Seq Scan on ds_2_1_prt_p200808 (cost=10000000000.00..10000000352.00 rows=10 width=196) Filter: month_id::integer = ANY ('{200808,1315}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) -- start_ignore @@ -2367,7 +2367,7 @@ explain select * from ds_2 where month_id::int in (200808, 200801, 2008010) ord Filter: month_id::integer = ANY ('{200808,200801,2008010}'::integer[]) -> Seq Scan on ds_2_1_prt_p200808 (cost=10000000000.00..10000000370.00 rows=15 width=196) Filter: month_id::integer = ANY ('{200808,200801,2008010}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) reset optimizer_segments; @@ -3241,7 +3241,7 @@ explain select * from sales where date = '2011-01-01' and region = 'usa'; -> Index Scan using sales_1_prt_2_2_prt_usa_date_idx on sales_1_prt_2_2_prt_usa (cost=0.12..200.14 rows=1 width=19) Index Cond: (date = '01-01-2011'::date) Filter: (region = 'usa'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) select * from sales where date = '2011-01-01' and region = 'usa'; diff --git a/src/test/regress/expected/partition_pruning_optimizer.out b/src/test/regress/expected/partition_pruning_optimizer.out index 1c07d7f7ad1d1a01d056d67b0a7178322511c25f..c6dfcc12640ad82ea252d68467b10f4109c8ba36 100644 --- a/src/test/regress/expected/partition_pruning_optimizer.out +++ b/src/test/regress/expected/partition_pruning_optimizer.out @@ -1725,7 +1725,7 @@ EXPLAIN SELECT * FROM pt_complex WHERE i = 1 AND j = 1; Filter: (j = 1) -> Bitmap Index Scan on pt_complex_1_prt_p2_2_prt_p11_3_prt_p12_i_idx (cost=0.00..100.65 rows=22 width=0) Index Cond: (i = 1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (23 rows) -- diff --git a/src/test/regress/expected/portals.out b/src/test/regress/expected/portals.out index 414e5b939f20eb347658e650e9ead00c09530221..21635c39835815c8aaad6bbefec23034d06743cf 100755 --- a/src/test/regress/expected/portals.out +++ b/src/test/regress/expected/portals.out @@ -1000,7 +1000,7 @@ DECLARE c1 CURSOR FOR SELECT stringu1 FROM onek WHERE stringu1 = 'DZAAAA'; Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on onek Filter: (stringu1 = 'DZAAAA'::name) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) DECLARE c1 CURSOR FOR SELECT stringu1 FROM onek WHERE stringu1 = 'DZAAAA'; diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out index 3ceb6c28d8e6c96e8cb206069ab4aa3736cb5d8e..085aa2e112c47b8652bb8519711e356941d48790 100644 --- a/src/test/regress/expected/privileges.out +++ b/src/test/regress/expected/privileges.out @@ -223,7 +223,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM atest12v x, atest12v y WHERE x.a = y.b; -> Index Scan using atest12_a_idx on atest12 Index Cond: (a = atest12_1.b) Filter: (b <<< 5) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- And this one. @@ -240,7 +240,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM atest12 x, atest12 y Hash Key: y.b -> Seq Scan on atest12 y Filter: (abs(a) <<< 5) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) reset enable_nestloop; @@ -268,7 +268,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM atest12v x, atest12v y WHERE x.a = y.b; -> Hash -> Seq Scan on atest12 Filter: (b <<< 5) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- Now regressuser1 grants sufficient access to regressuser2. @@ -289,7 +289,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM atest12v x, atest12v y WHERE x.a = y.b; -> Index Scan using atest12_a_idx on atest12 Index Cond: (a = atest12_1.b) Filter: (b <<< 5) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) reset enable_nestloop; @@ -308,7 +308,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM atest12 x, atest12 y Hash Key: y.b -> Seq Scan on atest12 y Filter: (abs(a) <<< 5) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- clean up (regressuser1's objects are all dropped later) diff --git a/src/test/regress/expected/qp_correlated_query.out b/src/test/regress/expected/qp_correlated_query.out index 1846af29675b66f79176459fce3e2295c02a4611..04812ec314fb9d0d9f6d110875906bf4f56902c8 100644 --- a/src/test/regress/expected/qp_correlated_query.out +++ b/src/test/regress/expected/qp_correlated_query.out @@ -180,7 +180,7 @@ select * from A where exists (select * from B where A.i in (select C.i from C wh -> Seq Scan on c -> Hash -> Seq Scan on b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select * from A where exists (select * from B where A.i in (select C.i from C where C.i = B.i)); @@ -210,7 +210,7 @@ select * from A,B where exists (select * from C where B.i not in (select C.i fro -> Materialize -> Broadcast Motion 3:3 (slice2; segments: 3) -> Seq Scan on c - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) select * from A,B where exists (select * from C where B.i not in (select C.i from C where C.i != 10)); @@ -405,7 +405,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = (select C.j from C where C -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice4; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select A.i, B.i, C.j from A, B, C where A.j = (select C.j from C where C.j = A.j and C.i not in (select B.i from B where C.i = B.i and B.i !=10)) order by A.i, B.i, C.j limit 10; @@ -455,7 +455,7 @@ explain select A.j from A, B, C where A.j = (select C.j from C where C.j = A.j a -> Materialize (cost=0.00..3.58 rows=9 width=0) -> Broadcast Motion 3:3 (slice4; segments: 3) (cost=0.00..3.45 rows=9 width=0) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) select A.j from A, B, C where A.j = (select C.j from C where C.j = A.j and C.i not in (select B.i from B where C.i = B.i and B.i !=10)) order by A.j limit 10; @@ -593,7 +593,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = (select C.j from C where C -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice4; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) select A.i, B.i, C.j from A, B, C where A.j = (select C.j from C where C.j = A.j and C.i = any (select B.i from B where C.i = B.i and B.i !=10)) order by A.i, B.i, C.j limit 10; @@ -650,7 +650,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = any ( select C.j from C wh -> Redistribute Motion 3:3 (slice4; segments: 3) (cost=0.00..2.15 rows=2 width=8) Hash Key: a.j -> Seq Scan on a (cost=0.00..2.05 rows=2 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (37 rows) select A.i, B.i, C.j from A, B, C where A.j = any ( select C.j from C where not exists(select C.i from C,A where C.i = A.i and C.i =10)) order by A.i, B.i, C.j limit 10; @@ -692,7 +692,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = any (select C.j from C whe -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) select A.i, B.i, C.j from A, B, C where A.j = any (select C.j from C where C.j = A.j and not exists (select sum(B.i) from B where C.i = B.i and C.i !=10)) order by A.i, B.i, C.j limit 10; @@ -790,7 +790,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = (select sum(C.j) from C wh -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice5; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (38 rows) select A.i, B.i, C.j from A, B, C where A.j = (select sum(C.j) from C where C.j = A.j and C.i = all (select B.i from B where C.i = B.i and B.i !=10)) order by A.i, B.i, C.j limit 10; @@ -842,7 +842,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j < all ( select C.j from C wh -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (32 rows) select A.i, B.i, C.j from A, B, C where A.j < all ( select C.j from C where not exists(select C.i from C,A where C.i = A.i and C.i =10)) order by A.i, B.i, C.j limit 10; @@ -874,7 +874,7 @@ explain select A.i, B.i, C.j from A, B, C where A.j = all (select C.j from C whe -> Materialize (cost=0.00..3.58 rows=9 width=4) -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..3.45 rows=9 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (22 rows) select A.i, B.i, C.j from A, B, C where A.j = all (select C.j from C where C.j = A.j and not exists (select sum(B.i) from B where C.i = B.i and C.i !=10)) order by A.i, B.i, C.j limit 10; @@ -1122,7 +1122,7 @@ explain select * from A where not exists (select sum(C.i) from C where C.i = A.i ---------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..3.05 rows=5 width=8) -> Seq Scan on a (cost=0.00..3.05 rows=2 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) select * from A where not exists (select sum(C.i) from C where C.i = A.i limit 0); @@ -1141,7 +1141,7 @@ explain select * from A where not exists (select sum(C.i) from C where C.i = A.i Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..3.05 rows=5 width=8) -> Seq Scan on a (cost=0.00..3.05 rows=2 width=8) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) select * from A where not exists (select sum(C.i) from C where C.i = A.i limit 5 offset 3); @@ -1159,7 +1159,7 @@ explain select * from A where not exists (select sum(C.i) from C where C.i = A.i ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) select * from A where not exists (select sum(C.i) from C where C.i = A.i limit 1 offset 0); @@ -1184,7 +1184,7 @@ explain select C.j from C where not exists (select max(B.i) from B where C.i = -> Materialize (cost=0.00..3.08 rows=1 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.08 rows=1 width=4) -> Seq Scan on b (cost=0.00..3.08 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select C.j from C where not exists (select max(B.i) from B where C.i = B.i having max(B.i) is not null) order by C.j; @@ -1204,7 +1204,7 @@ explain select C.j from C where not exists (select max(B.i) from B where C.i = -> Sort (cost=3.23..3.26 rows=3 width=4) Sort Key: j -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) select C.j from C where not exists (select max(B.i) from B where C.i = B.i offset 1000) order by C.j; @@ -1233,7 +1233,7 @@ explain select C.j from C where not exists (select rank() over (order by B.i) fr -> Seq Scan on c (cost=0.00..3.09 rows=3 width=8) -> Hash (cost=3.06..3.06 rows=2 width=4) -> Seq Scan on b (cost=0.00..3.06 rows=2 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select C.j from C where not exists (select rank() over (order by B.i) from B where C.i = B.i) order by C.j; @@ -1254,7 +1254,7 @@ explain select * from A where not exists (select sum(C.i) from C where C.i = A.i -> Seq Scan on a (cost=0.00..3.05 rows=2 width=8) -> Hash (cost=3.09..3.09 rows=3 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select * from A where not exists (select sum(C.i) from C where C.i = A.i group by a.i); @@ -1277,7 +1277,7 @@ explain select A.i from A where not exists (select B.i from B where B.i in (sele -> Hash (cost=3.09..3.09 rows=3 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) select A.i from A where not exists (select B.i from B where B.i in (select C.i from C) and B.i = A.i); @@ -1308,7 +1308,7 @@ explain select * from B where not exists (select * from C,A where C.i in (select -> Hash (cost=3.11..3.11 rows=3 width=4) -> Seq Scan on c c_1 (cost=0.00..3.11 rows=3 width=4) Filter: (i <> 10) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) select * from B where not exists (select * from C,A where C.i in (select C.i from C where C.i = A.i and C.i != 10) AND B.i = C.i); @@ -1339,7 +1339,7 @@ explain select * from A where A.i in (select C.j from C,B where B.i in (select i -> Seq Scan on c c_1 (cost=0.00..3.09 rows=3 width=4) -> Materialize (cost=0.00..3.13 rows=3 width=4) -> Seq Scan on c (cost=0.00..3.09 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select * from A where A.i in (select C.j from C,B where B.i in (select i from C)); @@ -1359,7 +1359,7 @@ explain select * from A where not exists (select sum(c.i) from C where C.i = A.i -> Hash (cost=3.11..3.11 rows=2 width=4) -> Seq Scan on c (cost=0.00..3.11 rows=2 width=4) Filter: (i > 3) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select * from A where not exists (select sum(c.i) from C where C.i = A.i group by C.i having c.i > 3); @@ -3462,7 +3462,7 @@ EXPLAIN SELECT a FROM qp_tab1 f1 LEFT JOIN qp_tab2 on a=c WHERE NOT EXISTS(SELEC -> Seq Scan on qp_tab2 (cost=0.00..1.01 rows=1 width=4) -> Hash (cost=1.01..1.01 rows=1 width=4) -> Seq Scan on qp_tab1 f2 (cost=0.00..1.01 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) EXPLAIN SELECT DISTINCT a FROM qp_tab1 WHERE NOT (SELECT TRUE FROM qp_tab2 WHERE EXISTS (SELECT * FROM qp_tab3 WHERE qp_tab2.c = qp_tab3.e)); @@ -3481,7 +3481,7 @@ EXPLAIN SELECT DISTINCT a FROM qp_tab1 WHERE NOT (SELECT TRUE FROM qp_tab2 WHERE -> Result (cost=0.00..1.01 rows=1 width=4) One-Time Filter: NOT $0 -> Seq Scan on qp_tab1 (cost=0.00..1.01 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT DISTINCT a FROM qp_tab1 WHERE NOT (SELECT TRUE FROM qp_tab2 WHERE EXISTS (SELECT * FROM qp_tab3 WHERE qp_tab2.c = qp_tab3.e)); @@ -3514,7 +3514,7 @@ EXPLAIN SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.f = qp_non_eq_b Hash Key: qp_non_eq_a.f -> Seq Scan on qp_non_eq_a (cost=0.00..2.04 rows=1 width=12) Filter: ((f)::text <> '-0'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.f = qp_non_eq_b.f AND qp_non_eq_a.f::text <> '-0'; @@ -3538,7 +3538,7 @@ EXPLAIN SELECT * FROM qp_non_eq_a INNER JOIN qp_non_eq_b ON qp_non_eq_a.f = qp_n Hash Key: qp_non_eq_b.f -> Seq Scan on qp_non_eq_b (cost=0.00..1.04 rows=1 width=12) Filter: CASE WHEN f::text = '-0'::text THEN 1::double precision ELSE (-1)::double precision END < 0::double precision - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM qp_non_eq_a INNER JOIN qp_non_eq_b ON qp_non_eq_a.f = qp_non_eq_b.f AND CASE WHEN qp_non_eq_b.f::text = '-0' THEN 1 ELSE -1::float8 END < '0'; @@ -3559,7 +3559,7 @@ EXPLAIN SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.i = qp_non_eq_b -> Hash (cost=1.03..1.03 rows=1 width=12) -> Seq Scan on qp_non_eq_b (cost=0.00..1.03 rows=1 width=12) Filter: i = ANY ('{1,2,3}'::integer[]) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.i = qp_non_eq_b.i AND qp_non_eq_a.i = ANY('{1,2,3}'::integer[]); @@ -3578,7 +3578,7 @@ EXPLAIN SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.i = qp_non_eq_b -> Hash (cost=2.03..2.03 rows=1 width=12) -> Seq Scan on qp_non_eq_a (cost=0.00..2.03 rows=1 width=12) Filter: ((i)::numeric = ANY ('{1,2,3}'::numeric[])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) SELECT * FROM qp_non_eq_a, qp_non_eq_b WHERE qp_non_eq_a.i = qp_non_eq_b.i AND qp_non_eq_a.i = ANY('{1,2,3}'::numeric[]); diff --git a/src/test/regress/expected/qp_gist_indexes3.out b/src/test/regress/expected/qp_gist_indexes3.out index 63460b4996796e4b537c167851c11ecf092f05f4..d873efe0e6ce3a869662ddcefe789f340bacc433 100644 --- a/src/test/regress/expected/qp_gist_indexes3.out +++ b/src/test/regress/expected/qp_gist_indexes3.out @@ -155,7 +155,7 @@ EXPLAIN SELECT id, property AS "Property" FROM GistTable3 -> Bitmap Index Scan on gistindex3a (cost=0.00..100.29 rows=2 width=0) Index Cond: property ~= '(999,999),(998,998)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) VACUUM ANALYZE GistTable3; @@ -174,7 +174,7 @@ EXPLAIN SELECT id, property AS "ProperTee" FROM GistTable3 -> Index Scan using gistindex3a on gisttable3 (cost=0.00..200.28 rows=1 width=36) Index Cond: property ~= '(999,999),(998,998)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- ---------------------------------------------------------------------- @@ -213,7 +213,7 @@ EXPLAIN SELECT id, property AS "Property" FROM GistTable3 -> Index Scan using gistindex3a on gisttable3 (cost=0.00..200.27 rows=1 width=36) Index Cond: property ~= '(999,999),(998,998)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- ---------------------------------------------------------------------- diff --git a/src/test/regress/expected/qp_gist_indexes4.out b/src/test/regress/expected/qp_gist_indexes4.out index 1059da380608556d85065c1fef09bc6cb60b29c7..825a4cae0c3217a0e51023aa2d1e81065e864dbb 100644 --- a/src/test/regress/expected/qp_gist_indexes4.out +++ b/src/test/regress/expected/qp_gist_indexes4.out @@ -200,7 +200,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Seq Scan on geometrictypes (cost=0.00..5262.64 rows=1 width=129) Filter: c ~= '<(1255,7955),1227>'::circle Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SELECT * FROM geometricTypes @@ -218,7 +218,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Seq Scan on geometrictypes (cost=0.00..5262.64 rows=1 width=129) Filter: b ~= '(7352,7352),(7350,-3128)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SELECT * FROM geometricTypes @@ -236,7 +236,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Seq Scan on geometrictypes (cost=0.00..5262.64 rows=1 width=129) Filter: p ~= '((4679,8579),(4670,-3232))'::polygon Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) -- ---------------------------------------------------------------------- @@ -275,7 +275,7 @@ EXPLAIN SELECT * FROM geometricTypes Index Cond: c ~= '<(1255,7955),1227>'::circle Filter: c ~= '<(1255,7955),1227>'::circle Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) SELECT * FROM geometricTypes @@ -293,7 +293,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Index Scan using gt_index_b on geometrictypes (cost=0.00..200.56 rows=1 width=129) Index Cond: b ~= '(7352,7352),(7350,-3128)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SELECT * FROM geometricTypes @@ -312,7 +312,7 @@ EXPLAIN SELECT * FROM geometricTypes Index Cond: p ~= '((4679,8579),(4670,-3232))'::polygon Filter: p ~= '((4679,8579),(4670,-3232))'::polygon Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -374,7 +374,7 @@ EXPLAIN SELECT * FROM gone Index Cond: already_gone ~= '<(-3176,7824),3174>'::circle Filter: already_gone ~= '<(-3176,7824),3174>'::circle Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) ROLLBACK WORK; @@ -396,7 +396,7 @@ EXPLAIN SELECT * FROM gone -> Seq Scan on gone (cost=0.00..176.00 rows=1 width=129) Filter: already_gone ~= '<(-3176,7824),3174>'::circle Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SET optimizer_enable_tablescan = False; @@ -420,7 +420,7 @@ EXPLAIN SELECT * FROM gone Index Cond: paragon ~= '((7625,8425),(7643,7849))'::polygon Filter: paragon ~= '((7625,8425),(7643,7849))'::polygon Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) ROLLBACK WORK; @@ -441,7 +441,7 @@ EXPLAIN SELECT * FROM gone Index Cond: paragon ~= '((7625,8425),(7643,7849))'::polygon Filter: paragon ~= '((7625,8425),(7643,7849))'::polygon Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) CREATE INDEX box_of_rain ON gone USING GiST (too_far_gone) @@ -465,7 +465,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) ROLLBACK WORK; @@ -484,7 +484,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) BEGIN WORK; @@ -504,7 +504,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) ROLLBACK WORK; @@ -526,7 +526,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.29 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) ROLLBACK WORK; @@ -547,7 +547,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) REINDEX TABLE gone; @@ -566,7 +566,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) ROLLBACK WORK; @@ -585,7 +585,7 @@ EXPLAIN SELECT * FROM gone -> Index Scan using box_of_rain on gone (cost=0.00..200.28 rows=1 width=129) Index Cond: too_far_gone ~= '(7342,8385),(7338,6538)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) DROP TABLE IF EXISTS gone; @@ -619,7 +619,7 @@ EXPLAIN SELECT * FROM geometricTypes Index Cond: c ~= '<(1255,7955),1227>'::circle Filter: c ~= '<(1255,7955),1227>'::circle Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) SELECT * FROM geometricTypes @@ -637,7 +637,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Index Scan using gt_index_b on geometrictypes (cost=0.00..202.21 rows=1 width=129) Index Cond: b ~= '(7352,7352),(7350,-3128)'::box Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SELECT * FROM geometricTypes @@ -656,7 +656,7 @@ EXPLAIN SELECT * FROM geometricTypes Index Cond: p ~= '((4679,8579),(4670,-3232))'::polygon Filter: p ~= '((4679,8579),(4670,-3232))'::polygon Settings: enable_seqscan=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -687,7 +687,7 @@ EXPLAIN SELECT * FROM geometricTypes Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..201.27 rows=1 width=129) -> Index Scan using gt_index_c on geometrictypes (cost=0.00..201.27 rows=1 width=129) Index Cond: c ~= '<(-3197,7903),3150>'::circle AND c << '<(7879,8779),7868>'::circle - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT * FROM geometricTypes @@ -705,7 +705,7 @@ EXPLAIN SELECT * FROM geometricTypes -> Index Scan using gt_index_b on geometrictypes (cost=0.00..200.37 rows=1 width=129) Index Cond: b ~= '(7352,7352),(7350,-3128)'::box AND b << '(8479,7579),(8441,-3121)'::box Settings: enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) SELECT * FROM geometricTypes @@ -724,7 +724,7 @@ EXPLAIN SELECT * FROM geometricTypes Index Cond: p ~= '((1252,8252),(1274,7975))'::polygon AND p << '((8778,6578),(8765,8265))'::polygon Filter: p ~= '((1252,8252),(1274,7975))'::polygon AND p << '((8778,6578),(8765,8265))'::polygon Settings: enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -778,7 +778,7 @@ EXPLAIN SELECT * FROM geometricTypesPartition Recheck Cond: (c ~= '<(8479,-3121),8441>'::circle) -> Bitmap Index Scan on geometrictypespartition_1_prt_2_c_idx (cost=0.00..100.48 rows=9 width=0) Index Cond: (c ~= '<(8479,-3121),8441>'::circle) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) DROP TABLE IF EXISTS geometricTypesPartition; @@ -828,7 +828,7 @@ EXPLAIN SELECT * FROM textSearch Index Cond: t @@ '''test'''::tsquery Filter: t @@ '''test'''::tsquery Settings: enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) DROP TABLE IF EXISTS textSearch; @@ -881,7 +881,7 @@ EXPLAIN SELECT count(*) FROM gist_tbl, gist_tbl2 Index Cond: gist_tbl.p <@ gist_tbl2.p Filter: gist_tbl.p <@ gist_tbl2.p Settings: enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (11 rows) -- ---------------------------------------------------------------------- diff --git a/src/test/regress/expected/qp_misc_jiras.out b/src/test/regress/expected/qp_misc_jiras.out index 5c2d49b7da4cbb655a3c6f76109e5c183a5fd419..0daf014a7f51cc5ac3f7b31048a3d54f69ae75d0 100644 --- a/src/test/regress/expected/qp_misc_jiras.out +++ b/src/test/regress/expected/qp_misc_jiras.out @@ -1202,7 +1202,7 @@ explain select cn, count(*) over (order by dt range between '2 day'::interval pr Sort Key: dt -> Seq Scan on tbl5246_sale (cost=0.00..3.12 rows=4 width=8) Settings: enable_nestloop=on; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) drop table qp_misc_jiras.tbl5246_sale; @@ -1637,7 +1637,7 @@ explain select * from qp_misc_jiras.tbl6833_anl; -- should not hit cdbRelSize(); -> Append (cost=10000000000.00..20000000002.00 rows=1 width=12) -> Seq Scan on tbl6833_anl_1_prt_bb_1 (cost=10000000000.00..10000000001.00 rows=1 width=12) -> Seq Scan on tbl6833_anl_1_prt_bb_2 (cost=10000000000.00..10000000001.00 rows=1 width=12) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) select relname, reltuples, relpages from pg_class where relname like 'tbl6833_anl%'; -- should show relpages = 1.0 @@ -1659,7 +1659,7 @@ explain select * from qp_misc_jiras.tbl6833_vac; -- should not hit cdbRelSize(); -> Append (cost=10000000000.00..20000000002.00 rows=1 width=12) -> Seq Scan on tbl6833_vac_1_prt_bb_1 (cost=10000000000.00..10000000001.00 rows=1 width=12) -> Seq Scan on tbl6833_vac_1_prt_bb_2 (cost=10000000000.00..10000000001.00 rows=1 width=12) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) select relname, reltuples, relpages from pg_class where relname like 'tbl6833_vac%'; -- should show relpages = 1.0 @@ -2344,7 +2344,7 @@ explain select i as a, i as b from qp_misc_jiras.tbl7553_test group by grouping -> Sort (cost=10000008018.50..10000008233.75 rows=28700 width=4) Sort Key: tbl7553_test.i, tbl7553_test.i -> Seq Scan on tbl7553_test (cost=10000000000.00..10000000961.00 rows=28700 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) select i as a, i as b from qp_misc_jiras.tbl7553_test group by grouping sets( (a, b), (a)); @@ -2372,7 +2372,7 @@ explain select j as a, j as b from qp_misc_jiras.tbl7553_test group by grouping Sort Key: tbl7553_test.j, tbl7553_test.j -> Seq Scan on tbl7553_test (cost=0.00..9.61 rows=287 width=4) Settings: enable_indexscan=off; enable_nestloop=on; enable_seqscan=off; gp_enable_agg_distinct=off; gp_enable_agg_distinct_pruning=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (16 rows) select j as a, j as b from qp_misc_jiras.tbl7553_test group by grouping sets( (a, b), (a)); @@ -2996,7 +2996,7 @@ explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_te -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..2683.00 rows=28700 width=4) Hash Key: t2.j -> Seq Scan on tbl5994_test t2 (cost=0.00..961.00 rows=28700 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_test t1, qp_misc_jiras.tbl5994_test t2 where t1.i = t2.i) tmp group by j; @@ -3016,7 +3016,7 @@ explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_te -> Seq Scan on tbl5994_test t1 (cost=0.00..961.00 rows=28700 width=8) -> Hash (cost=961.00..961.00 rows=28700 width=4) -> Seq Scan on tbl5994_test t2 (cost=0.00..961.00 rows=28700 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) set enable_groupagg=on; @@ -3038,7 +3038,7 @@ explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_te -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..2683.00 rows=28700 width=4) Hash Key: t2.j -> Seq Scan on tbl5994_test t2 (cost=0.00..961.00 rows=28700 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_test t1, qp_misc_jiras.tbl5994_test t2 where t1.i = t2.i) tmp group by j; @@ -3058,7 +3058,7 @@ explain select count(distinct j) from (select t1.* from qp_misc_jiras.tbl5994_te -> Seq Scan on tbl5994_test t1 (cost=0.00..961.00 rows=28700 width=8) -> Hash (cost=961.00..961.00 rows=28700 width=4) -> Seq Scan on tbl5994_test t2 (cost=0.00..961.00 rows=28700 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) drop table qp_misc_jiras.tbl5994_test; @@ -3091,7 +3091,7 @@ explain analyze select reltablespace from pg_class where oid = (select reltoast Statement statistics: Memory used: 1000K bytes Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer Total runtime: 0.068 ms (15 rows) @@ -3253,7 +3253,7 @@ group by 1, 2; -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..0.04 rows=1 width=32) -> Seq Scan on bar_6325 c (cost=0.00..0.00 rows=1 width=32) Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) -- start_ignore @@ -3386,7 +3386,7 @@ explain select x, "median"(y) from qp_misc_jiras.tbl9613 group by x; -- this sho Sort Key: x -> Seq Scan on tbl9613 (cost=0.00..5.96 rows=166 width=36) Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select x, "median"(y) from qp_misc_jiras.tbl9613 group by x; -- this should be allowed @@ -3405,7 +3405,7 @@ explain select x, median2(y) from qp_misc_jiras.tbl9613 group by x; -- this shou Sort Key: x -> Seq Scan on tbl9613 (cost=0.00..5.96 rows=166 width=36) Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select x, median2(y) from qp_misc_jiras.tbl9613 group by x; -- this should be disallowed @@ -3515,7 +3515,7 @@ else 'Unidentify' end Group By: CASE WHEN ir_voice_sms_and_data.ir_call_supplementary_svc_code = ANY ('{S20,S21}'::bpchar[]) THEN 'MO'::text ELSE 'foo'::text END, CASE WHEN ir_voice_sms_and_data.ir_call_type_group_code::text = ANY ('{H,VH,PCB}'::text[]) THEN 'Thailland'::text ELSE 'Unidentify'::text END -> Seq Scan on ir_voice_sms_and_data (cost=0.00..0.01 rows=1 width=54) Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (10 rows) DROP TABLE qp_misc_jiras.ir_voice_sms_and_data; @@ -3708,7 +3708,7 @@ explain select * from qp_misc_jiras.test_heap where ctid='(0,1)' and gp_segment TID Cond: ctid = '(0,1)'::tid Filter: gp_segment_id >= 0 Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) select * from qp_misc_jiras.test_heap where ctid='(0,1)' and gp_segment_id >= 0; @@ -3731,7 +3731,7 @@ explain select * from qp_misc_jiras.test_ao where ctid='(33554432,1)' and gp_se -> Seq Scan on test_ao (cost=0.00..13.91 rows=1 width=8) Filter: gp_segment_id >= 0 AND ctid = '(33554432,1)'::tid Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) select * from qp_misc_jiras.test_ao where ctid='(33554432,1)' and gp_segment_id >= 0; @@ -3754,7 +3754,7 @@ explain select * from qp_misc_jiras.test_co where ctid='(33554432,1)' and gp_se -> Seq Scan on test_co (cost=0.00..13.91 rows=1 width=8) Filter: gp_segment_id >= 0 AND ctid = '(33554432,1)'::tid Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) select * from qp_misc_jiras.test_co where ctid='(33554432,1)' and gp_segment_id >= 0; @@ -3892,7 +3892,7 @@ explain select * from qp_misc_jiras.r; Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..13.00 rows=1000 width=8) -> Seq Scan on r (cost=0.00..13.00 rows=334 width=8) Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) explain analyze select * from qp_misc_jiras.r,qp_misc_jiras.s where r.a=s.b; @@ -3922,7 +3922,7 @@ explain analyze select * from qp_misc_jiras.r,qp_misc_jiras.s where r.a=s.b; Statement statistics: Memory used: 1945600K bytes Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=off; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer Total runtime: 127.268 ms (31 rows) @@ -4497,7 +4497,7 @@ explain select 1 as t1 where 1 <= ALL (select x from tbl_z); -> Materialize (cost=10000000000.00..10000001544.50 rows=32100 width=4) -> Gather Motion 3:1 (slice1; segments: 3) (cost=10000000000.00..10000001063.00 rows=96300 width=4) -> Seq Scan on tbl_z (cost=10000000000.00..10000001063.00 rows=32100 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) set gp_enable_relsize_collection = on; @@ -4511,7 +4511,7 @@ explain select 1 as t1 where 1 <= ALL (select x from tbl_z); -> Materialize (cost=10000000000.00..10000000015.44 rows=321 width=4) -> Gather Motion 3:1 (slice1; segments: 3) (cost=10000000000.00..10000000010.63 rows=963 width=4) -> Seq Scan on tbl_z (cost=10000000000.00..10000000010.63 rows=321 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) drop table if exists tbl_z; diff --git a/src/test/regress/expected/qp_misc_jiras_optimizer.out b/src/test/regress/expected/qp_misc_jiras_optimizer.out index d83d2c44f428a2d434059cb8cc1c88b9b867de81..90acc0dec23596e4ceb2ed533e238d7d367235e2 100644 --- a/src/test/regress/expected/qp_misc_jiras_optimizer.out +++ b/src/test/regress/expected/qp_misc_jiras_optimizer.out @@ -3116,7 +3116,7 @@ explain analyze select reltablespace from pg_class where oid = (select reltoast Statement statistics: Memory used: 1000K bytes Settings: enable_bitmapscan=off; enable_groupagg=on; enable_indexscan=on; enable_seqscan=off; optimizer=on; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer Total runtime: 0.085 ms (15 rows) diff --git a/src/test/regress/expected/qp_orca_fallback.out b/src/test/regress/expected/qp_orca_fallback.out index 6379e9ba9b44c3df2d76b41a8a2e4ac9aad96c7d..ccba4e41f712e8ece82e816737a361cc647e4ff7 100644 --- a/src/test/regress/expected/qp_orca_fallback.out +++ b/src/test/regress/expected/qp_orca_fallback.out @@ -10,7 +10,7 @@ explain insert into constr_tab values (1,2,3); ------------------------------------------------ Insert on constr_tab (cost=0.00..0.01 rows=1 width=0) -> Result (cost=0.00..0.01 rows=1 width=0) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) set optimizer_enable_dml_constraints=on; @@ -19,7 +19,7 @@ explain insert into constr_tab values (1,2,3); ------------------------------------------------ Insert on constr_tab (cost=0.00..0.01 rows=1 width=0) -> Result (cost=0.00..0.01 rows=1 width=0) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) -- The remaining tests require a row in the table. @@ -33,7 +33,7 @@ explain update constr_tab set a = 10; Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain update constr_tab set b = 10; @@ -41,7 +41,7 @@ explain update constr_tab set b = 10; ----------------------------------------------------------------- Update on constr_tab (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) set optimizer_enable_dml_constraints=on; @@ -50,7 +50,7 @@ explain update constr_tab set b = 10; ----------------------------------------------------------------- Update on constr_tab (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (3 rows) -- Same, with NOT NULL constraint. @@ -66,7 +66,7 @@ explain update constr_tab set a = 10; Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) DROP TABLE IF EXISTS constr_tab; @@ -82,7 +82,7 @@ explain update constr_tab set b = 10; Hash Key: a, b -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) DROP TABLE IF EXISTS constr_tab; @@ -98,7 +98,7 @@ explain update constr_tab set a = 10; Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- Test ORCA fallback on "FROM ONLY" @@ -151,7 +151,7 @@ EXPLAIN SELECT * FROM ext_table_no_fallback; ----------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..11000.00 rows=1000000 width=8) -> External Scan on ext_table_no_fallback (cost=0.00..11000.00 rows=333334 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN SELECT * FROM ONLY ext_table_no_fallback; @@ -159,7 +159,7 @@ EXPLAIN SELECT * FROM ONLY ext_table_no_fallback; ----------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..11000.00 rows=1000000 width=8) -> External Scan on ext_table_no_fallback (cost=0.00..11000.00 rows=333334 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN INSERT INTO heap_t1 SELECT * FROM ONLY ext_table_no_fallback; @@ -169,6 +169,6 @@ EXPLAIN INSERT INTO heap_t1 SELECT * FROM ONLY ext_table_no_fallback; -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..11000.00 rows=333334 width=8) Hash Key: ext_table_no_fallback.b -> External Scan on ext_table_no_fallback (cost=0.00..11000.00 rows=333334 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) diff --git a/src/test/regress/expected/qp_orca_fallback_optimizer.out b/src/test/regress/expected/qp_orca_fallback_optimizer.out index 4a331ea4b3c673dce8d23268e20b4904bf75d9a4..5408def0d3394bc789f53519d81c9d3a5bd52ede 100644 --- a/src/test/regress/expected/qp_orca_fallback_optimizer.out +++ b/src/test/regress/expected/qp_orca_fallback_optimizer.out @@ -12,7 +12,7 @@ DETAIL: Feature not supported: INSERT with constraints -------------------------------------------------------- Insert on constr_tab (cost=0.00..0.01 rows=1 width=0) -> Result (cost=0.00..0.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) set optimizer_enable_dml_constraints=on; @@ -42,7 +42,7 @@ DETAIL: Feature not supported: UPDATE with constraints Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain update constr_tab set b = 10; @@ -52,7 +52,7 @@ DETAIL: Feature not supported: UPDATE with constraints ----------------------------------------------------------------- Update on constr_tab (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) set optimizer_enable_dml_constraints=on; @@ -82,7 +82,7 @@ DETAIL: Feature not supported: UPDATE with constraints Hash Key: a -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) DROP TABLE IF EXISTS constr_tab; @@ -104,7 +104,7 @@ DETAIL: Feature not supported: UPDATE with constraints Hash Key: a, b -> Split (cost=0.00..1.01 rows=1 width=22) -> Seq Scan on constr_tab (cost=0.00..1.01 rows=1 width=22) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) DROP TABLE IF EXISTS constr_tab; @@ -200,7 +200,7 @@ DETAIL: Feature not supported: ONLY in the FROM clause ----------------------------------------------------------------------------------------- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..11000.00 rows=1000000 width=8) -> External Scan on ext_table_no_fallback (cost=0.00..11000.00 rows=333334 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN INSERT INTO heap_t1 SELECT * FROM ONLY ext_table_no_fallback; @@ -212,6 +212,6 @@ DETAIL: Feature not supported: ONLY in the FROM clause -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..11000.00 rows=333334 width=8) Hash Key: ext_table_no_fallback.b -> External Scan on ext_table_no_fallback (cost=0.00..11000.00 rows=333334 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) diff --git a/src/test/regress/expected/qp_subquery.out b/src/test/regress/expected/qp_subquery.out index 7e30a98de3ecefe9ba93a34c5cdaa4192ac7472f..70fa16e858a499b969ea9ccfb79b45e389c7200e 100644 --- a/src/test/regress/expected/qp_subquery.out +++ b/src/test/regress/expected/qp_subquery.out @@ -594,7 +594,7 @@ explain select t1.a, t2.b from t1, t2 where t1.a=t2.a or ((t1.a,t2.b) not in (se -> Materialize (cost=1.01..1.02 rows=1 width=8) -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on i1 (cost=0.00..1.01 rows=1 width=8) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) -- @@ -820,7 +820,7 @@ select Tbl04.* from Tbl04 where not ((Tbl04.a,Tbl04.b) in (select Tbl06.a,Tbl06. -> Seq Scan on tbl06 -> Hash -> Seq Scan on i3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select Tbl04.* from Tbl04 where not ((Tbl04.a,Tbl04.b) in (select Tbl06.a,Tbl06.b from Tbl06) or (Tbl04.a,Tbl04.b) in (select i3.a, i3.b from i3)); -- expected: (5,6) @@ -1082,7 +1082,7 @@ explain delete from TabDel1 where TabDel1.a not in (select a from TabDel3); -- d -> Hash (cost=1.05..1.05 rows=1 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.05 rows=1 width=4) -> Seq Scan on tabdel3 (cost=0.00..1.01 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) explain delete from TabDel2 where TabDel2.a not in (select a from TabDel4); -- support this @@ -1094,7 +1094,7 @@ explain delete from TabDel2 where TabDel2.a not in (select a from TabDel4); -- s -> Seq Scan on tabdel2 (cost=0.00..2.03 rows=1 width=14) -> Hash (cost=1.01..1.01 rows=1 width=4) -> Seq Scan on tabdel4 (cost=0.00..1.01 rows=1 width=4) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) delete from TabDel2 where TabDel2.a not in (select a from TabDel4); @@ -1306,7 +1306,7 @@ explain with test as (select * from (select * from append_rel) p where att1 in ( Filter: (att2 >= 19) -> Seq Scan on append_rel2 append_rel2_6 (cost=0.00..1073.75 rows=8656 width=4) Filter: (att2 >= 19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (78 rows) with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21); diff --git a/src/test/regress/expected/qp_subquery_optimizer.out b/src/test/regress/expected/qp_subquery_optimizer.out index be66f429ad3fa189d4a9b4f2c8fcbe266cca9583..395cc565cd4e1dace10933789bf4b5e736c84879 100644 --- a/src/test/regress/expected/qp_subquery_optimizer.out +++ b/src/test/regress/expected/qp_subquery_optimizer.out @@ -595,7 +595,7 @@ explain select t1.a, t2.b from t1, t2 where t1.a=t2.a or ((t1.a,t2.b) not in (se -> Materialize (cost=1.01..1.02 rows=1 width=8) -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..1.01 rows=1 width=8) -> Seq Scan on i1 (cost=0.00..1.01 rows=1 width=8) - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) -- @@ -821,7 +821,7 @@ select Tbl04.* from Tbl04 where not ((Tbl04.a,Tbl04.b) in (select Tbl06.a,Tbl06. -> Seq Scan on tbl06 -> Hash -> Seq Scan on i3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) select Tbl04.* from Tbl04 where not ((Tbl04.a,Tbl04.b) in (select Tbl06.a,Tbl06.b from Tbl06) or (Tbl04.a,Tbl04.b) in (select i3.a, i3.b from i3)); -- expected: (5,6) @@ -1309,7 +1309,7 @@ explain with test as (select * from (select * from append_rel) p where att1 in ( Filter: (att2 >= 19) -> Seq Scan on append_rel2 append_rel2_6 (cost=0.00..1073.75 rows=8656 width=4) Filter: (att2 >= 19) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (78 rows) with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21); diff --git a/src/test/regress/expected/qp_targeted_dispatch.out b/src/test/regress/expected/qp_targeted_dispatch.out index baadf6a101bf2b6ca56538b6c7ac37b3b6839d5f..411607022ad4071593eb5422b7b7025be17f4240 100644 --- a/src/test/regress/expected/qp_targeted_dispatch.out +++ b/src/test/regress/expected/qp_targeted_dispatch.out @@ -564,7 +564,7 @@ explain select count(*) from mpp7638 where a =1; Filter: (a = 1) -> Seq Scan on mpp7638_1_prt_9 (cost=0.00..988.75 rows=24 width=0) Filter: a = 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (24 rows) alter table mpp7638 set distributed by (a, b, c); @@ -743,7 +743,7 @@ explain select * from (select * from mpp7620 where key=200) ss where key =200; -> Seq Scan on mpp7620 (cost=0.00..1.01 rows=1 width=10) Filter: (key = 200) Planning time: 0.436 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain insert into zoompp7620(key) select key from mpp7620 where mpp7620.key=200; @@ -752,7 +752,7 @@ explain insert into zoompp7620(key) select key from mpp7620 where mpp7620.key=20 Insert on zoompp7620 (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on mpp7620 (cost=0.00..1.01 rows=1 width=4) Filter: key = 200 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) explain select key from mpp7620 where mpp7620.key=200; @@ -762,7 +762,7 @@ explain select key from mpp7620 where mpp7620.key=200; -> Seq Scan on mpp7620 (cost=0.00..1.01 rows=1 width=4) Filter: (key = 200) Planning time: 0.321 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) reset test_print_direct_dispatch_info; @@ -800,7 +800,7 @@ explain select * from table_a where a0=3; -> Seq Scan on table_a (cost=0.00..1.01 rows=1 width=16) Filter: (a0 = 3) Planning time: 0.457 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) explain select a0 from table_a where a0 in (select max(a1) from table_a); @@ -817,7 +817,7 @@ explain select a0 from table_a where a0 in (select max(a1) from table_a); -> Gather Motion 3:1 (slice1; segments: 3) (cost=1.01..1.06 rows=1 width=4) -> Aggregate (cost=1.01..1.02 rows=1 width=4) -> Seq Scan on table_a table_a_1 (cost=0.00..1.01 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) select a0 from table_a where a0 in (select max(a1) from table_a); @@ -857,7 +857,7 @@ explain select a0 from table_a where a0 in (select max(a1) from table_a where a0 -> Aggregate (cost=1.01..1.02 rows=1 width=4) -> Seq Scan on table_a table_a_1 (cost=0.00..1.01 rows=1 width=4) Filter: a0 = 1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) reset test_print_direct_dispatch_info; diff --git a/src/test/regress/expected/qp_union_intersect.out b/src/test/regress/expected/qp_union_intersect.out index 72e9a560ba813887d8421d0a0ade5a7cb1593368..86e1af4563cd66cb7d3ac9623dc2129a6f464677 100644 --- a/src/test/regress/expected/qp_union_intersect.out +++ b/src/test/regress/expected/qp_union_intersect.out @@ -1759,7 +1759,7 @@ order by 1,2; -> Aggregate -> Gather Motion 3:1 (slice2; segments: 3) -> Seq Scan on mergeappend_test r_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- This used to trip an assertion in MotionStateFinderWalker(), when we were @@ -1808,7 +1808,7 @@ order by 1,2; (slice1) Executor memory: 121K bytes avg x 3 workers, 140K bytes max (seg0). Work_mem: 49K bytes max. (slice2) Executor memory: 42K bytes avg x 3 workers, 42K bytes max (seg0). Memory used: 128000kB - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Execution time: 2.496 ms (23 rows) diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index 7b594959a7fdcfb7b384b1ffe7f5dbb2e945008c..cc1f597ad4766ef74eec0c14f85f5d05619d7cb6 100755 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -1979,7 +1979,7 @@ select x from int8_tbl, extractq2(int8_tbl) f(x); -> Function Scan on f Output: f.x Function Call: int8_tbl.q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select x from int8_tbl, extractq2(int8_tbl) f(x); @@ -2009,7 +2009,7 @@ select x from int8_tbl, extractq2_2(int8_tbl) f(x); Output: ((int8_tbl.*).q2) -> Result Output: (int8_tbl.*).q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select x from int8_tbl, extractq2_2(int8_tbl) f(x); @@ -2044,7 +2044,7 @@ select x from int8_tbl, extractq2_append(int8_tbl) f(x); Output: (int8_tbl.*).q2 -> Result Output: (int8_tbl.*).q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select x from int8_tbl, extractq2_append(int8_tbl) f(x); diff --git a/src/test/regress/expected/rangefuncs_optimizer.out b/src/test/regress/expected/rangefuncs_optimizer.out index 71ae34f10271d3d64b44c1659be75bc1d2e98cf9..e75926ee25c0be4cddac372745f843b3c5365c60 100644 --- a/src/test/regress/expected/rangefuncs_optimizer.out +++ b/src/test/regress/expected/rangefuncs_optimizer.out @@ -1981,7 +1981,7 @@ select x from int8_tbl, extractq2(int8_tbl) f(x); -> Function Scan on f Output: f.x Function Call: int8_tbl.q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select x from int8_tbl, extractq2(int8_tbl) f(x); @@ -2011,7 +2011,7 @@ select x from int8_tbl, extractq2_2(int8_tbl) f(x); Output: ((int8_tbl.*).q2) -> Result Output: (int8_tbl.*).q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select x from int8_tbl, extractq2_2(int8_tbl) f(x); @@ -2046,7 +2046,7 @@ select x from int8_tbl, extractq2_append(int8_tbl) f(x); Output: (int8_tbl.*).q2 -> Result Output: (int8_tbl.*).q2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) select x from int8_tbl, extractq2_append(int8_tbl) f(x); diff --git a/src/test/regress/expected/rowtypes.out b/src/test/regress/expected/rowtypes.out index 3c9b75f9c831af570f936f205f46bead12416a77..7bce685b4b68ac33b2b2fbe2b8a7925712181039 100755 --- a/src/test/regress/expected/rowtypes.out +++ b/src/test/regress/expected/rowtypes.out @@ -246,7 +246,7 @@ order by thousand, tenthous; Merge Key: thousand, tenthous -> Index Only Scan using tenk1_thous_tenthous on tenk1 Index Cond: (ROW(thousand, tenthous) >= ROW(997, 5000)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) select thousand, tenthous from tenk1 @@ -296,7 +296,7 @@ select a,b from test_table where (a,b) > ('a','a') order by a,b; Merge Key: a, b -> Index Only Scan using test_table_a_b_idx on test_table Index Cond: (ROW(a, b) > ROW('a'::text, 'a'::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) select a,b from test_table where (a,b) > ('a','a') order by a,b; @@ -318,7 +318,7 @@ where i8 in (row(123,456)::int8_tbl, '(4567890123456789,123)'); Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on int8_tbl i8 Filter: (i8.* = ANY (ARRAY[ROW(123::bigint, 456::bigint)::int8_tbl, '(4567890123456789,123)'::int8_tbl])) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) select * from int8_tbl i8 @@ -634,7 +634,7 @@ select row_to_json(q) from -> Subquery Scan on q -> Index Only Scan using tenk1_thous_tenthous on tenk1 Index Cond: ((thousand = 42) AND (tenthous < 2000)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) select row_to_json(q) from @@ -715,7 +715,7 @@ select r, r is null as isnull, r is not null as isnotnull from r; Output: r.*, (r.* IS NULL), (r.* IS NOT NULL) -> Values Scan on "*VALUES*" Output: "*VALUES*".column1, "*VALUES*".column2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) with r(a,b) as diff --git a/src/test/regress/expected/rpt_joins.out b/src/test/regress/expected/rpt_joins.out index 0ca89ef9522cea9cab0074504a954f9d5550785b..7ac230f23e693d4c5b24d67eaaba5532ea024706 100644 --- a/src/test/regress/expected/rpt_joins.out +++ b/src/test/regress/expected/rpt_joins.out @@ -2144,7 +2144,7 @@ explain (costs off) select max(c1) from pg_class left join t_5628 on true; -> Materialize -> Gather Motion 1:1 (slice1; segments: 1) -> Seq Scan on t_5628 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) select max(c1) from pg_class left join t_5628 on true; diff --git a/src/test/regress/expected/select_views.out b/src/test/regress/expected/select_views.out index d3b65dee6d92eb16133ba8890491fd8a3b212090..e30d51df6cfe673ec7d555861c87cbf1a0c0e731 100644 --- a/src/test/regress/expected/select_views.out +++ b/src/test/regress/expected/select_views.out @@ -1340,7 +1340,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_normal WHERE f_leak(passwd); Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on customer Filter: (f_leak(passwd) AND (name = 'regress_alice'::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT * FROM my_property_secure WHERE f_leak(passwd); @@ -1358,7 +1358,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_secure WHERE f_leak(passwd); Filter: f_leak(my_property_secure.passwd) -> Seq Scan on customer Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- @@ -1386,7 +1386,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_normal WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); @@ -1408,7 +1408,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -1445,7 +1445,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_normal -> Hash -> Seq Scan on customer l_1 Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT * FROM my_credit_card_usage_secure @@ -1479,7 +1479,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_secure -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) -- diff --git a/src/test/regress/expected/select_views_1.out b/src/test/regress/expected/select_views_1.out index e8ffcf4a794cb8de2afcae46caae2877bf934ae4..96359aa08706994c428f23a4ee4a6ba720b93fad 100755 --- a/src/test/regress/expected/select_views_1.out +++ b/src/test/regress/expected/select_views_1.out @@ -1340,7 +1340,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_normal WHERE f_leak(passwd); Gather Motion 3:1 (slice1; segments: 3) -> Seq Scan on customer Filter: (f_leak(passwd) AND (name = 'regress_alice'::text)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT * FROM my_property_secure WHERE f_leak(passwd); @@ -1358,7 +1358,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_secure WHERE f_leak(passwd); Filter: f_leak(my_property_secure.passwd) -> Seq Scan on customer Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- @@ -1386,7 +1386,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_normal WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); @@ -1408,7 +1408,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -1445,7 +1445,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_normal -> Hash -> Seq Scan on customer l_1 Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT * FROM my_credit_card_usage_secure @@ -1479,7 +1479,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_secure -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) -- diff --git a/src/test/regress/expected/select_views_optimizer.out b/src/test/regress/expected/select_views_optimizer.out index dbf4b7f94e649a9e87079999ec2e1d2bc54418a4..db561f66bf75a69ddb0ac0da26a9bb3c70e438c1 100644 --- a/src/test/regress/expected/select_views_optimizer.out +++ b/src/test/regress/expected/select_views_optimizer.out @@ -1364,7 +1364,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_secure WHERE f_leak(passwd); Filter: f_leak(my_property_secure.passwd) -> Seq Scan on customer Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- @@ -1414,7 +1414,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -1451,7 +1451,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_normal -> Hash -> Seq Scan on customer l_1 Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT * FROM my_credit_card_usage_secure @@ -1485,7 +1485,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_secure -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) -- diff --git a/src/test/regress/expected/select_views_optimizer_1.out b/src/test/regress/expected/select_views_optimizer_1.out index b2e20b4ba6efa88b25f1ead159b02904cec79677..b23a474dfb6e21d407370feb8ca62002ea672edc 100644 --- a/src/test/regress/expected/select_views_optimizer_1.out +++ b/src/test/regress/expected/select_views_optimizer_1.out @@ -1364,7 +1364,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_property_secure WHERE f_leak(passwd); Filter: f_leak(my_property_secure.passwd) -> Seq Scan on customer Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- @@ -1414,7 +1414,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_secure WHERE f_leak(cnum); -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- @@ -1451,7 +1451,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_normal -> Hash -> Seq Scan on customer l_1 Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) SELECT * FROM my_credit_card_usage_secure @@ -1485,7 +1485,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM my_credit_card_usage_secure -> Hash -> Seq Scan on customer l Filter: (name = 'regress_alice'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) -- diff --git a/src/test/regress/expected/subselect.out b/src/test/regress/expected/subselect.out index 91da14231c9f521c681a370123cd9d36e3be6d88..3b841a9bac50056be2d8030b7ee07c62865b67b3 100755 --- a/src/test/regress/expected/subselect.out +++ b/src/test/regress/expected/subselect.out @@ -652,7 +652,7 @@ explain (verbose, costs off) InitPlan 2 (returns $1) -> Result Output: 'regression'::name - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) explain (verbose, costs off) @@ -667,7 +667,7 @@ explain (verbose, costs off) InitPlan 1 (returns $0) -> Result Output: random() - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) explain (verbose, costs off) @@ -685,7 +685,7 @@ explain (verbose, costs off) -> Result Output: 'regression'::name One-Time Filter: ("*VALUES*".column1 = "*VALUES*".column1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) explain (verbose, costs off) @@ -701,7 +701,7 @@ explain (verbose, costs off) -> Result Output: random() One-Time Filter: ("*VALUES*".column1 = "*VALUES*".column1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- @@ -781,7 +781,7 @@ select * from int4_tbl where Output: a.unique1 -> Seq Scan on public.tenk1 a Output: a.unique1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (28 rows) @@ -817,7 +817,7 @@ select * from int4_tbl o where (f1, f1) in Output: i.f1, (generate_series(1, 2) / 10) -> Seq Scan on public.int4_tbl i Output: i.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select * from int4_tbl o where (f1, f1) in diff --git a/src/test/regress/expected/subselect_gp.out b/src/test/regress/expected/subselect_gp.out index 5f0f2f7b05fd01af4c1b8ac37360850ea0e3a8ab..1cc73da34e85da59c5d5a0da4bccb4ea02a2924a 100644 --- a/src/test/regress/expected/subselect_gp.out +++ b/src/test/regress/expected/subselect_gp.out @@ -189,7 +189,7 @@ explain select * from csq_t1 where csq_t1.x >ALL (select csq_t2.x from csq_t2 wh -> Materialize (cost=0.00..1176.68 rows=29 width=4) -> Broadcast Motion 3:3 (slice16; segments: 3) (cost=0.00..1176.25 rows=29 width=4) -> Seq Scan on csq_t2_1_prt_4 csq_t2_1_prt_4_3 (cost=0.00..1176.25 rows=29 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (102 rows) select * from csq_t1 where csq_t1.x >ALL (select csq_t2.x from csq_t2 where csq_t2.y=csq_t1.y) order by 1; -- expected (4,2) @@ -222,7 +222,7 @@ explain select * from mrs_t1 where exists (select x from mrs_t1 where x < -1); -> Seq Scan on mrs_t1 mrs_t1_1 (cost=0.00..3.25 rows=1 width=0) Filter: x < (-1) -> Seq Scan on mrs_t1 (cost=0.00..3.20 rows=7 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select * from mrs_t1 where exists (select x from mrs_t1 where x < -1) order by 1; @@ -243,7 +243,7 @@ explain select * from mrs_t1 where exists (select x from mrs_t1 where x = 1); -> Seq Scan on mrs_t1 mrs_t1_1 (cost=0.00..3.25 rows=1 width=0) Filter: x = 1 -> Seq Scan on mrs_t1 (cost=0.00..3.20 rows=7 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select * from mrs_t1 where exists (select x from mrs_t1 where x = 1) order by 1; @@ -281,7 +281,7 @@ explain select * from mrs_t1 where x in (select x-95 from mrs_t1) or x < 5; -> Materialize (cost=0.00..3.35 rows=7 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.25 rows=7 width=4) -> Seq Scan on mrs_t1 mrs_t1_1 (cost=0.00..3.25 rows=7 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) select * from mrs_t1 where x in (select x-95 from mrs_t1) or x < 5 order by 1; @@ -341,7 +341,7 @@ explain select array(select x from csq_m1); -- no initplan InitPlan 1 (returns $0) -> Seq Scan on csq_m1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (5 rows) select array(select x from csq_m1); -- {1} @@ -358,7 +358,7 @@ explain select array(select x from csq_d1); -- initplan -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on csq_d1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) select array(select x from csq_d1); -- {1} @@ -446,7 +446,7 @@ explain select * from csq_m1 where x not in (select x from csq_d1) or x < -100; -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1.02 rows=2 width=4) -> Seq Scan on csq_d1 (cost=0.00..1.02 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select * from csq_m1 where x not in (select x from csq_d1) or x < -100; -- (3) @@ -469,7 +469,7 @@ explain select * from csq_d1 where x not in (select x from csq_m1) or x < -100; -> Broadcast Motion 1:3 (slice1) (cost=0.00..1.03 rows=3 width=4) -> Seq Scan on csq_m1 (cost=0.00..1.03 rows=3 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select * from csq_d1 where x not in (select x from csq_m1) or x < -100; -- (4) @@ -519,7 +519,7 @@ explain SELECT * FROM csq_r WHERE a IN (SELECT * FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE a IN (SELECT * FROM csq_f(csq_r.a)); @@ -538,7 +538,7 @@ explain SELECT * FROM csq_r WHERE a not IN (SELECT * FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE a not IN (SELECT * FROM csq_f(csq_r.a)); @@ -556,7 +556,7 @@ explain SELECT * FROM csq_r WHERE exists (SELECT * FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE exists (SELECT * FROM csq_f(csq_r.a)); @@ -575,7 +575,7 @@ explain SELECT * FROM csq_r WHERE not exists (SELECT * FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE not exists (SELECT * FROM csq_f(csq_r.a)); @@ -594,7 +594,7 @@ explain SELECT * FROM csq_r WHERE a > (SELECT csq_f FROM csq_f(csq_r.a) limit 1) -> Limit (cost=0.00..0.01 rows=1 width=4) -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) SELECT * FROM csq_r WHERE a > (SELECT csq_f FROM csq_f(csq_r.a) limit 1); @@ -612,7 +612,7 @@ explain SELECT * FROM csq_r WHERE a < ANY (SELECT csq_f FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE a < ANY (SELECT csq_f FROM csq_f(csq_r.a)); @@ -630,7 +630,7 @@ explain SELECT * FROM csq_r WHERE a <= ALL (SELECT csq_f FROM csq_f(csq_r.a)); SubPlan 1 -> Function Scan on csq_f (cost=0.00..0.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (7 rows) SELECT * FROM csq_r WHERE a <= ALL (SELECT csq_f FROM csq_f(csq_r.a)); @@ -653,7 +653,7 @@ explain SELECT * FROM csq_r WHERE a IN (SELECT csq_f FROM csq_f(csq_r.a),csq_r); -> Materialize (cost=0.00..1.01 rows=1 width=0) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=0) -> Seq Scan on csq_r csq_r_1 (cost=0.00..1.01 rows=1 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) SELECT * FROM csq_r WHERE a IN (SELECT csq_f FROM csq_f(csq_r.a),csq_r); @@ -694,7 +694,7 @@ explain select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 Group By: t1.t -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 where t0.t=t1.t); @@ -726,7 +726,7 @@ explain select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 Group By: t1.v::text -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (16 rows) select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 where t0.t=t1.v); @@ -760,7 +760,7 @@ explain select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 Group By: t1.n -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=7) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (18 rows) select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 where t0.n=t1.n); @@ -794,7 +794,7 @@ explain select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 Group By: t1.n + 1::numeric -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=7) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (18 rows) select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 where t0.n + 1=t1.n + 1); @@ -828,7 +828,7 @@ explain select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 Group By: (t1.i + 1)::numeric -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (18 rows) select * from csq_pullup t0 where 1= (select count(*) from csq_pullup t1 where t0.n + 1=t1.i + 1); @@ -856,7 +856,7 @@ explain select * from csq_pullup t0 where not exists (select 1 from csq_pullup t -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=4) Filter: t IS NOT NULL AND i = 1 Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (9 rows) select * from csq_pullup t0 where not exists (select 1 from csq_pullup t1 where t0.t=t1.t and t1.i = 1); @@ -881,7 +881,7 @@ explain select * from csq_pullup t0 where not exists (select 1 from csq_pullup t -> Seq Scan on csq_pullup t1 (cost=0.00..1.01 rows=1 width=4) Filter: (i + 1) IS NOT NULL Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (10 rows) select * from csq_pullup t0 where not exists (select 1 from csq_pullup t1 where t0.i=t1.i + 1); @@ -913,7 +913,7 @@ explain select * from subselect_t1 where x in (select y from subselect_t2); -> Hash (cost=1.03..1.03 rows=1 width=4) -> Seq Scan on subselect_t2 (cost=0.00..1.03 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) select * from subselect_t1 where x in (select y from subselect_t2); @@ -937,7 +937,7 @@ explain select * from subselect_t1 where x in (select y from subselect_t2 union -> Append (cost=0.00..4.06 rows=2 width=4) -> Seq Scan on subselect_t2 (cost=0.00..2.03 rows=1 width=4) -> Seq Scan on subselect_t2 subselect_t2_1 (cost=0.00..2.03 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) select * from subselect_t1 where x in (select y from subselect_t2 union all select y from subselect_t2); @@ -959,7 +959,7 @@ explain select count(*) from subselect_t1 where x in (select y from subselect_t2 -> Hash (cost=1.03..1.03 rows=1 width=4) -> Seq Scan on subselect_t2 (cost=0.00..1.03 rows=1 width=4) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (10 rows) select count(*) from subselect_t1 where x in (select y from subselect_t2); @@ -984,7 +984,7 @@ explain select count(*) from subselect_t1 where x in (select y from subselect_t2 -> Append (cost=0.00..4.06 rows=2 width=4) -> Seq Scan on subselect_t2 (cost=0.00..2.03 rows=1 width=4) -> Seq Scan on subselect_t2 subselect_t2_1 (cost=0.00..2.03 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) select count(*) from subselect_t1 where x in (select y from subselect_t2 union all select y from subselect_t2); @@ -1063,7 +1063,7 @@ explain select * from t1 where a=1 and a=2 and a > (select t2.b from t2); Result (cost=1063.00..1063.01 rows=1 width=0) One-Time Filter: false Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) explain select * from t1 where a=1 and a=2 and a > (select t2.b from t2) @@ -1073,7 +1073,7 @@ select * from t1 where a=1 and a=2 and a > (select t2.b from t2); ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) select * from t1 where a=1 and a=2 and a > (select t2.b from t2) @@ -1091,7 +1091,7 @@ where t1.a = foo.a; Result (cost=1063.00..1063.01 rows=1 width=0) One-Time Filter: false Settings: optimizer=off; optimizer_nestloop_factor=1; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (4 rows) select * from t1, @@ -1122,7 +1122,7 @@ explain select 1 from t1 where a in (select b from t2 where a = 1 limit 1); -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on t2 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer=off; optimizer_nestloop_factor=1; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (14 rows) explain select 1 from t1 where a in (select b from t2 where a = 1 offset 1); @@ -1140,7 +1140,7 @@ explain select 1 from t1 where a in (select b from t2 where a = 1 offset 1); -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on t2 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer=off; optimizer_nestloop_factor=1; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) select 1 from t1 where a in (select b from t2 where a = 1 limit 1); @@ -1229,7 +1229,7 @@ from -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=0) -> Seq Scan on t1_mpp_24563 t1 (cost=0.00..1.01 rows=1 width=0) Settings: optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (17 rows) drop table t1_mpp_24563; @@ -1281,7 +1281,7 @@ explain SELECT cc, sum(nn) over() FROM v1_mpp_20470; -> Materialize (cost=0.00..683.98 rows=16 width=4) -> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..683.75 rows=47 width=4) -> Seq Scan on t_mpp_20470_ptr2 a_1 (cost=0.00..683.75 rows=16 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (20 rows) drop view v1_mpp_20470; @@ -1447,7 +1447,7 @@ EXPLAIN SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.24 rows=3 width=4) Hash Key: subselect_tbl_1.f2 -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) EXPLAIN SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL @@ -1470,7 +1470,7 @@ EXPLAIN SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=4) -> Hash (cost=3.08..3.08 rows=3 width=4) -> Seq Scan on subselect_tbl subselect_tbl_2 (cost=0.00..3.08 rows=3 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) EXPLAIN SELECT '' AS three, f1, f2 @@ -1490,7 +1490,7 @@ EXPLAIN SELECT '' AS three, f1, f2 -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.36 rows=7 width=12) -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=12) Filter: f3 IS NOT NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) ANALYZE tenk1; @@ -1514,7 +1514,7 @@ WHERE (a.unique1,b.unique2) IN (SELECT unique1,unique2 FROM tenk1 c); -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..387.00 rows=3334 width=244) Hash Key: b.unique2 -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=244) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) -- Correlated subselects @@ -1534,7 +1534,7 @@ EXPLAIN SELECT '' AS six, f1 AS "Correlated Field", f2 AS "Second Field" -> Seq Scan on subselect_tbl (cost=0.00..1.01 rows=1 width=8) Filter: f1 = f2 Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (12 rows) EXPLAIN SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field" @@ -1555,7 +1555,7 @@ EXPLAIN SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field" Hash Key: subselect_tbl.f2 -> Seq Scan on subselect_tbl (cost=0.00..1.01 rows=1 width=12) Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) EXPLAIN SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field" @@ -1576,7 +1576,7 @@ EXPLAIN SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field" -> Seq Scan on subselect_tbl (cost=0.00..1.01 rows=1 width=12) Filter: f2 = f3::integer Settings: optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (13 rows) EXPLAIN SELECT '' AS five, f1 AS "Correlated Field" @@ -1597,7 +1597,7 @@ EXPLAIN SELECT '' AS five, f1 AS "Correlated Field" Hash Key: subselect_tbl_1.f2 -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=12) Filter: f3 IS NOT NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- @@ -1621,7 +1621,7 @@ EXPLAIN select count(*) from -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..387.00 rows=3334 width=4) Hash Key: b.hundred -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) EXPLAIN select count(distinct ss.ten) from @@ -1643,7 +1643,7 @@ EXPLAIN select count(distinct ss.ten) from -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..387.00 rows=3334 width=4) Hash Key: b.hundred -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) EXPLAIN select count(*) from @@ -1663,7 +1663,7 @@ EXPLAIN select count(*) from -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..387.00 rows=3334 width=4) Hash Key: b.hundred -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) EXPLAIN select count(distinct ss.ten) from @@ -1685,7 +1685,7 @@ EXPLAIN select count(distinct ss.ten) from -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..387.00 rows=3334 width=4) Hash Key: b.hundred -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- @@ -1711,7 +1711,7 @@ EXPLAIN SELECT EXISTS(SELECT * FROM tenk1 WHERE tenk1.unique1 = tenk2.unique1) F -> Materialize (cost=0.00..237.08 rows=3335 width=4) -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..187.05 rows=3335 width=4) -> Seq Scan on tenk1 tenk1_1 (cost=0.00..187.05 rows=3335 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) SELECT EXISTS(SELECT * FROM tenk1 WHERE tenk1.unique1 = tenk2.unique1) FROM tenk2 LIMIT 1; @@ -1765,7 +1765,7 @@ EXPLAIN SELECT * FROM dedup_test1 INNER JOIN dedup_test2 ON dedup_test1.a= dedup -> Seq Scan on dedup_test3_1_prt_1 (cost=0.00..1.10 rows=4 width=4) -> Hash (cost=2.04..2.04 rows=2 width=8) -> Seq Scan on dedup_test2 (cost=0.00..2.04 rows=2 width=8) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (14 rows) SELECT * FROM dedup_test1 INNER JOIN dedup_test2 ON dedup_test1.a= dedup_test2.e WHERE (a) IN (SELECT a FROM dedup_test3); @@ -1780,7 +1780,7 @@ EXPLAIN SELECT * FROM dedup_test3, dedup_test1 WHERE c = 7 AND dedup_test3.b IN ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN SELECT * FROM dedup_test3, dedup_test1 WHERE c = 7 AND dedup_test3.b IN (SELECT a FROM dedup_test1); @@ -1788,7 +1788,7 @@ EXPLAIN SELECT * FROM dedup_test3, dedup_test1 WHERE c = 7 AND dedup_test3.b IN ------------------------------------------ Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) EXPLAIN SELECT * FROM dedup_test3, dedup_test1 WHERE c = 7 AND EXISTS (SELECT b FROM dedup_test1) AND dedup_test3.b IN (SELECT b FROM dedup_test1); @@ -1796,7 +1796,7 @@ EXPLAIN SELECT * FROM dedup_test3, dedup_test1 WHERE c = 7 AND EXISTS (SELECT b ------------------------------------------ Result (cost=1.53..0.54 rows=1 width=0) One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (3 rows) -- start_ignore diff --git a/src/test/regress/expected/subselect_gp2.out b/src/test/regress/expected/subselect_gp2.out index 10120f958a885c4adf9352b3fb3ca14466b4e728..810edbef1446b180df6eebc729707da5c6d38086 100644 --- a/src/test/regress/expected/subselect_gp2.out +++ b/src/test/regress/expected/subselect_gp2.out @@ -54,7 +54,7 @@ and usename='xxx' and datname='xxx'; -> Hash -> Seq Scan on pg_authid u Filter: (rolname = 'xxx'::name) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- Planner test: constant folding in subplan testexpr produces no error diff --git a/src/test/regress/expected/subselect_gp_indexes.out b/src/test/regress/expected/subselect_gp_indexes.out index a211110ac084ece9c04562f5c3316c60d945e2f3..5698132bf0632d421393f5fb717b0300b2b2b992 100644 --- a/src/test/regress/expected/subselect_gp_indexes.out +++ b/src/test/regress/expected/subselect_gp_indexes.out @@ -85,7 +85,7 @@ explain select (select id1 from (select * from choose_seqscan_t2) foo where id2= -> Materialize (cost=0.00..3.63 rows=1 width=4) -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.62 rows=1 width=4) -> Seq Scan on choose_seqscan_t2 (cost=0.00..3.62 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- then, a sequential scan is chosen because I need a motion to move choose_seqscan_t2 @@ -142,7 +142,7 @@ explain select (select id1 from (select * from choose_indexscan_t2) foo where id SubPlan 1 (slice1; segments: 1) -> Index Scan using choose_indexscan_t2_idx on choose_indexscan_t2 (cost=0.14..2.16 rows=1 width=4) Index Cond: (id2 = choose_indexscan_t1.id2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- then an indexscan is chosen because it is correct to do this on a replicated table since no motion is required diff --git a/src/test/regress/expected/subselect_gp_optimizer.out b/src/test/regress/expected/subselect_gp_optimizer.out index f75031143cc97797c4bffc146c282c74c542f6e0..1390ff3a262997e2b74d603b4a91d3a3fd892bbd 100644 --- a/src/test/regress/expected/subselect_gp_optimizer.out +++ b/src/test/regress/expected/subselect_gp_optimizer.out @@ -276,7 +276,7 @@ explain select array(select x from csq_m1); -- no initplan Result (cost=1.00..1.01 rows=1 width=0) InitPlan 1 (returns $0) -> Seq Scan on csq_m1 (cost=0.00..1.00 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) select array(select x from csq_m1); -- {1} @@ -293,7 +293,7 @@ explain select array(select x from csq_d1); -- initplan -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on csq_d1 (cost=0.00..1.01 rows=1 width=4) Settings: optimizer=on; optimizer_segments=3 - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (6 rows) select array(select x from csq_d1); -- {1} @@ -1490,7 +1490,7 @@ EXPLAIN SELECT '' AS three, f1, f2 -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..3.36 rows=7 width=12) -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=12) Filter: f3 IS NOT NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) ANALYZE tenk1; @@ -1514,7 +1514,7 @@ WHERE (a.unique1,b.unique2) IN (SELECT unique1,unique2 FROM tenk1 c); -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..387.00 rows=3334 width=244) Hash Key: b.unique2 -> Seq Scan on tenk1 b (cost=0.00..187.00 rows=3334 width=244) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) -- Correlated subselects @@ -1597,7 +1597,7 @@ EXPLAIN SELECT '' AS five, f1 AS "Correlated Field" Hash Key: subselect_tbl_1.f2 -> Seq Scan on subselect_tbl subselect_tbl_1 (cost=0.00..3.08 rows=3 width=12) Filter: f3 IS NOT NULL - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- diff --git a/src/test/regress/expected/subselect_optimizer.out b/src/test/regress/expected/subselect_optimizer.out index acdfe75e04776ae1b81589d19e6b41fbc42e8d63..a45f61b173de18d3ae837a0a9ae4bb7940aedda5 100644 --- a/src/test/regress/expected/subselect_optimizer.out +++ b/src/test/regress/expected/subselect_optimizer.out @@ -694,7 +694,7 @@ explain (verbose, costs off) InitPlan 1 (returns $0) -> Result Output: random() - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) explain (verbose, costs off) @@ -732,7 +732,7 @@ explain (verbose, costs off) -> Result Output: random() One-Time Filter: ("*VALUES*".column1 = "*VALUES*".column1) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- @@ -847,7 +847,7 @@ select * from int4_tbl o where (f1, f1) in Output: i.f1, (generate_series(1, 2) / 10) -> Seq Scan on public.int4_tbl i Output: i.f1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) select * from int4_tbl o where (f1, f1) in diff --git a/src/test/regress/expected/union.out b/src/test/regress/expected/union.out index 671afeeef54fbee64597cdee1185f4075384a680..3c407802c12aa0d0fd0bc18bfcfab1ed0195d6c2 100755 --- a/src/test/regress/expected/union.out +++ b/src/test/regress/expected/union.out @@ -484,7 +484,7 @@ explain (costs off) Index Cond: ((a || b) = 'ab'::text) -> Index Only Scan using t2_pkey on t2 Index Cond: (ab = 'ab'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) explain (costs off) @@ -507,7 +507,7 @@ explain (costs off) Index Cond: ((a || b) = 'ab'::text) -> Index Only Scan using t2_pkey on t2 Index Cond: (ab = 'ab'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- @@ -543,7 +543,7 @@ explain (costs off) -> Seq Scan on t1c -> Seq Scan on t2 -> Seq Scan on t2c - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM @@ -586,7 +586,7 @@ select event_id -> Seq Scan on events -> Seq Scan on events_child -> Seq Scan on other_events - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) drop table events_child, events, other_events; @@ -603,7 +603,7 @@ explain (costs off) Gather Motion 3:1 (slice1; segments: 3) -> Append -> Seq Scan on tenk1 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) -- Test that we push quals into UNION sub-selects only when it's safe @@ -623,7 +623,7 @@ WHERE x < 4; -> Result -> Result One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) SELECT * FROM @@ -654,7 +654,7 @@ ORDER BY x; -> Append -> Result -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) SELECT * FROM @@ -689,7 +689,7 @@ WHERE x > 3; InitPlan 1 (returns $0) -> Result -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM @@ -725,7 +725,7 @@ select * from -> Append -> Seq Scan on t3 a -> Seq Scan on t3 b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) select * from diff --git a/src/test/regress/expected/union_gp.out b/src/test/regress/expected/union_gp.out index 79664b692b0c7b9e553832edeec12ddae7ac22f8..534729458a57b36def0c565b2c3727fcf6a60248 100644 --- a/src/test/regress/expected/union_gp.out +++ b/src/test/regress/expected/union_gp.out @@ -250,7 +250,7 @@ union -> Limit (cost=0.00..1.01 rows=1 width=4) -> Seq Scan on test1 (cost=0.00..1.01 rows=1 width=4) -> External Scan on test2 (cost=0.00..0.00 rows=1 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- diff --git a/src/test/regress/expected/union_optimizer.out b/src/test/regress/expected/union_optimizer.out index 3512b7e8b3e4262e50352c99af660291293f584b..0367af6e34fd4497db07c8cdd846c8d4bee6e96f 100644 --- a/src/test/regress/expected/union_optimizer.out +++ b/src/test/regress/expected/union_optimizer.out @@ -553,7 +553,7 @@ explain (costs off) -> Seq Scan on t1c -> Seq Scan on t2 -> Seq Scan on t2c - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM @@ -597,7 +597,7 @@ select event_id -> Seq Scan on events -> Seq Scan on events_child -> Seq Scan on other_events - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) drop table events_child, events, other_events; @@ -711,7 +711,7 @@ WHERE x > 3; InitPlan 1 (returns $0) -> Result -> Result - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) SELECT * FROM diff --git a/src/test/regress/expected/updatable_views.out b/src/test/regress/expected/updatable_views.out index 59bdf77d8e349581f01812a134dcaa4fc9d527b4..05fd1dd3ac8ad0db4eb951fbb018286466be60b5 100644 --- a/src/test/regress/expected/updatable_views.out +++ b/src/test/regress/expected/updatable_views.out @@ -349,7 +349,7 @@ EXPLAIN (costs off) UPDATE rw_view1 SET a=6 WHERE a=5; -> Split -> Seq Scan on base_tbl Filter: ((a > 0) AND (a = 5)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) EXPLAIN (costs off) DELETE FROM rw_view1 WHERE a=5; @@ -358,7 +358,7 @@ EXPLAIN (costs off) DELETE FROM rw_view1 WHERE a=5; Delete on base_tbl -> Seq Scan on base_tbl Filter: ((a > 0) AND (a = 5)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) DROP TABLE base_tbl CASCADE; @@ -424,7 +424,7 @@ EXPLAIN (costs off) UPDATE rw_view2 SET aaa=5 WHERE aaa=4; -> Split -> Seq Scan on base_tbl Filter: ((a < 10) AND (a > 0) AND (a = 4)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) EXPLAIN (costs off) DELETE FROM rw_view2 WHERE aaa=4; @@ -433,7 +433,7 @@ EXPLAIN (costs off) DELETE FROM rw_view2 WHERE aaa=4; Delete on base_tbl -> Seq Scan on base_tbl Filter: ((a < 10) AND (a > 0) AND (a = 4)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) DROP TABLE base_tbl CASCADE; @@ -624,7 +624,7 @@ EXPLAIN (costs off) UPDATE rw_view2 SET a=3 WHERE a=2; Filter: ((rw_view1.a < 10) AND (rw_view1.a = 2)) -> Seq Scan on base_tbl base_tbl_1 Filter: (a > 0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) EXPLAIN (costs off) DELETE FROM rw_view2 WHERE a=2; @@ -639,7 +639,7 @@ EXPLAIN (costs off) DELETE FROM rw_view2 WHERE a=2; Filter: ((rw_view1.a < 10) AND (rw_view1.a = 2)) -> Seq Scan on base_tbl base_tbl_1 Filter: (a > 0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) DROP TABLE base_tbl CASCADE; @@ -884,7 +884,7 @@ UPDATE rw_view1 v SET bb='Updated row 2' WHERE rw_view1_aa(v)=2 -> Update on base_tbl -> Seq Scan on base_tbl Filter: (a = 2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) DROP TABLE base_tbl CASCADE; @@ -1084,7 +1084,7 @@ EXPLAIN (verbose, costs off) UPDATE rw_view1 SET b = b + 1 RETURNING *; Output: base_tbl.a, base_tbl.b -> Seq Scan on public.base_tbl Output: base_tbl.a, (base_tbl.b + 1), base_tbl.ctid, base_tbl.gp_segment_id - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (8 rows) @@ -1618,7 +1618,7 @@ EXPLAIN (costs off) INSERT INTO rw_view1 VALUES (5); SubPlan 2 (slice0; segments: 1) -> Materialize -> Seq Scan on ref_tbl r_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) EXPLAIN (costs off) UPDATE rw_view1 SET a = a + 5; @@ -1641,7 +1641,7 @@ EXPLAIN (costs off) UPDATE rw_view1 SET a = a + 5; SubPlan 2 (slice1; segments: 3) -> Materialize -> Seq Scan on ref_tbl r_2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) DROP TABLE base_tbl, ref_tbl CASCADE; @@ -1864,7 +1864,7 @@ EXPLAIN (costs off) SELECT * FROM rw_view1 WHERE snoop(person); Filter: snoop(rw_view1.person) -> Seq Scan on base_tbl Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) EXPLAIN (costs off) UPDATE rw_view1 SET person=person WHERE snoop(person); @@ -1875,7 +1875,7 @@ EXPLAIN (costs off) UPDATE rw_view1 SET person=person WHERE snoop(person); Filter: snoop(base_tbl.person) -> Seq Scan on base_tbl base_tbl_2 Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) EXPLAIN (costs off) DELETE FROM rw_view1 WHERE NOT snoop(person); @@ -1886,7 +1886,7 @@ EXPLAIN (costs off) DELETE FROM rw_view1 WHERE NOT snoop(person); Filter: (NOT snoop(base_tbl.person)) -> Seq Scan on base_tbl base_tbl_2 Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- security barrier view on top of security barrier view @@ -1948,7 +1948,7 @@ EXPLAIN (costs off) SELECT * FROM rw_view2 WHERE snoop(person); Filter: snoop(rw_view1.person) -> Seq Scan on base_tbl Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) EXPLAIN (costs off) UPDATE rw_view2 SET person=person WHERE snoop(person); @@ -1961,7 +1961,7 @@ EXPLAIN (costs off) UPDATE rw_view2 SET person=person WHERE snoop(person); Filter: snoop(base_tbl_2.person) -> Seq Scan on base_tbl base_tbl_3 Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) EXPLAIN (costs off) DELETE FROM rw_view2 WHERE NOT snoop(person); @@ -1974,7 +1974,7 @@ EXPLAIN (costs off) DELETE FROM rw_view2 WHERE NOT snoop(person); Filter: snoop(base_tbl_2.person) -> Seq Scan on base_tbl base_tbl_3 Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) DROP TABLE base_tbl CASCADE; @@ -2011,7 +2011,7 @@ EXPLAIN (costs off) DELETE FROM rw_view1 WHERE id = 1 AND snoop(data); Filter: snoop(base_tbl.data) -> Seq Scan on base_tbl base_tbl_2 Filter: ((NOT deleted) AND (id = 1)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) DELETE FROM rw_view1 WHERE id = 1 AND snoop(data); @@ -2026,7 +2026,7 @@ EXPLAIN (costs off) INSERT INTO rw_view1 VALUES (2, 'New row 2'); Filter: (id = 2) -> Result One-Time Filter: ($0 IS NOT TRUE) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Update on base_tbl InitPlan 1 (returns $0) (slice2) @@ -2039,7 +2039,7 @@ EXPLAIN (costs off) INSERT INTO rw_view1 VALUES (2, 'New row 2'); One-Time Filter: $0 -> Seq Scan on base_tbl Filter: (id = 2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (21 rows) INSERT INTO rw_view1 VALUES (2, 'New row 2'); @@ -2101,7 +2101,7 @@ UPDATE v1 SET a=100 WHERE snoop(a) AND leakproof(a) AND a = 3; Result Output: 100, t1.b, t1.c, t1.a, t1.ctid, t1.gp_segment_id One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) UPDATE v1 SET a=100 WHERE snoop(a) AND leakproof(a) AND a = 3; @@ -2208,7 +2208,7 @@ UPDATE v1 SET a=a+1 WHERE snoop(a) AND leakproof(a) AND a = 8; -> Seq Scan on public.t111 t111_4 Output: t111_4.ctid, t111_4.tableoid, t111_4.a Filter: ((t111_4.a > 5) AND (t111_4.a = 8)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (90 rows) UPDATE v1 SET a=a+1 WHERE snoop(a) AND leakproof(a) AND a = 8; diff --git a/src/test/regress/expected/updatable_views_optimizer.out b/src/test/regress/expected/updatable_views_optimizer.out index 6f74387c6843ae2eb636a500e46923a413243d11..f2621e263ae3b470fc7b871fb37700dde46a98ac 100644 --- a/src/test/regress/expected/updatable_views_optimizer.out +++ b/src/test/regress/expected/updatable_views_optimizer.out @@ -901,7 +901,7 @@ UPDATE rw_view1 v SET bb='Updated row 2' WHERE rw_view1_aa(v)=2 -> Update on base_tbl -> Seq Scan on base_tbl Filter: (a = 2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) DROP TABLE base_tbl CASCADE; @@ -1101,7 +1101,7 @@ EXPLAIN (verbose, costs off) UPDATE rw_view1 SET b = b + 1 RETURNING *; Output: base_tbl.a, base_tbl.b -> Seq Scan on public.base_tbl Output: base_tbl.a, (base_tbl.b + 1), base_tbl.ctid, base_tbl.gp_segment_id - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer Settings: optimizer=off (8 rows) @@ -1637,7 +1637,7 @@ EXPLAIN (costs off) INSERT INTO rw_view1 VALUES (5); SubPlan 2 (slice0; segments: 1) -> Materialize -> Seq Scan on ref_tbl r_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) EXPLAIN (costs off) UPDATE rw_view1 SET a = a + 5; @@ -1660,7 +1660,7 @@ EXPLAIN (costs off) UPDATE rw_view1 SET a = a + 5; SubPlan 2 (slice1; segments: 3) -> Materialize -> Seq Scan on ref_tbl r_2 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (18 rows) DROP TABLE base_tbl, ref_tbl CASCADE; @@ -1882,7 +1882,7 @@ EXPLAIN (costs off) SELECT * FROM rw_view1 WHERE snoop(person); Filter: snoop(rw_view1.person) -> Seq Scan on base_tbl Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) EXPLAIN (costs off) UPDATE rw_view1 SET person=person WHERE snoop(person); @@ -1964,7 +1964,7 @@ EXPLAIN (costs off) SELECT * FROM rw_view2 WHERE snoop(person); Filter: snoop(rw_view1.person) -> Seq Scan on base_tbl Filter: (visibility = 'public'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (8 rows) EXPLAIN (costs off) UPDATE rw_view2 SET person=person WHERE snoop(person); @@ -2025,7 +2025,7 @@ EXPLAIN (costs off) DELETE FROM rw_view1 WHERE id = 1 AND snoop(data); Filter: snoop(base_tbl.data) -> Seq Scan on base_tbl base_tbl_2 Filter: ((NOT deleted) AND (id = 1)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) DELETE FROM rw_view1 WHERE id = 1 AND snoop(data); @@ -2132,7 +2132,7 @@ UPDATE v1 SET a=100 WHERE snoop(a) AND leakproof(a) AND a = 3; Result Output: 100, t1.b, t1.c, t1.a, t1.ctid, t1.gp_segment_id One-Time Filter: false - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) UPDATE v1 SET a=100 WHERE snoop(a) AND leakproof(a) AND a = 3; @@ -2239,7 +2239,7 @@ UPDATE v1 SET a=a+1 WHERE snoop(a) AND leakproof(a) AND a = 8; -> Seq Scan on public.t111 t111_4 Output: t111_4.ctid, t111_4.tableoid, t111_4.a Filter: ((t111_4.a > 5) AND (t111_4.a = 8)) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (90 rows) UPDATE v1 SET a=a+1 WHERE snoop(a) AND leakproof(a) AND a = 8; diff --git a/src/test/regress/expected/update.out b/src/test/regress/expected/update.out index 31997b13b71f49ab818fbc3bd2557d1403e2c2df..ea887239cd22c34a3be708c811866de9d3811465 100755 --- a/src/test/regress/expected/update.out +++ b/src/test/regress/expected/update.out @@ -343,7 +343,7 @@ EXPLAIN (COSTS OFF ) UPDATE tab3 SET C1 = C1 + 1, C5 = C5+1; Hash Key: ((c1 + 1)), c2, c3 -> Split -> Seq Scan on tab3 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- clean up diff --git a/src/test/regress/expected/update_gp.out b/src/test/regress/expected/update_gp.out index f978f11a6244ef4e3f43a470fce256f157f57d7c..c1aea2036fa9897403fa7ab55e695168f2326aa4 100644 --- a/src/test/regress/expected/update_gp.out +++ b/src/test/regress/expected/update_gp.out @@ -95,7 +95,7 @@ explain (costs off) update base_tbl set a=a+1; -> Seq Scan on child_a -> Explicit Redistribute Motion 3:3 (slice3; segments: 3) -> Seq Scan on child_b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) update base_tbl set a = 5; @@ -154,7 +154,7 @@ WHERE t1.user_vie_project_code_pk = keo1.user_vie_project_code_pk; -> Broadcast Motion 3:3 (slice4; segments: 3) -> Seq Scan on keo1 a Filter: ((user_vie_fiscal_year_period_sk)::text = $2) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (30 rows) UPDATE keo1 SET user_vie_act_cntr_marg_cum = 234.682 FROM @@ -194,7 +194,7 @@ EXPLAIN (COSTS OFF) DELETE FROM keo5 WHERE x IN (SELECT x FROM keo5 WHERE EXISTS -> HashAggregate Group Key: keo5_1.x -> Seq Scan on keo5 keo5_1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (17 rows) DELETE FROM keo5 WHERE x IN (SELECT x FROM keo5 WHERE EXISTS (SELECT x FROM keo5 WHERE x < 2)); @@ -503,7 +503,7 @@ explain update nosplitupdate set a=0 where a=1 and a<1; -> Result (cost=0.00..0.01 rows=1 width=0) One-Time Filter: false Planning time: 0.271 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (5 rows) -- test split-update when split-node's flow is entry @@ -526,7 +526,7 @@ explain update tsplit_entry set c = s.a from (select count(*) as a from gp_segme -> Aggregate (cost=1.00..1.01 rows=1 width=8) -> Seq Scan on gp_segment_configuration (cost=0.00..1.00 rows=1 width=0) Planning time: 1.088 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) update tsplit_entry set c = s.a from (select count(*) as a from gp_segment_configuration) s; diff --git a/src/test/regress/expected/update_gp_optimizer.out b/src/test/regress/expected/update_gp_optimizer.out index 81bf389cfac7d3336a88587d2ef461304722f564..7ee141161f0c67c85c72fb199ea0a9231d9c5e17 100644 --- a/src/test/regress/expected/update_gp_optimizer.out +++ b/src/test/regress/expected/update_gp_optimizer.out @@ -95,7 +95,7 @@ explain (costs off) update base_tbl set a=a+1; -> Seq Scan on child_a -> Explicit Redistribute Motion 3:3 (slice3; segments: 3) -> Seq Scan on child_b - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) update base_tbl set a = 5; @@ -535,7 +535,7 @@ explain update tsplit_entry set c = s.a from (select count(*) as a from gp_segme -> Aggregate (cost=1.00..1.01 rows=1 width=8) -> Seq Scan on gp_segment_configuration (cost=0.00..1.00 rows=1 width=0) Planning time: 13.063 ms - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) update tsplit_entry set c = s.a from (select count(*) as a from gp_segment_configuration) s; diff --git a/src/test/regress/expected/window.out b/src/test/regress/expected/window.out index 6971c289b5b958b7fcef2a2f65bd6c35b32712dd..2c06e60a7c7c824eb6ed3d076db77baf759272d6 100644 --- a/src/test/regress/expected/window.out +++ b/src/test/regress/expected/window.out @@ -638,7 +638,7 @@ select first_value(max(x)) over (), y -> HashAggregate Group Key: (tenk1.ten + tenk1.four) -> Seq Scan on tenk1 - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- test non-default frame specifications @@ -1091,7 +1091,7 @@ WHERE depname = 'sales'; Sort Key: empsalary.empno, empsalary.enroll_date -> Seq Scan on empsalary Filter: ((depname)::text = 'sales'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) -- Test Sort node reordering @@ -1112,7 +1112,7 @@ FROM empsalary; -> Sort Sort Key: depname, salary, enroll_date, empno -> Seq Scan on empsalary - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (11 rows) -- Test pushdown of quals into a subquery containing window functions @@ -1135,7 +1135,7 @@ WHERE depname = 'sales'; Sort Key: (((empsalary.depname)::text || 'A'::text)) -> Seq Scan on empsalary Filter: ((depname)::text = 'sales'::text) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) -- pushdown is unsafe because there's a PARTITION BY clause without depname: @@ -1162,7 +1162,7 @@ WHERE depname = 'sales'; -> Sort Sort Key: empsalary.depname -> Seq Scan on empsalary - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (15 rows) -- pushdown is unsafe because the subquery contains window functions and the qual is volatile: @@ -1187,7 +1187,7 @@ WHERE depname = 'sales' OR RANDOM() > 0.5; -> Sort Sort Key: (((empsalary.depname)::text || 'A'::text)), empsalary.depname -> Seq Scan on empsalary - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) -- cleanup diff --git a/src/test/regress/expected/with_clause.out b/src/test/regress/expected/with_clause.out index 3ec9b9b8a0bf8ca59a55350696c4f704c9ef47e4..1493c3914034596782bef33cad6b1679aedb1eaa 100644 --- a/src/test/regress/expected/with_clause.out +++ b/src/test/regress/expected/with_clause.out @@ -2100,7 +2100,7 @@ explain (costs off) with t as (select * from with_test1) select * from t where i Gather Motion 1:1 (slice1; segments: 1) -> Seq Scan on with_test1 Filter: (i = 10) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) -- Test to validate an old bug which caused incorrect results when a subquery diff --git a/src/test/regress/init_file b/src/test/regress/init_file index 5470522b1b59b954f2477dc10fe13360c5dcdff8..212320a44a092d837e728c92401d612775a2d9c8 100644 --- a/src/test/regress/init_file +++ b/src/test/regress/init_file @@ -17,7 +17,7 @@ m/^WARNING: gpmon:.*Connection refused.*/ m/^ Optimizer status:.*/ m/^ Optimizer: PQO version .*/ -m/^ Optimizer: legacy query optimizer/ +m/^ Optimizer: Postgres query optimizer/ m/^ Settings:.*/ # There are a number of NOTICE and HINT messages around table distribution, diff --git a/src/test/regress/output/qp_gist_indexes2.source b/src/test/regress/output/qp_gist_indexes2.source index d037a5f0df40eb17d8318b7bc8dac63472b33441..6f9b9b356e5edc1186f30a7fbec076553b2d569e 100644 --- a/src/test/regress/output/qp_gist_indexes2.source +++ b/src/test/regress/output/qp_gist_indexes2.source @@ -83,7 +83,7 @@ SELECT owner, property FROM GistTable1 Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using propertyboxindex on gisttable1 Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT id, property FROM GistTable1 @@ -128,7 +128,7 @@ SELECT owner, property FROM GistTable1 Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using propertyboxindex on gisttable1 Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) SELECT id, property FROM GistTable1 @@ -428,7 +428,7 @@ SELECT owner, property FROM GistTable1 -> Index Scan using propertyisnullindex on gisttable1 (cost=0.00..700.37 rows=1 width=51) Index Cond: (property IS NULL) Settings: enable_seqscan=off; optimizer=off - Optimizer status: legacy query optimizer + Optimizer status: Postgres query optimizer (8 rows) --end_ignore @@ -466,7 +466,7 @@ SELECT id, property FROM GistTable1 Sort Key: id -> Index Scan using propertyisnullindex on gisttable1 (cost=0.00..701.27 rows=1 width=36) Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) --end_ignore @@ -562,7 +562,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using gistindex13 on gisttable13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) VACUUM GistTable13; @@ -581,7 +581,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using gistindex13 on gisttable13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) TRUNCATE TABLE GistTable13; @@ -610,7 +610,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Gather Motion 3:1 (slice1; segments: 3) -> Index Scan using gistindex13 on gisttable13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (4 rows) -- ---------------------------------------------------------------------- @@ -648,7 +648,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Index Scan using propertyboxindex on gisttable1 Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) REINDEX INDEX propertyBoxIndex; @@ -673,7 +673,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Index Scan using propertyboxindex on gisttable1 Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) DROP INDEX propertyBoxIndex; @@ -700,7 +700,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Seq Scan on gisttable1 Filter: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- ---------------------------------------------------------------------- @@ -788,7 +788,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property ~= '(7052,250),(6050,20)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT id, property FROM GistTable1 @@ -1080,7 +1080,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -1177,7 +1177,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) VACUUM GistTable13; @@ -1198,7 +1198,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) TRUNCATE TABLE GistTable13; @@ -1229,7 +1229,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -1269,7 +1269,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) REINDEX INDEX propertyBoxIndex; @@ -1296,7 +1296,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) DROP INDEX propertyBoxIndex; @@ -1323,7 +1323,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Seq Scan on gisttable1 Filter: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- ---------------------------------------------------------------------- @@ -1411,7 +1411,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property ~= '(7052,250),(6050,20)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT id, property FROM GistTable1 @@ -1703,7 +1703,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -1800,7 +1800,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) VACUUM GistTable13; @@ -1821,7 +1821,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) TRUNCATE TABLE GistTable13; @@ -1852,7 +1852,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -1892,7 +1892,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) REINDEX INDEX propertyBoxIndex; @@ -1919,7 +1919,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) DROP INDEX propertyBoxIndex; @@ -1946,7 +1946,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Seq Scan on gisttable1 Filter: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- ---------------------------------------------------------------------- @@ -2034,7 +2034,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property ~= '(7052,250),(6050,20)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT id, property FROM GistTable1 @@ -2326,7 +2326,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -2423,7 +2423,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) VACUUM GistTable13; @@ -2444,7 +2444,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) TRUNCATE TABLE GistTable13; @@ -2475,7 +2475,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -2515,7 +2515,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) REINDEX INDEX propertyBoxIndex; @@ -2542,7 +2542,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) DROP INDEX propertyBoxIndex; @@ -2569,7 +2569,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Seq Scan on gisttable1 Filter: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- ---------------------------------------------------------------------- @@ -2657,7 +2657,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property ~= '(7052,250),(6050,20)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(7052,250),(6050,20)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT id, property FROM GistTable1 @@ -2949,7 +2949,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -3046,7 +3046,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) VACUUM GistTable13; @@ -3067,7 +3067,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) TRUNCATE TABLE GistTable13; @@ -3098,7 +3098,7 @@ EXPLAIN (COSTS OFF) SELECT id, property AS "ProperTee" FROM GistTable13 Recheck Cond: (property ~= '(999,999),(998,998)'::box) -> Bitmap Index Scan on gistindex13 Index Cond: (property ~= '(999,999),(998,998)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) -- ---------------------------------------------------------------------- @@ -3138,7 +3138,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) REINDEX INDEX propertyBoxIndex; @@ -3165,7 +3165,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Recheck Cond: (property ~= '(3,4),(1,2)'::box) -> Bitmap Index Scan on propertyboxindex Index Cond: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) DROP INDEX propertyBoxIndex; @@ -3192,7 +3192,7 @@ EXPLAIN (COSTS OFF) SELECT id FROM GistTable1 Sort Key: id -> Seq Scan on gisttable1 Filter: (property ~= '(3,4),(1,2)'::box) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) -- ---------------------------------------------------------------------- diff --git a/src/test/regress/output/qp_gist_indexes2_optimizer.source b/src/test/regress/output/qp_gist_indexes2_optimizer.source index db83be52f1bef920df429cc43493b6c6973b41ee..43e096daae164a71fcd697642e57e7322803bf8e 100644 --- a/src/test/regress/output/qp_gist_indexes2_optimizer.source +++ b/src/test/regress/output/qp_gist_indexes2_optimizer.source @@ -438,7 +438,7 @@ INFO: GPORCA failed to produce a plan, falling back to planner Sort Key: id -> Index Scan using propertyisnullindex on gisttable1 (cost=0.00..701.27 rows=1 width=51) Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) --end_ignore @@ -485,7 +485,7 @@ INFO: GPORCA failed to produce a plan, falling back to planner Sort Key: id -> Index Scan using propertyisnullindex on gisttable1 (cost=0.00..701.27 rows=1 width=36) Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (7 rows) --end_ignore @@ -1107,7 +1107,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -1733,7 +1733,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -2359,7 +2359,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- @@ -2985,7 +2985,7 @@ SELECT owner, property FROM GistTable1 Recheck Cond: (property IS NULL) -> Bitmap Index Scan on propertyisnullindex Index Cond: (property IS NULL) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (9 rows) -- ---------------------------------------------------------------------- diff --git a/src/test/regress/output/table_functions.source b/src/test/regress/output/table_functions.source index 24ffa3384efd6808ce9d5a769fb8d516b5c14248..afa56a64c931334f1c88fb06598a29a61b28288e 100644 --- a/src/test/regress/output/table_functions.source +++ b/src/test/regress/output/table_functions.source @@ -1419,7 +1419,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example SCATTER BY a+1) ) -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.12 rows=4 width=16) Hash Key: (example.a + 1) -> Seq Scan on example (cost=0.00..3.12 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM multiset_5( TABLE( SELECT * FROM example SCATTER BY a+1) ) order by a,b; @@ -1767,7 +1767,7 @@ explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SE Hash Key: a -> Table Function Scan on multiset_5 (cost=0.00..3.20 rows=4 width=36) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SELECT a, b from example scatter by b) )); @@ -1784,7 +1784,7 @@ explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SE -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.10 rows=4 width=16) Hash Key: example_1.b -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example)) where (a,b) in (select a,b from example); @@ -1799,7 +1799,7 @@ explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example)) where (a,b) i -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example scatter by b)) where (a,b) in (select a,b from example); @@ -1816,7 +1816,7 @@ explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example scatter by b)) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * from example_r) ); @@ -1836,7 +1836,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by a||b -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.18 rows=4 width=16) Hash Key: (example_r.a::text || example_r.b) -> Seq Scan on example_r (cost=0.00..3.18 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by b, a, a||b) ); @@ -1847,7 +1847,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by b, a -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.18 rows=4 width=16) Hash Key: example_r.b, example_r.a, (example_r.a::text || example_r.b) -> Seq Scan on example_r (cost=0.00..3.18 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER RANDOMLY) ); @@ -1886,7 +1886,7 @@ explain SELECT * FROM example_r WHERE (10, 'hello') in (SELECT * FROM multiset_5 -> Gather Motion 3:1 (slice1; segments: 3) (cost=3.12..3.22 rows=1 width=8) -> Aggregate (cost=3.12..3.13 rows=1 width=8) -> Seq Scan on example_r example_r_1 (cost=0.00..3.10 rows=4 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * from example_v) ); @@ -1910,7 +1910,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example WHERE a >= (SELEC -> Gather Motion 3:1 (slice1; segments: 3) (cost=3.12..3.22 rows=1 width=4) -> Aggregate (cost=3.12..3.13 rows=1 width=4) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain WITH cte AS (SELECT * FROM example) SELECT * FROM multiset_5( TABLE ( SELECT * FROM cte ) ) order by a, b; @@ -1943,7 +1943,7 @@ explain WITH cte AS (SELECT * FROM example) SELECT x.* FROM multiset_5( TABLE ( -> Aggregate (cost=0.23..0.24 rows=1 width=8) -> Subquery Scan on cte (cost=0.00..0.20 rows=4 width=0) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a, example b where a.a = b.a) ) order by 1,2; @@ -1961,7 +1961,7 @@ explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a -> Seq Scan on example a (cost=0.00..3.10 rows=4 width=4) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example b (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a join example b using (a) ) ) order by 1,2; @@ -1979,7 +1979,7 @@ explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a -> Seq Scan on example a (cost=0.00..3.10 rows=4 width=4) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example b (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain select * from multiset_2( TABLE ( SELECT * FROM example WHERE a = 2 ) ) WHERE a = 2; diff --git a/src/test/regress/output/table_functions_optimizer.source b/src/test/regress/output/table_functions_optimizer.source index 72ddc30eff8589a60a2c6db7f59404f6fce1099c..eefbc184dbce5ad8e6d553ea68030c6b7f316632 100644 --- a/src/test/regress/output/table_functions_optimizer.source +++ b/src/test/regress/output/table_functions_optimizer.source @@ -1420,7 +1420,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example SCATTER BY a+1) ) -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.12 rows=4 width=16) Hash Key: (example.a + 1) -> Seq Scan on example (cost=0.00..3.12 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) SELECT * FROM multiset_5( TABLE( SELECT * FROM example SCATTER BY a+1) ) order by a,b; @@ -1768,7 +1768,7 @@ explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SE Hash Key: a -> Table Function Scan on multiset_5 (cost=0.00..3.20 rows=4 width=36) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SELECT a, b from example scatter by b) )); @@ -1785,7 +1785,7 @@ explain SELECT * FROM example where (a,b) in (select * from multiset_5( TABLE(SE -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.10 rows=4 width=16) Hash Key: example_1.b -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example)) where (a,b) in (select a,b from example); @@ -1800,7 +1800,7 @@ explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example)) where (a,b) i -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example scatter by b)) where (a,b) in (select a,b from example); @@ -1817,7 +1817,7 @@ explain SELECT * FROM multiset_5( TABLE(SELECT a, b from example scatter by b)) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (12 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * from example_r) ); @@ -1837,7 +1837,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by a||b -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.18 rows=4 width=16) Hash Key: (example_r.a::text || example_r.b) -> Seq Scan on example_r (cost=0.00..3.18 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by b, a, a||b) ); @@ -1848,7 +1848,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER by b, a -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..3.18 rows=4 width=16) Hash Key: example_r.b, example_r.a, (example_r.a::text || example_r.b) -> Seq Scan on example_r (cost=0.00..3.18 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (6 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example_r SCATTER RANDOMLY) ); @@ -1887,7 +1887,7 @@ explain SELECT * FROM example_r WHERE (10, 'hello') in (SELECT * FROM multiset_5 -> Gather Motion 3:1 (slice1; segments: 3) (cost=3.12..3.22 rows=1 width=8) -> Aggregate (cost=3.12..3.13 rows=1 width=8) -> Seq Scan on example_r example_r_1 (cost=0.00..3.10 rows=4 width=0) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain SELECT * FROM multiset_5( TABLE( SELECT * from example_v) ); @@ -1911,7 +1911,7 @@ explain SELECT * FROM multiset_5( TABLE( SELECT * FROM example WHERE a >= (SELEC -> Gather Motion 3:1 (slice1; segments: 3) (cost=3.12..3.22 rows=1 width=4) -> Aggregate (cost=3.12..3.13 rows=1 width=4) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=4) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (10 rows) explain WITH cte AS (SELECT * FROM example) SELECT * FROM multiset_5( TABLE ( SELECT * FROM cte ) ) order by a, b; @@ -1944,7 +1944,7 @@ explain WITH cte AS (SELECT * FROM example) SELECT x.* FROM multiset_5( TABLE ( -> Aggregate (cost=0.23..0.24 rows=1 width=8) -> Subquery Scan on cte (cost=0.00..0.20 rows=4 width=0) -> Seq Scan on example example_1 (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (16 rows) explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a, example b where a.a = b.a) ) order by 1,2; @@ -1962,7 +1962,7 @@ explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a -> Seq Scan on example a (cost=0.00..3.10 rows=4 width=4) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example b (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a join example b using (a) ) ) order by 1,2; @@ -1980,7 +1980,7 @@ explain select * from multiset_2( TABLE( SELECT distinct a.a, b.b from example a -> Seq Scan on example a (cost=0.00..3.10 rows=4 width=4) -> Hash (cost=3.10..3.10 rows=4 width=16) -> Seq Scan on example b (cost=0.00..3.10 rows=4 width=16) - Optimizer: legacy query optimizer + Optimizer: Postgres query optimizer (13 rows) explain select * from multiset_2( TABLE ( SELECT * FROM example WHERE a = 2 ) ) WHERE a = 2; diff --git a/src/test/regress/sql/bfv_joins.sql b/src/test/regress/sql/bfv_joins.sql index 1a8fb6472ebdd82792d5186bca33bec4119eb3b3..fe837baabff35cb6a305189b8432f9112ddd6d14 100644 --- a/src/test/regress/sql/bfv_joins.sql +++ b/src/test/regress/sql/bfv_joins.sql @@ -281,7 +281,7 @@ set enable_nestloop=on; -- -> Seq Scan on a -- -> Index Only Scan using c_i_j_idx on c -- Index Cond: (j = (a.i + b.i)) [4] --- Optimizer: legacy query optimizer +-- Optimizer: Postgres query optimizer -- (14 rows) -- -- The crucal parts are: diff --git a/src/test/regress/sql/join_gp.sql b/src/test/regress/sql/join_gp.sql index da86db0d927e34076a1e22b1dec28b074acef439..78bed0a4865a25d6ce3b15d1e2918b760dcbb7b8 100644 --- a/src/test/regress/sql/join_gp.sql +++ b/src/test/regress/sql/join_gp.sql @@ -412,7 +412,7 @@ drop table t1, t2, t3; -- for further improvement (e.g. referring subplan code to do broadcast -- for base rel if needed, which needs much effort and does not seem to -- be deserved given we will probably refactor related code for the lateral --- support in the near future). For the query and guc settings below, legacy +-- support in the near future). For the query and guc settings below, Postgres -- planner can not generate a plan. set enable_nestloop = 1; set enable_material = 0; diff --git a/src/test/regress/sql/partition1.sql b/src/test/regress/sql/partition1.sql index 15a35dbc09ab63726e55a37b28d3e394a7ffa9a1..0160426bfb7010b089a9f89d3946ae698780f42d 100644 --- a/src/test/regress/sql/partition1.sql +++ b/src/test/regress/sql/partition1.sql @@ -986,7 +986,7 @@ drop table b; -- different levels -- so this is legal again... drop table if exists a; --- TEST: make sure GPOPT (aka pivotal query optimizer) fall back to legacy query optimizer +-- TEST: make sure GPOPT (aka pivotal query optimizer) fall back to Postgres query optimizer -- for queries with partition elimination over FULL OUTER JOIN -- between partitioned tables. @@ -1012,7 +1012,7 @@ partition by list (p2) -- end_ignore -- VERIFY --- expect GPOPT fall back to legacy query optimizer +-- expect GPOPT fall back to Postgres query optimizer -- since GPOPT don't support partition elimination through full outer joins select * from s1 full outer join s2 on s1.d1 = s2.d2 and s1.p1 = s2.p2 where s1.p1 = 1;