Commit Graph

6072 Commits (pg_15_iso_fix)

Author SHA1 Message Date
Onder Kalaci a6c0bc600f Properly add / remove coordinator for isolation tests
We used to rely on a seperate session to add the coordinator.
However, that might prevent the existing sessions to get
assigned proper gpids, which causes flaky tests.

(cherry picked from commit 83425e132d)
2022-08-17 18:51:33 +02:00
Hanefi Onaldi 3131340aa5 Bump test images to 15beta3 (#6172) 2022-08-17 15:25:25 +03:00
naisila de0cff3e51 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 15:25:25 +03:00
naisila c88d0fd7f9 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 15:24:04 +03:00
naisila e756ea0473 Handles EXPLAIN output diffs in PG15: enable_group_by_reordering
Relevant PG commit
db0d67db2401eb6238ccc04c6407a4fd4f985832
2022-08-17 15:24:04 +03:00
naisila e40261a1cd 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 13:38:34 +03:00
naisila f69beb541f 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 13:26:59 +03:00
Onder Kalaci d54b4f2268 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 13:26:19 +03:00
naisila 4715d24f4d 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 13:26:19 +03:00
naisila 45abab0dfc 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 13:26:19 +03:00
naisila e510e4f356 Remove "invalid socket" from failure tests' outputs
Relevant PG commit:
b71a9cb31e46b08aeac35a4355936165648b3c49
2022-08-17 13:26:19 +03:00
naisila 1f229c6315 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 13:26:19 +03:00
naisila 79173c1eb5 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 13:26:19 +03:00
naisila 540313d7ca 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 13:26:19 +03:00
naisila ecdeaa1713 Explicitly cast catalog "char" column to text before concatenation
Relevant PG commit:
07eee5a0dc642d26f44d65c4e6263304208e8583
2022-08-17 13:26:19 +03:00
naisila 5dcea4b25b Add alternative test outputs for change in Insert Select display pt2
multi_deparse_shard_query.sql

Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 13:26:19 +03:00
naisila f511b291dc 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 13:26:19 +03:00
naisila a1c8551333 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 13:26:19 +03:00
naisila 9eba190c2d Fixes tests for ALTER TRIGGER RENAME consistency for part. tables
Relevant PG commit:
80ba4bb383538a2ee846fece6a7b8da9518b6866
2022-08-17 13:26:19 +03:00
naisila 551b4f3495 Revert "Add missing ifdef for PG 15"
This reverts commit c7b51025ab.
2022-08-17 13:26:19 +03:00
naisila 88f8a8b8d7 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 13:26:19 +03:00
naisila 7ff1f1b36b Change warning message in pg_signal_backend()
Relevant PG commit:
7fa945b857cc1b2964799411f1633468826861ff
2022-08-17 13:26:19 +03:00
Hanefi Onaldi 74bee8bfba Add PG15 tests to CI using test images that have 15beta2 (#6093) 2022-08-17 13:26:19 +03:00
naisila c8888e19d1 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 13:26:19 +03:00
naisila ab802038da 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 13:26:19 +03:00
naisila 4d90372450 Change comment regarding functions returning composite in ruleutils_15.c
Relevant PG commit:
c2fa113ddb1117b1f03e91960f65d5d7d8a90270
2022-08-17 13:26:19 +03:00
naisila 077653e4a0 Fix ruleutils_15.c issues with dropped cols in funcs-returning-composite
Relevant PG commit:
c1d1e8469c77ce6b8e5310955580b4a3eee7fe96
2022-08-17 13:26:19 +03:00
naisila 0b8f729b91 Show 'AS "?column?"' explicitly when it's important in ruleutils_15.c
Relevant PG commit:
c7461fc25558832dd347a9c8150b0f1ed85e36e8
2022-08-17 13:26:19 +03:00
naisila ac029cd21a Rename value_type to item_type in ruleutils_15.c
Relevant PG commit:
3ab9a63cb638a1fd99475668e2da9c237495aeda
2022-08-17 13:26:19 +03:00
naisila 3e4f6ae315 Mechanical code beautification ruleutils_15.c
Relevant PG commit:
23e7b38bfe396f919fdb66057174d29e17086418
2022-08-17 13:26:19 +03:00
naisila b2e0df4eb7 set_deparse_plan: Reuse variable to appease Coverity ruleutils_15.c
Relevant PG commit:
e70813fbc4aaca35ec012d5a426706bd54e4acab
2022-08-17 13:26:19 +03:00
naisila 233b02d8e1 Remove extra blank lines before block-closing braces ruleutils_15.c
Relevant PG commit:
24d2b2680a8d0e01b30ce8a41c4eb3b47aca5031
2022-08-17 13:26:19 +03:00
naisila 48267fda67 Add PLAN function for JSON table in ruleutils_15.c
Relevant PG commit:
fadb48b00e02ccfd152baa80942de30205ab3c4f
2022-08-17 13:26:19 +03:00
naisila 4d739efb63 Adds JSON table functions in ruleutils_15.c
Relevant PG commit:
4e34747c88a03ede6e9d731727815e37273d4bc9
2022-08-17 13:26:19 +03:00
naisila ab13bf18ad Adds three different SQL/JSON values to ruleutils_15.c
Relevant PG commits:
606948b058dc16bce494270eea577011a602810e
49082c2cc3d8167cca70cfe697afb064710828ca
2022-08-17 13:26:19 +03:00
naisila 8f19789f22 Add SQL/JSON query functions to ruleutils_15.c
Relevant PG commit:
1a36bc9dba8eae90963a586d37b6457b32b2fed4
2022-08-17 13:26:19 +03:00
naisila 258ea775a8 Add IS JSON predicate to ruleutils_15.c
Relevant PG commit:
33a377608fc29cdd1f6b63be561eab0aee5c81f0
2022-08-17 13:26:19 +03:00
naisila bcf04cfef3 Adds support for MERGE in ruleutils_15.c
Relevant PG commit:
7103ebb7aae8ab8076b7e85f335ceb8fe799097c
2022-08-17 13:26:19 +03:00
naisila 1235c41675 Adds SQL/JSON constructors to ruleutils_15.c
Relevant PG commits:
f4fb45d15c59d7add2e1b81a9d477d0119a9691a
cc7401d5ca498a84d9b47fd2e01cebd8e830e558
2022-08-17 13:26:19 +03:00
naisila 0a62294569 Adds grammar support for SQL/JSON clauses in ruleutils_15.c
Relevant PG commit:
f79b803dcc98d707450e158db3638dc67ff8380b
2022-08-17 13:26:19 +03:00
naisila c61abcdbe1 Fix assorted missing logic for GroupingFunc nodes in ruleutils_15.c
Relevant PG commit:
2591ee8ec44d8cbc8e1226550337a64c684746e4
2022-08-17 13:26:19 +03:00
naisila a82e54c757 Fix ruleutils_15.c's dumping of whole-row Vars in more contexts
Relevant PG commit:
43c2175121c829c8591fc5117b725f1f22bfb670
2022-08-17 13:26:19 +03:00
naisila c3966240fb Fix display of SQL-std func's args in INSERT/SELECT in ruleutils_15.c
Relevant PG commit:
a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
2022-08-17 13:26:19 +03:00
naisila 7ea3454dc2 Adds find_recursive_union to ruleutils_15.c
Relevant PG commit:
3f50b82639637c9908afa2087de7588450aa866b
2022-08-17 13:26:19 +03:00
naisila fb00991c71 Change varno from Index (unsigned int) to int in ruleutils_15.c
Relevant PG commit:
e3ec3c00d85bd2844ffddee83df2bd67c4f8297f
2022-08-17 13:26:19 +03:00
naisila 10010a21fe Clean up code using "(expr) ? true : false" in ruleutils_15.c
Relevant PG commit:
fd0625c7a9c679c0c1e896014b8f49a489c3a245
2022-08-17 13:26:19 +03:00
naisila 06c70e78ec Uses get_namespace_name_or_temp in ruleutils_15.c
Relevant PG commit:
48c5c9068211e0a04fd9553c8714b2821ed3ad17
2022-08-17 13:26:19 +03:00
naisila 2deca3b0f9 Adds copy of ruleutils_14.c as ruleutils_15.c 2022-08-17 13:26:19 +03:00
naisila 3e6bf46ed1 Adjust configure script to allow PG15 2022-08-17 13:26:19 +03:00
Jelte Fennema 3f6ce889eb
Use CreateSimpleHash (and variants) whenever possible (#6177)
This is a refactoring PR that starts using our new hash table creation
helper function. It adds a few more macros for ease of use, because C
doesn't have default arguments. It also adds a macro to check if a
struct contains automatic padding bytes. No struct that is hashed using
tag_hash should have automatic padding bytes, because those bytes are
undefined and thus using them to create a hash will result in undefined
behaviour (usually a random hash).
2022-08-17 13:01:59 +03:00