Commit Graph

4183 Commits (cef1d0e915d1e9c130d169b842a0f99a1b9dd02c)

Author SHA1 Message Date
Hadi Moshayedi b72a4d8d19 Clean-up old metadata on TRUNCATE 2020-10-05 10:08:26 -07:00
Hadi Moshayedi 2e47bf5172 Merge pull request #18 from citusdata/rollback
Fix writes after rollback
2020-10-05 09:53:13 -07:00
Hadi Moshayedi a8da9acc63 Fix writes after rollback 2020-10-05 09:51:24 -07:00
Hadi Moshayedi e5a3bd18ae Merge pull request #14 from citusdata/resource_cleanup
Resource cleanup
2020-10-05 09:31:48 -07:00
Hadi Moshayedi a70b0c362e Rename cstore_tables to cstore_data_files 2020-10-05 09:28:40 -07:00
Hadi Moshayedi a87c15a1e1 Address feedback 2020-10-05 09:28:40 -07:00
Ahmet Gedemenli 889fc2db5f
Merge pull request #4214 from citusdata/degrade-gracefully-when-no-background-workers
Degrade gracefully when no background workers available
2020-10-05 17:26:44 +03:00
Ahmet Gedemenli 81db4dca5c Degrade gracefully when no background workers available 2020-10-05 16:55:00 +03:00
Onur Tirtir 2cd0a69dfb
Fix multi-row & router INSERT crash with local exec. when def. cols not specified (#4197)
Multi-row & router INSERT's were crashing with local execution if at
least one of the DEFAULT columns were not specified in VALUES list.

This was because, the changes we make on query->values_lists and
query->targetList was sufficient for deparsing given INSERT for remote
execution but not sufficient for local execution.

With this commit, DEFAULT value normalization for multi-row & router
INSERT's is fixed by adding dummy column references for unspecified
DEFAULT columns.
2020-10-05 10:45:17 +03:00
Hanefi Onaldi ba88ed3f0b
Merge pull request #4207 from citusdata/no-worker-hash-in-insert-select 2020-10-02 18:27:36 +03:00
Hanefi Önaldı 6d8e83d24f
Replace worker_hash calls with partkey IS NOT NULL filters 2020-10-02 18:16:24 +03:00
Önder Kalacı df5aa0f0cc
Switch to sequential execution if the index name is long (#4209)
Citus has the logic to truncate the long shard names to prevent
various issues, including self-deadlocks. However, for partitioned
tables, when index is created on the parent table, the index names
on the partitions are auto-generated by Postgres. We use the same
Postgres function to generate the index names on the shards of the
partitions. If the length exceeds the limit, we switch to sequential
execution mode.
2020-10-02 13:39:34 +03:00
SaitTalhaNisanci 45bb0fb587
Do initial cleanup only once in pg_init (#4213)
In postmasters execution of _PG_init, IsUnderPostmaster will be false and
we want to do the cleanup at that time only, otherwise there is a chance that
there will be parallel queries and we might do a cleanup for things that are
already in use.
2020-10-02 09:12:39 +03:00
Ahmet Gedemenli 6a341b6ab8
Merge pull request #4196 from citusdata/support-explain-analyze-wal
Support EXPLAIN(ANALYZE, WAL)
2020-10-01 14:43:42 +03:00
Ahmet Gedemenli 70e9edb4f2 Add subplan test with insert 2020-10-01 13:58:55 +03:00
Jelte Fennema 13ef8252e7 Add broken distributed subplan test 2020-10-01 13:52:42 +03:00
Ahmet Gedemenli 3357eea46b Add regression tests for PG13 WAL 2020-10-01 13:52:42 +03:00
Ahmet Gedemenli d268aa7bc8 Support EXPLAIN(ANALYZE, WAL) 2020-10-01 13:52:42 +03:00
Önder Kalacı f3962fc7f6
Merge pull request #4199 from citusdata/terminate_connection
Forcefully terminate connections after citus.node_connection_timeout
2020-10-01 08:56:39 +02:00
Onder Kalaci 56ca256374 Forcefully terminate connections after citus.node_connection_timeout
After the connection timeout, we fail the session/pool. However, the
underlying connection can still be trying to connect. That is dangerous
because the new placement executions have already been in place. The
executor cannot handle the situation where multiple of
EXECUTION_ORDER_ANY task executions succeeds.

Adding a regression test doesn't seem easily doable. To reproduce the issue
- Add 2 worker nodes
- create a reference table
- set citus.node_connection_timeout to 1ms (requires code change)
- Continiously execute `SELECT count(*) FROM ref_table`
- Sometime later, you hit an out-of-array access in
  `ScheduleNextPlacementExecution()` hence crashing.
- The reason for that is sometimes the first connection
  successfully established while the executor is already
  trying to execute the query on the second node.
2020-09-30 18:24:24 +02:00
Hanefi Onaldi 2894002211
Merge pull request #4208 from citusdata/cleanup-pgoptions
Remove some pgoptions to prevent hitting bash command character limits
2020-09-30 17:04:27 +03:00
Hanefi Önaldı 9ec85f1283
Remove some pgoptions to prevent hitting bash command character limits 2020-09-30 15:04:40 +03:00
Onur Tirtir 3f8ac527c9
Merge pull request #4205 from citusdata/update-cl-941
Update CHANGELOG for 9.4.1
2020-09-30 10:47:45 +03:00
Onur Tirtir bc29238546 Update CHANGELOG for 9.4.1 2020-09-30 10:09:54 +03:00
Hanefi Onaldi 85d32bcf35
Merge pull request #4198 from citusdata/disallow-volatile-subquery-in-updates
Disallow volatile functions on single shard update subqueries
2020-09-29 16:27:13 +03:00
Hanefi Önaldı b0a2c1ee5c
Disallow volatile functions on single shard update queries
We currently do not support volatile functions in update/delete statements
because the function evaluation logic does not know how to distinguish
volatile functions (that need to be evaluated per row) from stable functions
(that need to be evaluated per query), and it is also not safe to push the
volatile functions down on replicated tables.
2020-09-29 15:40:21 +03:00
Marco Slot 12ecdea790
Merge pull request #4173 from citusdata/fix/create-index-concurrently-local 2020-09-29 10:15:40 +02:00
Hadi Moshayedi d37c717e14 Clean-up resources on drop 2020-09-28 22:49:24 -07:00
Hadi Moshayedi cf0ba6103e Associate metadata with rel filenode 2020-09-28 22:43:33 -07:00
Hadi Moshayedi 207eedc35a Merge pull request #16 from citusdata/analyze
Initial implementation of ANALYZE
2020-09-28 06:57:15 -07:00
Hadi Moshayedi ec1e277e8e Initial implementation of ANALYZE 2020-09-26 23:55:46 -07:00
Hadi Moshayedi d352a987fa Merge pull request #12 from citusdata/memcxt
reset memory context at end of execution
2020-09-26 23:37:09 -07:00
Hadi Moshayedi 5a077f2308 Remove the unused drop event trigger 2020-09-25 13:10:32 -07:00
Hadi Moshayedi 1d69519bd8 Delete autogenerated expected files 2020-09-25 13:03:34 -07:00
Marco Slot b905c8043d Fix create index concurrently crash with local execution 2020-09-25 11:49:09 +02:00
Ahmet Gedemenli e892e253b1
Merge pull request #4191 from citusdata/sort-explain-analyze-output-by-time
Sort explain analyze output by task time
2020-09-24 14:38:06 +03:00
Ahmet Gedemenli abfb79bda6 Sort explain analyze output by task time
Add sort method parameter for regression tests

Fix check-style

Change sorting method parameters to enum

Polish

Add task fields to OutTask

Add test into multi_explain

Fix isolation test
2020-09-24 11:38:40 +03:00
Jeff Davis 7714b60e5e reset memory context at end of execution 2020-09-23 22:53:49 -07:00
Hadi Moshayedi 398394056c Merge pull request #10 from citusdata/cleanup_metadata
Metadata simplification and some refactoring
2020-09-23 10:42:48 -07:00
Hadi Moshayedi a34cdeb83c Remove StripeFooter 2020-09-23 10:40:55 -07:00
Jeff Davis 1b45cfb52e remove generated sql test files 2020-09-23 09:53:32 -07:00
Hadi Moshayedi db5287069f Make block offsets relative to stripe start 2020-09-23 09:21:13 -07:00
Hadi Moshayedi bc585be3ed Save blockRowCount in StripeMetadata 2020-09-23 09:21:13 -07:00
jeff-davis be5a586843 Merge pull request #9 from citusdata/tableam
Tableam
2020-09-22 08:00:59 -07:00
Onur Tirtir 64d5ac6a10
Do not downgrade if a citus local table exists (#4174)
As the previous versions of Citus don't know how to handle citus local
tables, we should prevent downgrading from 9.5 to older versions if any
citus local tables exists.
2020-09-22 14:19:50 +03:00
Jeff Davis 8af9c91540 address review comments 2020-09-21 18:13:14 -07:00
SaitTalhaNisanci dba7e052df
Merge enterprise branch if it exists (#4181)
* Merge enterprise branch if it exists

We should merge the enterprise branch if it exists in the check
enterpise merge job, otherwise the following can happen:
- there is some change on community that breaks the compilation on
enterprise without creating any conflicts
- we fix the compilation issue by opening a branch on enterprise
- the job doesn't see the enterprise specific fix because it doesn't try
to merge enterprise branch if there are no conflicts

* Update ci/check_enterprise_merge.sh

Co-authored-by: Jelte Fennema <github-tech@jeltef.nl>

* Simplify the steps

Co-authored-by: Jelte Fennema <github-tech@jeltef.nl>
2020-09-21 19:31:10 +03:00
Önder Kalacı bc293d9d5e
Merge pull request #4167 from citusdata/metadata_improvements
Improve the robustness of function call delegation
2020-09-21 15:14:21 +02:00
Onder Kalaci 5d017cd123 Improve node matedata when coordinator is added
Coordinator should always be always active, hasmetadata and
metadasynced. Prevent changing those fields.
2020-09-21 14:53:41 +02:00
Onder Kalaci 6fc1dea85c Improve the robustness of function call delegation
Pushing down the CALLs to the node that the CALL is executed is
dangerous and could lead to infinite recursion.

When the coordinator added as worker, Citus was by chance preventing
this. The coordinator was marked as "not metadatasynced" node
in pg_dist_node, which prevented CALL/function delegation to happen.

With this commit, we do the following:

  - Fix metadatasynced column for the coordinator on pg_dist_node
  - Prevent pushdown of function/procedure to the same node that
    the function/procedure is being executed. Today, we do not sync
    pg_dist_object (e.g., distributed functions metadata) to the
    worker nodes. But, even if we do it now, the function call delegation
    would prevent the infinite recursion.
2020-09-21 14:53:30 +02:00