Fix strange errors in DML with unreachable sublinks (#3263)

Fix strange errors in DML with unreachable sublinks
pull/3272/head
Marco Slot 2019-12-06 14:40:28 +01:00 committed by GitHub
commit b0ac70f1f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View File

@ -640,7 +640,7 @@ ModifyQuerySupported(Query *queryTree, Query *originalQuery, bool multiShardQuer
} }
/* extract range table entries */ /* extract range table entries */
ExtractRangeTableEntryWalker((Node *) queryTree, &rangeTableList); ExtractRangeTableEntryWalker((Node *) originalQuery, &rangeTableList);
foreach(rangeTableCell, rangeTableList) foreach(rangeTableCell, rangeTableList)
{ {

View File

@ -1285,6 +1285,18 @@ HINT: Try rewriting your queries with 'INSERT INTO ... SELECT' syntax.
INSERT INTO summary_table (id) VALUES ((SELECT id FROM reference_summary_table)); INSERT INTO summary_table (id) VALUES ((SELECT id FROM reference_summary_table));
ERROR: subqueries are not supported within INSERT queries ERROR: subqueries are not supported within INSERT queries
HINT: Try rewriting your queries with 'INSERT INTO ... SELECT' syntax. HINT: Try rewriting your queries with 'INSERT INTO ... SELECT' syntax.
-- subqueries that would be eliminated by = null clauses
DELETE FROM summary_table WHERE (
SELECT 1 FROM pg_catalog.pg_statio_sys_sequences
) = null;
DELETE FROM summary_table WHERE (
SELECT (select action_statement from information_schema.triggers)
FROM pg_catalog.pg_statio_sys_sequences
) = null;
ERROR: relation pg_namespace is not distributed
DELETE FROM summary_table WHERE id < (
SELECT 0 FROM pg_dist_node
);
DROP TABLE raw_table; DROP TABLE raw_table;
DROP TABLE summary_table; DROP TABLE summary_table;
DROP TABLE reference_raw_table; DROP TABLE reference_raw_table;

View File

@ -858,6 +858,19 @@ INSERT INTO summary_table (id) VALUES (5), ((SELECT id FROM summary_table));
INSERT INTO reference_summary_table (id) VALUES ((SELECT id FROM summary_table)); INSERT INTO reference_summary_table (id) VALUES ((SELECT id FROM summary_table));
INSERT INTO summary_table (id) VALUES ((SELECT id FROM reference_summary_table)); INSERT INTO summary_table (id) VALUES ((SELECT id FROM reference_summary_table));
-- subqueries that would be eliminated by = null clauses
DELETE FROM summary_table WHERE (
SELECT 1 FROM pg_catalog.pg_statio_sys_sequences
) = null;
DELETE FROM summary_table WHERE (
SELECT (select action_statement from information_schema.triggers)
FROM pg_catalog.pg_statio_sys_sequences
) = null;
DELETE FROM summary_table WHERE id < (
SELECT 0 FROM pg_dist_node
);
DROP TABLE raw_table; DROP TABLE raw_table;
DROP TABLE summary_table; DROP TABLE summary_table;
DROP TABLE reference_raw_table; DROP TABLE reference_raw_table;