Commit Graph

6076 Commits (eb9b13745394cf01a85576111cccd9eae881e862)

Author SHA1 Message Date
Onder Kalaci eb9b137453 w 2022-08-18 17:35:56 +02:00
Onder Kalaci 4471584379 WIP 2022-08-18 17:25:16 +02:00
Hanefi Onaldi 80d220110c Bump test images to 15beta3 (#6172) 2022-08-17 22:35:33 +03:00
naisila e79019add5 Add alternative test outputs for change in Insert Select display pt3
citus_local_tables_queries.sql
cte_inline.sql
insert_select_repartition.sql
intermediate_result_pruning.sql
local_shard_execution.sql
local_shard_execution_replicated.sql
multi_mx_insert_select_repartition.sql
mx_coordinator_shouldhaveshards.sql

Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 22:35:33 +03:00
naisila b4811360ce Normalizes Memory Usage, Buckets, Batches for PG15 explain diffs
We create a new function in multi_test_helpers, which is similar
to explain_merge function in PG15. This explain helper function
normalies Memory Usage, Buckets and Batches, and we use it in the
tests which give a different output for PG15.
2022-08-17 22:35:33 +03:00
naisila 585ccb3350 Handles EXPLAIN output diffs in PG15: enable_group_by_reordering
Relevant PG commit
db0d67db2401eb6238ccc04c6407a4fd4f985832
2022-08-17 22:35:33 +03:00
naisila 866a727691 Handles EXPLAIN output diffs in PG15, Hash Agg/Join leverage
To handle differences in usage of GroupAggregate vs HashAggregate
or Merge Join vs Hash join in cases where this detail doesn't
seem to matter, we use coordinator_plan().
- coordinator_plan() is updated to remove "Result" lines

There are some cases where we have subplans so we add a new
function that prints all Task Count lines as well
- coordinator_plan_with_subplans()

Still not sure of the relevant PG commit
Could be db0d67db2401eb6238ccc04c6407a4fd4f985832
but disabling enable_group_by_reordering didn't help.
2022-08-17 20:46:51 +03:00
naisila 722cd07223 Handles EXPLAIN output diffs in PG15 - Extra result lines
To handle extra "Result" lines in explain outputs, we add explain
method to multi_test_helpers.sql file
- plan_without_result_lines() is added for cases where we want the
whole explain output with only "Result" lines removed
2022-08-17 20:46:51 +03:00
Onder Kalaci 66523b4da1 Support JSON_TABLE on PG 15
Postgres supports JSON_TABLE feature on PG 15.

We treat JSON_TABLE the same as correlated functions (e.g., recurring tuples).
In the end, for multi-shard JSON_TABLE commands, we apply the same
restrictions as reference tables (e.g., cannot be in the outer part of
an outer join etc.)
2022-08-17 20:46:51 +03:00
naisila c95b59fded Adds test failure_pg15.sql for duplicate error message cases
Each of the following tests: failure_ddl.sql, failure_truncate.sql
failure_multi_dml.sql, failure_vacuum.sql has a part with
alternative output for PG15 resulting from removal of duplicate
error messages
This test file has been created to avoid 4 alternative output files

Relevant PG commit:
618c16707a6d6e8f5c83ede2092975e4670201ad
2022-08-17 20:46:51 +03:00
naisila ae4913de0c Adds alt. output for failure_savepoints bcs of PG15 libpq error changes
Duplicated error/warning texts is now avoided in PG15.
The whole test file has duplications hence I added an alternative.
In some cases ERROR/WARNING order is swapped so I reduced
the log level.

Relevant PG commit:
618c16707a6d6e8f5c83ede2092975e4670201ad
2022-08-17 20:46:51 +03:00
naisila e10fd065f5 Remove "invalid socket" from failure tests' outputs
Relevant PG commit:
b71a9cb31e46b08aeac35a4355936165648b3c49
2022-08-17 20:46:51 +03:00
naisila 27aba9af89 Adds citus.mitmfifo GUC
Previously we setting this configuration parameter
in the fly for failure tests schedule.
However, PG15 doesn't allow that anymore: reserved prefixes
like "citus" cannot be used to set non-existing GUCs.

Relevant PG commit:
88103567cb8fa5be46dc9fac3e3b8774951a2be7
2022-08-17 20:46:51 +03:00
naisila fab48167be Use pg_backup_stop(PG15) instead of pg_stop_backup(PG<15)
Add an alternative test output because of the change in the
backup modes of Postgres. Specifically here, there is a renaming
issue: pg_stop_backup PRE PG15 vs pg_backup_stop PG15+
The alternative output can be deleted when we drop support for PG14

Relevant PG commit:
39969e2a1e4d7f5a37f3ef37d53bbfe171e7d77a
2022-08-17 20:46:51 +03:00
naisila e736d47cfc Remove 'AS "?column?"' from test outputs
There were some instances in the following tst outputs
in planning debug outputs where AS "?column?" is added.
We add a normalization rule to remove it as it is not
important.

cte_inline.out
recursive_relation_planning_restriction_pushdown.out

Relevant PG commit:
c7461fc25558832dd347a9c8150b0f1ed85e36e8
2022-08-17 20:46:51 +03:00
naisila 283a730337 Explicitly cast catalog "char" column to text before concatenation
Relevant PG commit:
07eee5a0dc642d26f44d65c4e6263304208e8583
2022-08-17 20:46:51 +03:00
naisila 3a92160c18 Add alternative test outputs for change in Insert Select display pt2
multi_deparse_shard_query.sql

Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 20:46:51 +03:00
naisila 766f048bf5 Fix tests for generated columns dependency changes
In PG15, For GENERATED columns, all dependencies of the generation
expression are recorded as NORMAL dependencies of the column itself.
This requires CASCADE to drop generated cols with the original col.
PRE PG15, dependencies were recorded as AUTO, with which
generated columns are silently dropped with the original column.

Relevant PG commit:
cb02fcb4c95bae08adaca1202c2081cfc81a28b5
2022-08-17 20:46:51 +03:00
naisila 34c5ecc575 Prevent creating child triggers on partitions when adding new node
Pre PG15, tgisinternal is true for a "child" trigger on a partition
cloned from the trigger on the parent.
In PG15, tgisinternal is false in that case. However, we don't want to
create this trigger on the partition since it will create a conflict
when we try to attach the partition to the parent table:
ERROR: trigger "..." for relation "{partition_name}" already exists

Relevant PG commit:
f4566345cf40b068368cb5617e61318da60676ec
2022-08-17 20:46:51 +03:00
naisila 87db78eab8 Fixes tests for ALTER TRIGGER RENAME consistency for part. tables
Relevant PG commit:
80ba4bb383538a2ee846fece6a7b8da9518b6866
2022-08-17 20:46:51 +03:00
naisila 3402faf01d Revert "Add missing ifdef for PG 15"
This reverts commit c7b51025ab.
2022-08-17 20:46:51 +03:00
naisila 76d5e8f63d Add alternative test outputs for change in Insert Select display
coordinator_shouldhaveshards.sql
multi_insert_select.sql
multi_insert_select_conflict.sql
single_node.sql

Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 20:46:51 +03:00
naisila 7c0e5f6efa Change warning message in pg_signal_backend()
Relevant PG commit:
7fa945b857cc1b2964799411f1633468826861ff
2022-08-17 20:46:51 +03:00
Hanefi Onaldi ef01bcaed6 Add PG15 tests to CI using test images that have 15beta2 (#6093) 2022-08-17 20:46:51 +03:00
naisila b518dbaf78 Handle new option colliculocale in CREATE COLLATION logic
In PG15, there is an added option to use ICU as global locale provider.
pg_collation has three locale-related fields: collcollate and collctype,
which are libc-related fields, and a new one colliculocale, which is the
ICU-related field. Only the libc-related fields or the ICU-related field
is set, never both.

Relevant PG commits:
f2553d43060edb210b36c63187d52a632448e1d2
54637508f87bd5f07fb9406bac6b08240283be3b
2022-08-17 20:46:51 +03:00
naisila a747e7c69a Replace int nodes with bool nodes where needed
In PG15, Boolean nodes are added. Pre PG15, internal Boolean values
in Create Role commands were represented by Integer nodes. This
commit replaces int nodes logic with bool nodes logic where needed.
Mostly there are CREATE ROLE logic changes.

Relevant PG commit:
941460fcf731a32e6a90691508d5cfa3d1f8eeaf
2022-08-17 20:46:51 +03:00
naisila 9eab452e00 Change comment regarding functions returning composite in ruleutils_15.c
Relevant PG commit:
c2fa113ddb1117b1f03e91960f65d5d7d8a90270
2022-08-17 20:46:51 +03:00
naisila 89860d93a4 Fix ruleutils_15.c issues with dropped cols in funcs-returning-composite
Relevant PG commit:
c1d1e8469c77ce6b8e5310955580b4a3eee7fe96
2022-08-17 20:46:51 +03:00
naisila d971ce9561 Show 'AS "?column?"' explicitly when it's important in ruleutils_15.c
Relevant PG commit:
c7461fc25558832dd347a9c8150b0f1ed85e36e8
2022-08-17 20:46:51 +03:00
naisila be59071e6a Rename value_type to item_type in ruleutils_15.c
Relevant PG commit:
3ab9a63cb638a1fd99475668e2da9c237495aeda
2022-08-17 20:46:51 +03:00
naisila 3019a31466 Mechanical code beautification ruleutils_15.c
Relevant PG commit:
23e7b38bfe396f919fdb66057174d29e17086418
2022-08-17 20:46:51 +03:00
naisila 80d0caeb5a set_deparse_plan: Reuse variable to appease Coverity ruleutils_15.c
Relevant PG commit:
e70813fbc4aaca35ec012d5a426706bd54e4acab
2022-08-17 20:46:51 +03:00
naisila 990718dc87 Remove extra blank lines before block-closing braces ruleutils_15.c
Relevant PG commit:
24d2b2680a8d0e01b30ce8a41c4eb3b47aca5031
2022-08-17 20:46:51 +03:00
naisila 045f089f51 Add PLAN function for JSON table in ruleutils_15.c
Relevant PG commit:
fadb48b00e02ccfd152baa80942de30205ab3c4f
2022-08-17 20:46:51 +03:00
naisila 277d914c54 Adds JSON table functions in ruleutils_15.c
Relevant PG commit:
4e34747c88a03ede6e9d731727815e37273d4bc9
2022-08-17 20:46:51 +03:00
naisila 405d06187f Adds three different SQL/JSON values to ruleutils_15.c
Relevant PG commits:
606948b058dc16bce494270eea577011a602810e
49082c2cc3d8167cca70cfe697afb064710828ca
2022-08-17 20:46:51 +03:00
naisila 66ea4e20e9 Add SQL/JSON query functions to ruleutils_15.c
Relevant PG commit:
1a36bc9dba8eae90963a586d37b6457b32b2fed4
2022-08-17 20:46:51 +03:00
naisila 30486e02d2 Add IS JSON predicate to ruleutils_15.c
Relevant PG commit:
33a377608fc29cdd1f6b63be561eab0aee5c81f0
2022-08-17 20:46:51 +03:00
naisila 4442e1cb6a Adds support for MERGE in ruleutils_15.c
Relevant PG commit:
7103ebb7aae8ab8076b7e85f335ceb8fe799097c
2022-08-17 20:46:51 +03:00
naisila cc74547795 Adds SQL/JSON constructors to ruleutils_15.c
Relevant PG commits:
f4fb45d15c59d7add2e1b81a9d477d0119a9691a
cc7401d5ca498a84d9b47fd2e01cebd8e830e558
2022-08-17 20:46:51 +03:00
naisila 289b69c44e Adds grammar support for SQL/JSON clauses in ruleutils_15.c
Relevant PG commit:
f79b803dcc98d707450e158db3638dc67ff8380b
2022-08-17 20:46:50 +03:00
naisila d62a3f5a39 Fix assorted missing logic for GroupingFunc nodes in ruleutils_15.c
Relevant PG commit:
2591ee8ec44d8cbc8e1226550337a64c684746e4
2022-08-17 20:46:50 +03:00
naisila 5233ec84d2 Fix ruleutils_15.c's dumping of whole-row Vars in more contexts
Relevant PG commit:
43c2175121c829c8591fc5117b725f1f22bfb670
2022-08-17 20:46:50 +03:00
naisila 252466c95d Fix display of SQL-std func's args in INSERT/SELECT in ruleutils_15.c
Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 20:46:50 +03:00
naisila 406b05880b Adds find_recursive_union to ruleutils_15.c
Relevant PG commit:
3f50b82639637c9908afa2087de7588450aa866b
2022-08-17 20:46:50 +03:00
naisila c83e19fc67 Change varno from Index (unsigned int) to int in ruleutils_15.c
Relevant PG commit:
e3ec3c00d85bd2844ffddee83df2bd67c4f8297f
2022-08-17 20:46:50 +03:00
naisila 1913379882 Clean up code using "(expr) ? true : false" in ruleutils_15.c
Relevant PG commit:
fd0625c7a9c679c0c1e896014b8f49a489c3a245
2022-08-17 20:46:50 +03:00
naisila 69a0e6fa78 Uses get_namespace_name_or_temp in ruleutils_15.c
Relevant PG commit:
48c5c9068211e0a04fd9553c8714b2821ed3ad17
2022-08-17 20:46:50 +03:00
naisila 2632746269 Adds copy of ruleutils_14.c as ruleutils_15.c 2022-08-17 20:46:50 +03:00
naisila 1321a4bda7 Adjust configure script to allow PG15 2022-08-17 20:46:50 +03:00