Commit Graph

1365 Commits (89d02c6115733dc8e5b39f99119f74f34a35a74a)

Author SHA1 Message Date
Jason Petersen 89d02c6115
Add ruleutils file for PostgreSQL 11 2017-09-25 17:20:24 -07:00
Jason Petersen bbc15e0598
Handle HASHPROC changes
PostgreSQL 11 now has "standard" and "extended" (64-bit) versions of
hash functions.
2017-09-25 17:20:24 -07:00
Jason Petersen b4474fc0b0
Modify version-output tests for PostgreSQL 11
Basically we just care whether the running version is before or after
PostgreSQL 10, so testing the major version against 9 and printing a
boolean is sufficient.
2017-09-25 17:20:24 -07:00
Jason Petersen 6c9b19a954
Add version-compat header
For polyfill macros, etc.
2017-09-25 17:20:23 -07:00
Jason Petersen fbeaa2f9d0
Remove direct access to tupleDesc->attrs
A level of indirection was removed from this field for PostgreSQL 11.
By using the handy provided macro, we can be version agnostic.
2017-09-25 17:20:23 -07:00
Jason Petersen 6a020b5adc
Update CopyGetAttnums with latest from PostgreSQL
This function was recently modified to use the TupleDescAttr wrapper,
which abstracts away recent changes to TupleDesc.
2017-09-25 17:20:23 -07:00
Marco Slot 91d9b41822 Merge pull request #1591 from citusdata/fix-shard-cache-inval
Fix possible shard cache incoherency.
2017-09-25 17:01:03 -07:00
Andres Freund 78716e5546 Fix possible shard cache incoherency.
When a table and it's shards are dropped, and afterwards the same
shard identifiers are reused, e.g. due to a DROP & CREATE EXTENSION,
the old entry in the shard cache and the required entry in the shard
cache might be for different tables.

Force invalidation for both old and new table to fix.
2017-09-25 13:05:09 -07:00
Jason Petersen 41350fdd54
Remove obsolete lines 2017-09-25 11:18:25 -07:00
Burak Velioglu 24dc95ee98 Merge pull request #1580 from citusdata/change_error_message_of_local_dist
Add error detail if query contains both local and distributed tables
2017-09-25 10:05:37 -07:00
velioglu 0a56ed910b Change error message of queries with distributed and local table
Citus can handle INSERT INTO ... SELECT queries if the query inserts
into local table by reading data from distributed table. The opposite
way is not correct. With this commit we warn the user if the latter
option is used.
2017-09-22 13:46:19 -07:00
Önder Kalacı fb70400b61 Merge pull request #1661 from citusdata/fix_crash
Trim trailing characters & copy the message returned by `PQerrorMessage()`
2017-09-22 23:10:56 +03:00
Onder Kalaci 867224bdd7 Make the tests produce more consistent outputs 2017-09-22 20:38:56 +03:00
Onder Kalaci 4782f9f98a Properly copy and trim the error messages that come from pg_conn
When a NULL connection is provided to PQerrorMessage(), the
returned error message is a static text. Modifying that static
text, which doesn't necessarly be in a writeable memory, is
dangreous and might cause a segfault.
2017-09-22 19:43:09 +03:00
Onder Kalaci 6736fd1682 Remove two obsolete functions
Namely GetConnectionFromPGconn() and CloseConnectionByPGconn()
2017-09-21 00:36:23 -06:00
Önder Kalacı 9901017f3f Merge pull request #1652 from citusdata/fix_create_schema
Ensure schema exists on reference table creation
2017-09-19 00:12:21 +03:00
Onder Kalaci 33ec33c5b3 Ensure schema exists on reference table creation
If the schema doesn't exists on the workers, create it.
2017-09-18 23:50:47 +03:00
Önder Kalacı c6ec49312c Merge pull request #1653 from citusdata/fix_group_by
Allow pushing down GROUP BYs when at least there is one distribution
2017-09-15 19:38:15 +03:00
Onder Kalaci 6116c8e93d Allow pushing down GROUP BYs when at least there is one distribution
column in the target list
2017-09-15 19:15:06 +03:00
Önder Kalacı 6c9dffccbf Merge pull request #1628 from citusdata/expand_subquery_reference_table
Expand subquery pushdown for reference tables
2017-09-15 00:04:11 +03:00
Onder Kalaci a5b66912d4 Expand reference table support in subquery pushdown
With this commit, we relax the restrictions put on the reference
tables with subquery pushdown.

