Commit Graph

5119 Commits (23131a52cdbb23b04a184eefe3383087d305df91)

Author SHA1 Message Date
Sait Talha Nisanci 23131a52cd Fix style 2021-08-25 17:17:16 +03:00
Sait Talha Nisanci 42e41900b3 Add alternative output for pg14 in check-failure 2021-08-25 17:15:57 +03:00
Sait Talha Nisanci 409132a374 Fix failure for 1pc_copy_hash 2021-08-25 17:05:59 +03:00
Nils Dijk 48dbf690c9 add 14beta3 to CI 2021-08-25 16:33:21 +03:00
Sait Talha Nisanci 2ba32b3922 Add an alternative output for multi_follower_dml
It seems like the change in multi_follower_dml is about a local table
hence it suggests that this is probably related to postgres side, and
safe to add an alternative output for.
2021-08-25 16:25:21 +03:00
Sait Talha Nisanci 01a03fcf65 Enable pg12-pg14 upgrade test 2021-08-25 16:25:21 +03:00
Sait Talha Nisanci b6bd3c2d81 fix array_cat_agg for pg upgrades
array_cat_agg now needs to take anycompatiblearray instead of anyarray
because array_cat changed its type from anyarray to anycompatiblearray
with pg14.

To handle upgrades correctly, we drop the aggregate in
citus_pg_prepare_upgrade. To be able to drop it, we first remove the
dependency from pg_depend.

Then we create the right aggregate in citus_finish_pg_upgrade and we
also add the dependency back to pg_depend.
2021-08-25 16:25:21 +03:00
Sait Talha Nisanci 98fda426f5 Avoid NOTICE message to avoid an alternative output with pg14 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci 7a657e05f5 Add alternative output for data_types
It seems like there is a problem with Postgres14 with SELECT DISTINCT
COUNT. The issue is reported to Postgres and an alternative output is
added. We can remove the alternative output when the issue is fixed on
PG. If this is not an issue on PG(which is unlikely) we should consider
some other solution.
2021-08-25 16:25:20 +03:00
Sait Talha Nisanci cd18c5be4a Use the default max_parallel_workers_per_gather for vanilla 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci a6fb1e5f54 Add alternative output for multi-mx 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci 46bef9e39c Turn off debug for one query to avoid adding an alternative output 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci d9e25dd236 Add a helper function to check explain has a single task
In order to avoid adding an alternative output, a function to check if a
given explan plan has a single task added. This doesn't change what the
changed tests intend to do.
2021-08-25 16:25:20 +03:00
Sait Talha Nisanci 00687d7ceb turn off costs in columnar_indexes explain query 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci 3b92284a9a Get partition column via updatedCols 2021-08-25 16:25:20 +03:00
Nils Dijk 75a0bc5755 update error messages for libpq 14beta3 2021-08-25 16:25:20 +03:00
Sait Talha Nisanci f46b7fe70e Disable queryId calculation in our test suite
With pg_stat_statements queryId is calculated by default now but that
puts an extra line to explain outputs with Query Identifier. To avoid
that, we explicitly turn off this setting.

Commit on PG:
cafde58b337e007cb6a719f5ab4dd6459d932a39
2021-08-25 16:24:43 +03:00
Sait Talha Nisanci 6ce3bd94b5 normalize array_cat_agg output 2021-08-25 16:24:43 +03:00
Sait Talha Nisanci 327adfc53f Rewrite AppendColumnNames for Pg14
Postgres changed stats expression types as of PG14. Hence we needed to
write the AppendColumnNames method. Also they removed the error on PG
side so we remove it as well.

Relevant commits on pg14:
a4d75c86bf15220df22de0a92c819ecef9db3849
388e75ad33489b77cfb9a8590a91e9287d8fb960
2021-08-25 16:24:43 +03:00
Sait Talha Nisanci 52b249ff13 Reset queryId to 0 for Explain queries
When queryId is not 0 and verbose is true, the query identifier is
emitted to the explain output. This is breaking Postgres outputs.
There might be a reason we process postgres tables for explain but
ideally if the explain doesn't contain any citus table, we should just
let Postgres handle it.

