Commit Graph

5781 Commits (propagate-lock-table)

Author SHA1 Message Date
gledis69 cb10a3bbf8 Merge branch 'master' into propagate-lock-table 2022-04-26 20:40:20 +03:00
gledis69 bda8d604cd Fix tests
Fix tests that are broken due to worker not being allowed to acquire distributed locks
2022-04-26 20:08:39 +03:00
gledis69 d50c015934 Fix tests 2022-04-25 19:01:31 +03:00
gledis69 5d6ac5d0a1 * Addresses comments (adding PreprocessLockStatement fxn, adding quote literal string)
* Adds tests for distributed locks (both isolation and normal tests)
* TRUNCATE now cannot be issued on a worker if the coordinator is not in the metadata
2022-04-25 18:16:19 +03:00
Önder Kalacı 1f6783b526
Merge pull request #5906 from citusdata/relax_disable_node
Do not set coordinator's metadatasynced column to false
2022-04-25 09:31:40 +02:00
Onder Kalaci 5fc7661169 Do not set coordinator's metadatasynced column to false
After a disable_node
2022-04-25 09:25:59 +02:00
Önder Kalacı f938f393e5
Merge pull request #5901 from citusdata/fix_local_procs_deadlocks
Do not assign distributed transaction ids for local execution
2022-04-25 09:25:24 +02:00
gledis69 a250c4f350 Fix current failing test 2022-04-20 23:22:14 +03:00
gledis69 1f926db4fa Allow LOCK TABLE to be run in a procedure / function 2022-04-19 16:59:38 +03:00
gledis69 3debcd4f38 Streamlined Lock Distribution
* Packaged the logic in a single method which can be invoked by different operations which need to acquire distributed locks.
* Error checking, cleaned up some duplicated code, removed some redundant validation, fixed bug in reading nowait in `lock_relation_if_exists`
2022-04-19 13:15:41 +03:00
Onder Kalaci a2debe0f02 Do not assign distributed transaction ids for local execution
In the past, for all modifications on the local execution,
we enabled 2PC (with 6a7ed7b309).

This also required us to enable coordinated transactions
via https://github.com/citusdata/citus/pull/4831 .

However, it does have a very substantial impact on the
distributed deadlock detection. The distributed deadlock
detection is designed to avoid single-statement transactions
because they cannot lead to any actual deadlocks.

The implementation is to skip backends without distributed
transactions are assigned. Now that we assign single
statement local executions in the lock graphs, we are
conflicting with the design of distributed deadlock
detection.

In general, we should fix it. However, one might
think that it is not a big deal, even if the processes
show up in the lock graphs, the deadlock detection
should not be causing any false positives. That is
false, unless https://github.com/citusdata/citus/issues/1803
is fixed. Now that local processes are considered as a single
distributed backend, the lock graphs might find:

    local execution 1 [tx id: 1] -> any local process [tx id: 0]
    any local process [tx id: 0] -> local execution 2 [tx id: 2]

And, decides that there is a distributed deadlock.

This commit is:
   (a) right thing to do, as local execuion should not need any
       distributed tx id
   (b) Eliminates performance issues that might come up with
       deadlock detection does a lot of unncessary checks
   (c) After moving local execution after the remote execution
       via https://github.com/citusdata/citus/pull/4301, the
       vauge requirement for assigning distributed tx ids are
       already gone.