We did three notable improvements:

1) Relax equi-join restrictions

 Previously, we always expected that the non-reference tables are
 equi joined with reference tables on the partition key of the
 non-reference table.

 With this commit, we allow any column of non-reference tables
 joined using non-equi joins as well.

2) Relax OUTER JOIN restrictions

 Previously Citus errored out if any reference table exists at
 any point of the outer part of an outer join. For instance,
 See the below sketch where (h) denotes a hash distributed relation,
 (r) denotes a reference table, (L) denotes LEFT JOIN and
 (I) denotes INNER JOIN.

             (L)
             /  \
           (I)     h
          /  \
        r      h

 Before this commit Citus would error out since a reference table
 appears on the left most part of an left join. However, that was
 too restrictive so that we only error out if the reference table
 is directly below and in the outer part of an outer join.

3) Bug fixes

 We've done some minor bugfixes in the existing implementation.
2017-09-14 20:59:22 +03:00
Burak Yucesoy 18b9be3dfa Add CHANGELOG entry for 7.0.1 release 2017-09-12 17:52:09 -06:00
Marco Slot c2f4eaa281 Merge pull request #1648 from citusdata/fix_put_copy_data
Wait for I/O to finish after PQputCopyData
2017-09-12 16:35:53 -07:00
Marco Slot d1befa4df9 Wait for I/O to finish after PQputCopyData 2017-09-12 16:18:42 -07:00
Marco Slot f5361d52e7 Merge pull request #1643 from citusdata/fix_insert_select_memory
Free per-tuple COPY memory in INSERT...SELECT via coordinator
2017-09-12 15:49:04 -07:00
Marco Slot cbe16169b4 Free per-tuple COPY memory in INSERT...SELECT 2017-09-12 15:35:53 -07:00
Marco Slot b0df3a6746 Merge pull request #1645 from citusdata/fix_prepared_memory
Copy MultiPlan to avoid reuse across prepared statements
2017-09-12 14:48:05 -07:00
Marco Slot 27da0a29d7 Add volatile function in prepared statement regression test 2017-09-12 13:09:31 -07:00
Marco Slot 5fe0845d7e Always copy MultiPlan in GetMultiPlan 2017-09-12 11:38:52 -07:00
Jason Petersen e29ebe57fd Merge pull request #1632 from citusdata/update_copied_code
Add latest PostgreSQL changes to copy-pasted code

cr: @mtuncer
2017-09-08 14:59:14 -06:00
Jason Petersen 8b2c3fcc15
Add clarifying comment to RngVarCallbackForDropIdx
We don't need the PARTITION-related logic recently added in PostgreSQL.
2017-09-01 15:57:30 -06:00
Jason Petersen ec30ad38ba
Update ruleutils_10 with latest PostgreSQL changes
See:
	postgres/postgres@21d304dfed
	postgres/postgres@bb5d6e80b1
	postgres/postgres@d363d42bb9
	postgres/postgres@eb145fdfea
	postgres/postgres@decb08ebdf
	postgres/postgres@a3ca72ae9a
	postgres/postgres@bc2d716ad0
	postgres/postgres@382ceffdf7
	postgres/postgres@c7b8998ebb
	postgres/postgres@e3860ffa4d
	postgres/postgres@76a3df6e5e