Commit on PG that introduced the query identifier in the explain output:
4f0b0966c866ae9f0e15d7cc73ccf7ce4e1af84b
2021-08-25 16:24:43 +03:00
Sait Talha Nisanci ed82affce5 Update propagate extension commands test for pg12
The test file was changes slightly to avoid adding an alternative
output. We update the existing alternative output for pg12 with the new
changes.
2021-08-25 16:23:40 +03:00
Sait Talha Nisanci b57e6be724 Add alternative output for pg12 for window_functions 2021-08-25 16:23:40 +03:00
Halil Ozan Akgul 5bd78de486 Sets next_shard_id at partition_wise_join test 2021-08-25 16:23:40 +03:00
Halil Ozan Akgul 0305e0bbb2 Readds deleted resultRelInfo changes for previos PG versions
These changes were removed in commit: Introduces ExecSimpleRelationInsert_compat and modifyStateResultRelInfo macros
We shouldn't have removed them but instead kept them for before PG14
2021-08-25 16:23:40 +03:00
Nils Dijk 4dedb9722d use pg14 image for pg upgrade tests 2021-08-25 16:23:40 +03:00
Sait Talha Nisanci 12b5d81b2c Add alternative output for isolation_master_update_node 2021-08-25 16:23:04 +03:00
Sait Talha Nisanci 828d2e1339 Bind seg version to 1.3 in isolation_textension_commands 2021-08-25 16:22:26 +03:00
Sait Talha Nisanci 74e8bc5b2e Turn off VERBOSE to avoid alternative output
With VERBOSE option, as of PG14, we get a line with "Query Identifier".
2021-08-25 16:20:19 +03:00
Sait Talha Nisanci efc5a8f0bd Add partition_wise_join to avoid big alternative output
There was a small part in multi_partitioning that would need an
alternative output for pg14. Instead of adding an alternative for the
whole file, we created a new file, called partition_wise_join.sql and
added the alternative output for that.
2021-08-25 16:20:19 +03:00
Sait Talha Nisanci 7edc5cf819 Check if extversion is the same for seg extension
When we check the exact version of the seg extension, it becomes a
problem when its version changes, such as from 1.3 to 1.4. So now we
modified the changes to check for that the version is the same in all
the cluster.
2021-08-25 16:20:19 +03:00
Halil Ozan Akgul 50a9edb7b9 Includes pg_version_constants.h in columnar_version_compat.h 2021-08-25 16:20:19 +03:00
Halil Ozan Akgul a98f336aea Puts usage of HASH_STRINGS in PG14 version check 2021-08-25 16:20:19 +03:00
Halil Ozan Akgul dd7d787365 Introduces pg_get_statisticsobj_worker_compat macro
Relevant PG commit:
a4d75c86bf15220df22de0a92c819ecef9db3849
2021-08-25 16:20:19 +03:00
Halil Ozan Akgul 1a87aa4dd1 Introduces make_simple_restrictinfo_compat and pull_varnos_compat macros
make_simple_restrictinfo and pull_varnos functions now have a new parameter
These new macros give us the ability to use this new parameter for PG14 and they don't give the parameter for previous versions

Relevant PG commit:
55dc86eca70b1dc18a79c141b3567efed910329d
2021-08-25 16:20:19 +03:00
Nils Dijk 4694d8b759 add missing define with old value 2021-08-25 16:20:19 +03:00
Nils Dijk d50b3d8f9d add 14beta3 to CI 2021-08-25 16:20:19 +03:00
Halil Ozan Akgul 99e7baeb49 Removes password outputs from alter_role_propagation tests 2021-08-25 16:18:33 +03:00
Sait Talha Nisanci e56e9cc1e7 Add alternative output for multi_deparse_function
Postgres tightened up its checks for invalid GUC names hence we started
to get an alternative output for one of our tests. We add an alternative
output since the file is relatively small.

Commit on PG:
3db826bd55cd1df0dd8c3d811f8e5b936d7ba1e4
2021-08-25 16:18:33 +03:00
Sait Talha Nisanci a76aec21f4 Add shard relation to pState in localCopy
CopyFrom expects an AccessShareLock on the table. Instead of adding an
explicit lock, we do it how postgres is doing, which is to use
addRangeTableEntryForRelation.

Commit:
c532d15dddff14b01fe9ef1d465013cb8ef186df
2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 3a64b552b9 Add alternative output for window_functions 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci d09227d52e Add some normalization rules for pg14 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 44f7e07530 Turn off COSTS to avoid alternative output for pg14 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 65814b503e Change pg13 test to not differ with pg14 to avoid adding alternative output 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 1171a4a3b6 Remove VERBOSE output to make pg14 and pg13 output the same 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 84b1f74939 Use rte->updatedCols to determine if partition column exists
Use rte->updatedCols to determine if partition column exists in the
target list in case of UPDATE.

Commit on PG:
86dc90056dfdbd9d1b891718d2e5614e3e432f35
2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 9d73845580 Use oid_hash in write state management 2021-08-25 16:18:32 +03:00
Halil Ozan Akgul 6391810632 Changes array_cat argument type from anyarray to anycompatiblearray
Relevant PG commit:
9e38c2bb5093ceb0c04d6315ccd8975bd17add66
2021-08-25 16:18:32 +03:00
Sait Talha Nisanci f287472150 Fix unlimited copy size variable's value 2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 1520b1900a Use empty string instead of NULL for queryString
Postgres doesn't accept NULL for queryStrings in explain plans anymore.
Internally, there are some places in Postgres where they modified the
NULLS to ""(the empty string). So we do the same on citus side.

Commit on Postgres:
1111b2668d89bfcb6f502789158b1233ab4217a6
2021-08-25 16:18:32 +03:00
Sait Talha Nisanci 8d6c5d1fb9 Use HASH_STRINGS explicitly in hash functions
Postgres expects to set the HASH_STRINGS explicitly in case of the
default behaivor for string hash function.

Postgres Commit
b3817f5f774663d55931dd4fab9c5a94a15ae7ab
2021-08-25 16:18:32 +03:00