Commit Graph

1852 Commits (f163932a1b5429089ae5e90b64d7f852ccc33813)

Author SHA1 Message Date
Burak Velioglu f163932a1b
Merge pull request #2169 from citusdata/citus-7.4.0-changelog-1526370810
Add changelog entry for 7.4.0
2018-05-15 14:18:07 +03:00
velioglu c248c8ac38 Add changelog entry for 7.4.0 2018-05-15 11:44:30 +03:00
Marco Slot cce658ad8c
Merge pull request #2166 from citusdata/version_bump_windows
Fix regression tests in AppVeyor
2018-05-11 22:27:48 +02:00
Marco Slot 9323db2e05
Merge pull request #2161 from citusdata/move-intermediate-results-directory
Move call to RemoveIntermediateResultsDirectory
2018-05-11 11:44:53 +02:00
Marco Slot 61d2c0f618 Stabilise output of multi_shard_update_delete test 2018-05-11 08:33:23 +02:00
Onder Kalaci ed47e4e6b9 Remove placementId from the ORDER BY to make results consistent 2018-05-11 17:04:50 +03:00
Onder Kalaci 12e50d96dc Fix tests where hll is not installed 2018-05-11 16:01:47 +03:00
Onder Kalaci b1619e182d Make sure windows are build with the latest version 2018-05-11 15:44:19 +03:00
Brian Cloutier 4c2bf5d2d6 Move call to RemoveIntermediateResultsDirectory
Errors thrown in the COMMIT handler will cause Postgres to segfault,
there's nothing it can do it abort the transaction by the time that
handler is called!

RemoveIntermediateResultsDirectory is problematic for two reasons:
- It has calls to ereport(ERROR which have been known to trigger
- It makes memory allocations which raise ERRORs when they fail

Once the COMMIT process has begun we don't use the intermediate results,
so it's safe to remove them a little earlier in the process. A failure
here will abort the transaction. That's pretty unnecessary, it's not
that important that we remove the results, but it's still better than a
crash.
2018-05-10 19:28:41 -07:00
Brian Cloutier b3e85e4f71 Fix the huge appveyor diffs 2018-05-10 18:18:43 -07:00
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