2017-09-01 14:26:59 -06:00
Jason Petersen ebecde8f6e
Update ruleutils_96 with latest PostgreSQL changes
See:
	postgres/postgres@41ada83774
	postgres/postgres@3b0c2dbed0
	postgres/postgres@ff2d537223
2017-09-01 14:26:53 -06:00
Jason Petersen 0e134a9178 Add PG11/master build, bump tools (#1588)
This build is allowed to fail and finish-fast is enabled, so there is
no negative impact on developers, yet we can now stay better abreast of
upcoming PostgreSQL changes.

The latest citus tools version also adds enable-depend to the flags in
our "custom PG" source-based builds which will result in fewer false
failures due to build caching behavior.
2017-08-30 18:17:28 -06:00
Burak Yücesoy 56f98c7300 Merge pull request #1630 from citusdata/bump_citus_version
Bump Citus version
2017-08-29 15:13:48 +03:00
Burak Yucesoy 273b034720 Bump Citus version 2017-08-28 17:56:39 +03:00
Burak Yücesoy b485da9fb1 Merge pull request #1629 from citusdata/add_7.0_changelog_entry
Add CHANGELOG entry for 7.0 release
2017-08-28 16:33:12 +03:00
Burak Yucesoy 9e89eaa57e Add CHANGELOG entry for 7.0 release 2017-08-28 16:19:24 +03:00
Marco Slot c68bd7efa7 Merge pull request #1621 from citusdata/multi_row_insert_defaults
Allow default columns in multi-row INSERTs
2017-08-25 11:32:43 +02:00
Marco Slot 0aadbb1760 Convert multi-row INSERT target list to Vars 2017-08-25 10:55:56 +02:00
Marco Slot 1920390688 Multi-row INSERTs no longer throw errors in isolation tests 2017-08-25 10:55:56 +02:00
Marco Slot ae00795dab Allow default columns in multi-row INSERTs 2017-08-25 10:55:56 +02:00
Joe Nelson a658f5ecda Two more libs I needed to build citus 2017-08-24 13:04:35 -06:00
Marco Slot b4cc8939fc Merge pull request #1613 from citusdata/fix_ref_table_multi_row_returning
Fix multi-row INSERT with RETURNING on reference tables
2017-08-24 10:56:44 +02:00
Marco Slot c97692f382 Fix multi-row INSERT with RETURNING on reference tables 2017-08-24 10:42:12 +02:00
Marco Slot 7ce2308dc1 Merge pull request #1616 from citusdata/deadlock_detection_warning
Don't error out if deadlock detection fails to connect to worker
2017-08-24 10:31:15 +02:00
Marco Slot dbf18df995 Don't error out if BuildGlobalWaitGraph fails to connect 2017-08-23 19:08:03 +02:00
Burak Yücesoy 7e59c0b019 Merge pull request #1602 from citusdata/add_isolation_tests
Increase coverage of isolation tests - Part 2
2017-08-23 19:44:23 +03:00
Burak Yucesoy 5be6eb9ef6 Increase coverage of isolation tests - Part 2
With this PR we add isolation tests for

COPY to reference table vs. other operations
COPY to partitioned table vs. other operations
Multi row INSERTs vs other operations
INSERT/SELECT vs. other operations
UPSERT vs. other operations
DELETE vs. other operations
TRUNCATE vs. other operations
DROP vs. other operations
DDL vs. other operations

other operations consist of basic SQL operations (like SELECT,
INSERT, DELETE, UPSERT, COPY TRUNCATE, CREATE INDEX) as well
as some Citus functionalities (like master_modify_multiple_shards,
master_apply_delete_command, citus_total_relation_size etc.)
2017-08-23 18:23:36 +03:00
Önder Kalacı 75491b9262 Merge pull request #1612 from citusdata/fix_dead_process
Prevent maintanince deamon crashes due to dead processes
2017-08-23 15:56:24 +03:00