Commit Graph

1992 Commits (aeef44e60fc149cbb39ba03edbde331d5ec2657a)

Author SHA1 Message Date
Mehmet Furkan ŞAHİN bdfe1ed702
Merge pull request #2165 from citusdata/enterprise_test_fix_drop_table_add
enterprise test fixes
2018-05-10 14:22:59 +03:00
mehmet furkan şahin b8c3197399 enterprise test fixes 2018-05-10 13:06:54 +03:00
Önder Kalacı 0e1a01921d
Merge pull request #2164 from citusdata/fix_concurrent_reg_test
Run concurrent modification queries in tests sequentially
2018-05-10 12:17:41 +03:00
Onder Kalaci 04d9e886fe Run concurrent modification queries in tests sequentially 2018-05-10 11:59:18 +03:00
Mehmet Furkan ŞAHİN 42b9690552
Merge pull request #2143 from citusdata/create_distributed_table_test_update_2
Create distributed table test update
2018-05-10 11:39:13 +03:00
mehmet furkan şahin 785a86ed0a Tests are updated to use create_distributed_table 2018-05-10 11:18:59 +03:00
Mehmet Furkan ŞAHİN ae97df43be
Merge pull request #2155 from citusdata/valgrind_fix
valgrind tests fixed
2018-05-10 10:46:02 +03:00
mehmet furkan şahin d35f2725bf valgrind tests fix 2018-05-10 10:20:14 +03:00
Marco Slot a63e628120
Merge pull request #2142 from citusdata/master_update_node_locking
Make master_update_node block writes to the node
2018-05-09 14:27:03 +02:00
Dimitri Fontaine 8b258cbdb0 Lock reads and writes only to the node being updated in master_update_node
Rather than locking out all the writes in the cluster, the function now only
locks out writes that target shards hosted by the node we're updating.
2018-05-09 15:14:20 +02:00
Hadi Moshayedi 4198ad7618
Merge pull request #2157 from citusdata/fix_router_select
Throw an error if placements cannot be found in router executor
2018-05-08 23:04:45 -04:00
Marco Slot 5f5f7b4fe0 Throw an error if placements cannot be found in router executor 2018-05-08 22:39:18 -04:00
Marco Slot b4cfa2f283
Merge pull request #2158 from citusdata/fix_mx_test
Run recursive_dml_queries_mx test on its own
2018-05-08 17:57:21 +02:00
Marco Slot b86d6eb544
Merge pull request #2151 from citusdata/fix_cte_xact
Ensure sigle-shard modifying CTEs are part of distributed transaction
2018-05-08 14:04:40 +02:00
Burak Velioglu 5b079c125b
Merge pull request #2150 from citusdata/modify_volatility_check
Check volatile functions in modify queries
2018-05-08 11:45:36 +03:00
velioglu caa27161ca Check volatile functions in modify queries 2018-05-08 11:16:40 +03:00
Marco Slot a7e6689890 Run recursive_dml_queries_mx test on its own 2018-05-06 17:12:53 +02:00
Marco Slot 9438e5bde9 Ensure single-shard modifying CTEs are part of distributed transaction 2018-05-06 12:49:40 +02:00
Hadi Moshayedi 86b12bc2d0
Always prefix operators with their namespace. (#2147)
Previously we checked if an operator is in pg_catalog, and if it wasn't we prefixed it with namespace in worker queries. This can have a huge impact on performance of physical planner when using custom data types.

This happened regardless of current search_path config, because Citus overrides the search path in get_query_def_extended(). When we do so, the check for existence of the operator in current search path in generate_operator_name() fails for any operators outside pg_catalog. This means that nothing gets cached, and in the following calls we will again recheck the system tables for existence of the operators, which took an additional 40-50ms for some of the usecases we were seeing.

In this change we skip the pg_catalog check, and always prefix the operator with its namespace.
2018-05-05 13:27:26 -04:00
Marco Slot 0f98e4dd2f
Merge pull request #2137 from citusdata/marco_updel_subquery
Implement recursive planning for DML statements
2018-05-03 22:22:14 +02:00
Murat Tuncer 42a8082721 PG11 compatibility refresh
adds a shim for a changed function api
2018-05-03 13:21:15 -06:00
Marco Slot 2f9c8c6af0 Allow DML commands with unreferenced SELECT CTEs 2018-05-03 14:53:26 +02:00
Marco Slot f8cfe07fd1 Support intermediate results in distributed INSERT..SELECT 2018-05-03 14:42:28 +02:00
Marco Slot 90cdfff602 Implement recursive planning for DML statements 2018-05-03 14:42:28 +02:00
Mehmet Furkan ŞAHİN 711128671a
Merge pull request #2141 from citusdata/regression_tests_large_shard_count2
shard count for some of the tests are increased
2018-05-03 11:05:55 +03:00
mehmet furkan şahin ef90122cd3 shard count for some of the tests are increased 2018-05-03 10:44:43 +03:00
Önder Kalacı 7fd4383886
Merge pull request #2075 from citusdata/hash_single_repartition
Implement hash-repartitioning for single repartition joins (e.g., enable single repartition joins among hash distributed tables)
2018-05-02 22:07:31 +03:00
Onder Kalaci 317dd02a2f Implement single repartitioning on hash distributed tables
* Change worker_hash_partition_table() such that the
     divergence between Citus planner's hashing and
     worker_hash_partition_table() becomes the same.

   * Rename single partitioning to single range partitioning.

   * Add single hash repartitioning. Basically, logical planner
     treats single hash and range partitioning almost equally.
     Physical planner, on the other hand, treats single hash and
     dual hash repartitioning almost equally (except for JoinPruning).

   * Add a new GUC to enable this feature
2018-05-02 18:50:55 +03:00
Burak Velioglu 7850f93127
Merge pull request #2124 from citusdata/ot_msud_subquery
Support UPDATE/DELETE with joins and subqueries
2018-05-02 17:25:07 +03:00
velioglu 32bcd610c1 Support modify queries with multiple tables
With this commit we begin to support modify queries with multiple
tables if these queries are pushdownable.
2018-05-02 16:22:26 +03:00
Burak Velioglu 38bdd51dea
Merge pull request #2104 from citusdata/refactor_subquery
Refactor query pushdown related logic
2018-05-02 15:27:31 +03:00
velioglu d9fa69c031 Refactor query pushdown related logic 2018-05-02 15:03:09 +03:00
Brian Cloutier f8fb7a27fb Don't copyObject into the wrong memory context
utilityStmt sometimes (such as when it's inside of a plpgsql function)
comes from a cached plan, which is kept in a child of the
CacheMemoryContext. When we naively call copyObject we're copying it into
a statement-local context, which corrupts the cached plan when it's
thrown away.
2018-05-01 15:34:32 -07:00
Marco Slot 663c9b2a39
Merge pull request #2138 from citusdata/drop_shards_users
Make DROP TABLE connect as current user instead of superuser
2018-05-01 11:22:40 +02:00
Marco Slot 2559b84049 Drop shards as current user instead of super user 2018-05-01 09:57:20 +02:00
Marco Slot 64280a2329
Merge pull request #1991 from citusdata/remove_broadcast_pr4
Remove usages of large_table_shard_count GUC
2018-04-30 18:22:31 +02:00
Önder Kalacı b1e6636398
Merge pull request #2107 from citusdata/simplify_optimizer_phase_3
Simplify optimizer [Phase 3]  - Move processing each part of the query into its own functions
2018-04-29 12:56:17 +03:00
velioglu 121ff39b26 Removes large_table_shard_count GUC 2018-04-29 10:34:50 +02:00
Onder Kalaci 832c91e28c Move processing each part of the query into its own functions
This commit doesn't change any of the logic at all.

Instead, the goal is to:

 * Get rid of any code duplication
 * Incremental changes to the optimizer made it slightly hard
   to follow the code, improve that and make it easier to
   implement new features
 * Simplify the code by moving each part of query processing (e.g.,
   DISTINCT, LIMIT etc) into its own function
 * Make the interaction between each part of the query more
   obvious (e.g., How DISTINCT affects LIMIT etc)
2018-04-27 17:32:38 +03:00
Mehmet Furkan ŞAHİN ca2818b569
Merge pull request #2121 from citusdata/vacuum_analyze_verbose_support
Add support for (VACUUM | ANALYZE) VERBOSE
2018-04-27 16:04:35 +03:00
mehmet furkan şahin f2555317b6 ProcessVacuumStmt update on names 2018-04-27 14:37:01 +03:00
mehmet furkan şahin a4153c6ab1 notice handler is implemented 2018-04-27 14:37:01 +03:00
Marco Slot 304b3a41ba Cache the partition column Var 2018-04-26 14:58:16 -06:00
Jason Petersen 643059860a
Merge pull request #2123 from citusdata/improve_connection_errors
Improve connection error reporting

cr: @jasonmp85
2018-04-26 13:59:59 -06:00
Marco Slot 3d3c19a717
Improve messages for essential connection failures 2018-04-26 12:58:47 -06:00
Marco Slot 88f64d22db
Prevent connection pointer is NULL details 2018-04-26 12:49:57 -06:00
Marco Slot 394732b6be
Add a connection failure error code 2018-04-26 12:49:57 -06:00
Önder Kalacı ebb8f902c8 Relax assertion on transaction rollback failure (#2052)
In case a failure happens when a transaction is rollbacked,
we used to hit an assertion for ensuring there is no pending
activity on the connection. However, that's not true after the
changes in #2031. Thus, we've replaced the assertion with a more
generic function call to consume any pending activity, if exists.
2018-04-26 13:39:03 -04:00
Hadi Moshayedi 24659a97dc
Fail task in real-time executor if no placements found. (#2133) 2018-04-26 12:05:24 -04:00
Murat Tuncer 9610fe70f8
Merge pull request #2118 from citusdata/pg11_compat
PG 11 compatibility refresh
2018-04-26 11:54:00 +03:00