2022-04-13 13:25:12 +02:00
Hanefi Onaldi 6254f30305
Add arbitrary config tests for function DDL statements (#5885) 2022-04-12 16:03:10 +03:00
Önder Kalacı dd78c81378
Fix flaky isolation - 1 (#5900)
* Do not show any PG internal queries
2022-04-11 20:43:51 -07:00
Hanefi Onaldi f34fc37478
Merge pull request #5895 from citusdata/changelog-updates 2022-04-11 16:03:15 +03:00
gledis69 a7fa46ea63 Test Fix + Comments + Renames 2022-04-11 14:42:25 +03:00
Hanefi Onaldi 3ec1fc48fc
Add changelog entries for 11.0.1_beta 2022-04-11 14:06:25 +03:00
gledis69 e50ad9e8f9 Remove noticed used in debugging 2022-04-11 12:33:40 +03:00
gledis69 9312eda040 Naive lock propagation 2022-04-11 12:31:37 +03:00
Burak Velioglu 31df111ecb
Merge pull request #5893 from citusdata/velioglu/fix_function_in_tx
Create function in transaction according to create object propagation guc
2022-04-08 17:51:41 +03:00
Burak Velioglu 5d9599f964
Create function in transaction according to create object propagation guc 2022-04-08 17:15:31 +03:00
Nils Dijk 31493288de
Merge pull request #5764 from citusdata/feature/domain-type
Feature: propagate DOMAIN objects
2022-04-08 16:14:18 +02:00
Nils Dijk 8897361f95
Implement DOMAIN propagation for citus 2022-04-08 15:25:39 +02:00
Jelte Fennema 6d8c5931d6
Work around flaky test related to search_path (#5894)
For some reason search_path is not always set correctly on the worker
when calling a distributed function, this shows up when calling
`insert_document` in our distributed_triggers test. The underlying
reason is currently unknown and warrants deeper investigation.

Currently this test is one of the main causes for random CI failures. So
this change sets the search_path of each function explicitly, to reduce
these failures. So other devs can be more efficient, while I continue
investigating the root cause of this issue.

Also changes explicit `SET citus.enable_unsafe_triggers = false` to
`RESET citus.enable_unsafe_triggers` in passing.
2022-04-08 16:09:33 +03:00
Önder Kalacı 78d8561b59
Merge pull request #5880 from citusdata/rename_metadata_func
Rename metadata sync to node metadata sync where applicable
2022-04-07 21:53:55 +02:00
Onder Kalaci b0b91bab04 Rename metadata sync to node metadata sync where applicable 2022-04-07 17:51:31 +02:00
Marco Slot 54f97c7b2b
Merge pull request #5879 from citusdata/marcocitus/fix-unique-index 2022-04-07 16:28:04 +02:00
Marco Slot 2304815356 Allow adding a unique constraint with an index 2022-04-07 16:00:31 +02:00
Marco Slot 67fdecfcb0
Merge pull request #5882 from citusdata/marcocitus/fix-explain 2022-04-07 15:59:44 +02:00
Marco Slot c0827703ec Fix EXPLAIN ANALYZE JSON format for subplans 2022-04-07 11:38:20 +02:00
Marco Slot f9bbcb8840
Merge pull request #5883 from citusdata/marcocitus/fix-explain-parameters 2022-04-07 11:36:47 +02:00
Marco Slot 544dce919a Handle user-defined type parameters in EXPLAIN ANALYZE 2022-04-07 11:14:32 +02:00
Hanefi Onaldi b092a1a496
Use consistent naming for tap test workflows in CI config (#5874)
All the job names in our CI config are of the form `test-1[34]_.*` except for tap-recovery tests.
2022-04-05 05:53:55 +02:00
Marco Slot b69713937d
Merge pull request #5878 from citusdata/marcocitus/remove-old-repartitioning 2022-04-04 20:18:38 +02:00
Marco Slot 9476f377b5 Remove old re-partitioning functions 2022-04-04 18:11:52 +02:00
Marco Slot b511e28e80
Merge pull request #5875 from citusdata/marcocitus/tablesample 2022-04-01 16:47:03 +02:00
Marco Slot 8c8c3b665d Add TABLESAMPLE support 2022-04-01 15:51:40 +02:00
Ahmet Gedemenli 5374c771a9
Merge pull request #5872 from citusdata/schema-tests-arbitrary
Add schema tests to arbitrary configs
2022-04-01 16:17:13 +03:00
Ahmet Gedemenli a62de6494d Add schema tests to arbitrary configs 2022-04-01 13:57:17 +03:00
jeff-davis c485a04139
Separate build of citus.so and citus_columnar.so. (#5805)
* Separate build of citus.so and citus_columnar.so.

Because columnar code is statically-linked to both modules, it doesn't
make sense to load them both at once.

A subsequent commit will make the modules entirely separate and allow
loading them both simultaneously.

Author: Yanwen Jin

* Separate citus and citus_columnar modules.

Now the modules are independent. Columnar can be loaded by itself, or
along with citus.

Co-authored-by: Jeff Davis <jefdavi@microsoft.com>
2022-03-31 19:47:17 -07:00
Gledis Zeneli c9aab7fb8b
Add TRUNCATE arbitrary config tests (#5848)
Adds TRUNCATE arbitrary config tests.
Also adds the ability to skip tests from particular configs.
2022-03-31 14:14:47 +03:00
Önder Kalacı a0a2e80c78
Merge pull request #5869 from citusdata/do_not_hide_shards_from_pg
Only hide shards from client backends or non-pg background workers
2022-03-30 17:43:22 +02:00
Onder Kalaci 9043a1ed3f Only hide shards from client backends and pg bg workers
The aim of hiding shards is to hide shards from client applications.

Certain bg workers (such as pg_cron or Citus maintanince daemon)
should be treated like client applications because users can run
queries from such bg workers. And, these bg workers should follow
the similar application_name checks as client backeends.

Certain other bg workers, such as logical replication or postgres'
parallel workers, should never hide shards. They are internal
operations.

Similarly the other backend types like the walsender or
checkpointer or autovacuum should never hide shards.
2022-03-30 16:56:12 +02:00
Ahmet Gedemenli b94422d5cf
Merge pull request #5867 from citusdata/arbitrary-configs-view-test
Add view tests to arbitrary configs
2022-03-30 16:17:31 +03:00
Ahmet Gedemenli f74d3eedc8 Add tests for materialized views 2022-03-30 16:01:11 +03:00
Ahmet Gedemenli 8ef2da8192 Add view tests to arbitrary configs 2022-03-30 12:28:31 +03:00
Önder Kalacı 670fae99f7
Add tests with function dependencies on tables (#5866)
We are not sure if we have such tests, but lets add anyway
2022-03-29 18:04:07 +03:00
Ahmet Gedemenli 1e1e66eeed
Add index tests to arbitrary configs (#5862) 2022-03-29 13:49:05 +03:00
Ahmet Gedemenli b52823f8b4
Fix typo in error message for truncating foreign tables (#5864) 2022-03-29 13:14:16 +03:00
Önder Kalacı 6cb04c0d84
Merge pull request #5865 from citusdata/add_tests_check_mx
add missing check_mx for the schedules
2022-03-29 11:33:42 +02:00
Onder Kalaci 23ff095905 add missing check_mx 2022-03-29 10:35:12 +02:00