mirror of https://github.com/citusdata/citus.git
PG16 - Add GENERIC_PLAN option to EXPLAIN (#7141)
parent
c73ef405f5
commit
b8c493f2c4
|
@ -992,12 +992,18 @@ BuildRemoteExplainQuery(char *queryString, ExplainState *es)
|
|||
appendStringInfo(explainQuery,
|
||||
"EXPLAIN (ANALYZE %s, VERBOSE %s, "
|
||||
"COSTS %s, BUFFERS %s, WAL %s, "
|
||||
#if PG_VERSION_NUM >= PG_VERSION_16
|
||||
"GENERIC_PLAN %s, "
|
||||
#endif
|
||||
"TIMING %s, SUMMARY %s, FORMAT %s) %s",
|
||||
es->analyze ? "TRUE" : "FALSE",
|
||||
es->verbose ? "TRUE" : "FALSE",
|
||||
es->costs ? "TRUE" : "FALSE",
|
||||
es->buffers ? "TRUE" : "FALSE",
|
||||
es->wal ? "TRUE" : "FALSE",
|
||||
#if PG_VERSION_NUM >= PG_VERSION_16
|
||||
es->generic ? "TRUE" : "FALSE",
|
||||
#endif
|
||||
es->timing ? "TRUE" : "FALSE",
|
||||
es->summary ? "TRUE" : "FALSE",
|
||||
formatStr,
|
||||
|
|
|
@ -65,6 +65,46 @@ SET citus.log_remote_commands TO OFF;
|
|||
-- only verifying it works and not printing log
|
||||
-- remote commands because it can be flaky
|
||||
VACUUM (ONLY_DATABASE_STATS);
|
||||
-- New GENERIC_PLAN option in EXPLAIN
|
||||
-- Relevant PG commit:
|
||||
-- https://github.com/postgres/postgres/commit/3c05284
|
||||
CREATE TABLE tenk1 (
|
||||
unique1 int4,
|
||||
unique2 int4,
|
||||
thousand int4
|
||||
);
|
||||
SELECT create_distributed_table('tenk1', 'unique1');
|
||||
create_distributed_table
|
||||
---------------------------------------------------------------------
|
||||
|
||||
(1 row)
|
||||
|
||||
SET citus.log_remote_commands TO on;
|
||||
EXPLAIN (GENERIC_PLAN) SELECT unique1 FROM tenk1 WHERE thousand = 1000;
|
||||
NOTICE: issuing BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;SELECT assign_distributed_transaction_id(xx, xx, 'xxxxxxx');
|
||||
DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx
|
||||
NOTICE: issuing SAVEPOINT citus_explain_savepoint
|
||||
DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx
|
||||
NOTICE: issuing EXPLAIN (ANALYZE FALSE, VERBOSE FALSE, COSTS TRUE, BUFFERS FALSE, WAL FALSE, GENERIC_PLAN TRUE, TIMING FALSE, SUMMARY FALSE, FORMAT TEXT) SELECT unique1 FROM pg16.tenk1_950001 tenk1 WHERE (thousand OPERATOR(pg_catalog.=) 1000)
|
||||
DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx
|
||||
NOTICE: issuing ROLLBACK TO SAVEPOINT citus_explain_savepoint
|
||||
DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx
|
||||
NOTICE: issuing COMMIT
|
||||
DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx
|
||||
QUERY PLAN
|
||||
---------------------------------------------------------------------
|
||||
Custom Scan (Citus Adaptive) (cost=0.00..0.00 rows=0 width=0)
|
||||
Task Count: 1
|
||||
Tasks Shown: All
|
||||
-> Task
|
||||
Node: host=localhost port=xxxxx dbname=regression
|
||||
-> Seq Scan on tenk1_950001 tenk1 (cost=0.00..35.50 rows=10 width=4)
|
||||
Filter: (thousand = 1000)
|
||||
(7 rows)
|
||||
|
||||
EXPLAIN (GENERIC_PLAN, ANALYZE) SELECT unique1 FROM tenk1 WHERE thousand = 1000;
|
||||
ERROR: EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together
|
||||
SET citus.log_remote_commands TO off;
|
||||
-- Proper error when creating statistics without a name on a Citus table
|
||||
-- Relevant PG commit:
|
||||
-- https://github.com/postgres/postgres/commit/624aa2a13bd02dd584bb0995c883b5b93b2152df
|
||||
|
|
|
@ -45,6 +45,22 @@ SET citus.log_remote_commands TO OFF;
|
|||
-- remote commands because it can be flaky
|
||||
VACUUM (ONLY_DATABASE_STATS);
|
||||
|
||||
-- New GENERIC_PLAN option in EXPLAIN
|
||||
-- Relevant PG commit:
|
||||
-- https://github.com/postgres/postgres/commit/3c05284
|
||||
|
||||
CREATE TABLE tenk1 (
|
||||
unique1 int4,
|
||||
unique2 int4,
|
||||
thousand int4
|
||||
);
|
||||
SELECT create_distributed_table('tenk1', 'unique1');
|
||||
|
||||
SET citus.log_remote_commands TO on;
|
||||
EXPLAIN (GENERIC_PLAN) SELECT unique1 FROM tenk1 WHERE thousand = 1000;
|
||||
EXPLAIN (GENERIC_PLAN, ANALYZE) SELECT unique1 FROM tenk1 WHERE thousand = 1000;
|
||||
SET citus.log_remote_commands TO off;
|
||||
|
||||
-- Proper error when creating statistics without a name on a Citus table
|
||||
-- Relevant PG commit:
|
||||
-- https://github.com/postgres/postgres/commit/624aa2a13bd02dd584bb0995c883b5b93b2152df
|
||||
|
|
Loading…
Reference in New Issue