Commit Graph

1079 Commits (7cf2b48f644aeaa6f3f44bd353bd6d68ea7b3831)

Author SHA1 Message Date
Jason Petersen 7cf2b48f64
Handle DefineRelation changes
Now accepts the original query string; passing NULL is fine.
2017-06-09 16:03:14 -06:00
Jason Petersen 39ed50c52f
Handle removal of deleteWhatDependsOn
Rather than a specific deleteWhatDependsOn, PostgreSQL 10 has a general
performDeletion call whose flags allow emulation of the old function.
2017-06-09 16:03:14 -06:00
Jason Petersen 90bf243904
Remove Node cast of authrole (now RoleSpec)
Rather than Node, the authrole field of CreateSchemaStmt is an actual
RoleSpec type. The cast to Node only makes sense before PostgreSQL 10.
2017-06-09 16:03:14 -06:00
Jason Petersen c0e2a25d92
Handle CreateSchemaCommand changes
Now expects a statement location and length, though passing -1 for both
preserves existing behavior.
2017-06-09 16:03:14 -06:00
Jason Petersen 3ca189ce08
Use new sequence struct field names
Bizarrely, PostgreSQL 10 renames all of Form_pg_sequence's fields.
2017-06-09 16:03:14 -06:00
Jason Petersen aba4f2eff3
Handle sequence metadata access changes
Sequences used to have a pretty weird representation: C code could read
their attributes by loading the single tuple stored in their relation.

Now each sequence has a corresponding tuple in pg_sequence, and there
are syscache entries for each, meaning we can (and must) use syscache
methods to look up attributes for sequences.
2017-06-09 16:03:14 -06:00
Jason Petersen 6fbfe33c51
Handle ExecEvalExprSwitchContext changes
Weirdly, this is one of the places PostgreSQL _removed_ an argument. We
only passed NULL anyways, so just removing it works.
2017-06-09 16:03:14 -06:00
Jason Petersen 6c48c93b6a
Backport get_all_actual_clauses
This is the sole PostgreSQL 10 change that "breaks" Citus; we use this
function and no alternative is available. Fortunately, it's small
enough to copy-paste.
2017-06-09 16:03:14 -06:00
Jason Petersen 59a4fb596c
Add new RTE types to CitusRTEKind
PostgreSQL 10 adds two new RTEKind values and compilation will complain
unless we handle them.
2017-06-09 16:03:14 -06:00
Jason Petersen 1d52af2492
Bump static assert
No changes needed; won't have to check again until 10.1, or whatever
that version ends up being called.
2017-06-09 16:03:14 -06:00
Jason Petersen d5e636b84d
Preserve behavior of self dependency recording
recordDependencyOnSingleRelExpr now accepts a "ignore_self" flag to
disable recording self-dependencies. Passing "false" preserves existing
behavior.
2017-06-09 16:03:14 -06:00
Jason Petersen 6a4cd9965c
Handle pg_analyze_and_rewrite signature change
Now requires a RawStmt rather than any old Node. Methods to parse DDL
into a list of Nodes now return a list of RawStmts; the old Nodes we
expect are available as one of their fields. ParseTreeRawStmt is used
in PostgreSQL 10 to obtain the RawStmt itself; the behavior of the old
ParseTreeNode is preserved and it always returns a simple Node.
2017-06-09 16:03:14 -06:00
Jason Petersen b2319011fe
Specify column in owned sequence call
getOwnedSequences can now filter owned sequences by a specified column.
Passing InvalidAttrNumber preserves the original behavior of returning
all sequences owned by a specified relation.
2017-06-09 16:03:13 -06:00
Jason Petersen b1cf59e32a
Specify dependency type in seq. ownership check
sequenceIsOwned now accepts a dependency type, but simply passing
DEPENDENCY_AUTO preserves existing behavior.
2017-06-09 16:03:13 -06:00
Jason Petersen fdfcbaeb2a
Use new catalog modification wrappers
PostgreSQL 10 removes the ability to directly call CatalogUpdateIndexes
in favor of new CatalogTupleUpdate and CatalogTupleInsert calls, which
do this for us.
2017-06-09 16:03:13 -06:00
Jason Petersen cf7bfdb22b
Address various header changes
Certain PostgreSQL 10 changes require modifications to our includes:

  * pg_sequence's interace has been refactored into its own file
  * textToQualifiedNameList is now in utils/varlena.h
  * pg_getnameinfo_all is now in common/ip.h
  * stringToQualifiedNameList is now in utils/regproc.h
2017-06-09 16:03:13 -06:00
Jason Petersen 300349e646
Handle BeginCopyFrom changes
BeginCopyFrom now accepts a ParseState and callback argument, but it's
again fine to just NULL out both arguments.
2017-06-09 16:03:13 -06:00
Jason Petersen caaaa2c9f7
Handle makeDefElem changes
makeDefElem now requires the token location, but simply passing -1 to
signify "unknown" is sufficient.
2017-06-09 16:03:13 -06:00
Jason Petersen 3c507e7399
Handle LWLockRegisterTranche changes
The initialization of a custom lock tranche is somewhat simplified in
PostgreSQL 10: now a name and identifier are sufficient.
2017-06-09 16:03:13 -06:00
Jason Petersen 0b4b9aa5a9
Add PG_WAIT_EXTENSION to Read/WriteFile calls
Read/WriteFile adds the same "wait_event_info" argument, so I've added
a PG_WAIT_EXTENSION to all these calls as well.
2017-06-09 16:03:13 -06:00
Jason Petersen 4610978c10
Add PG_WAIT_EXTENSION to WaitLatchOrSocket calls
WaitLatchOrSocket now accepts a "wait_event_info" argument for use by
pg_stat. Extensions appear to mostly just pass "PG_WAIT_EXTENSION", so
that's what I've done.
2017-06-09 16:03:13 -06:00
Jason Petersen 603b9cf3c4
Handle ProcessUtility changes
PostgreSQL 10's ProcessUtility now requires a PlannedStmt with its
utilityStmt field set to what we used to pass directly.

In addition, it receives a QueryEnvironment reference, altogether new
but apparently OK to NULL out for now.

This adds a wrapper to adapt to the new style and fixes all callers.
2017-06-09 16:03:13 -06:00
Jason Petersen a34e9e30d7
Rename PartitionKey to DistPartitionKey
PostgreSQL 10 adds a PartitionKey symbol which conflicts with ours.
2017-06-09 16:03:13 -06:00
Jason Petersen 0d873b0758
Add pg_regress_multi support for PostgreSQL 10
We'll need to be able to run tests against PostgreSQL 10.
2017-06-09 16:03:13 -06:00
Jason Petersen 3a397c66ca
Modify configure to permit PostgreSQL 10
Can't very well compile for the new version if configure won't let us!
2017-06-09 16:03:13 -06:00
Marco Slot d3e0742b8d Merge pull request #1441 from citusdata/remove_copy_xact_check
Allow COPY after a multi-shard command
2017-06-09 14:19:06 +02:00
Marco Slot 70abfd29d2 Allow COPY after a multi-shard command
This change removes the XactModificationLevel check at the start of COPY
that was made redundant by consistently using GetPlacementConnection.
2017-06-09 13:54:58 +02:00
Jason Petersen 50501227e9
Add ORDER clause to subquery test missing it 2017-06-08 18:30:14 -06:00
Jason Petersen cc190a4af9
Remove tracked files from gitignore
Causes very hard-to-debug test failures.
2017-06-08 17:39:31 -06:00
Brian Cloutier 38fea7fe66 Add instructions for using citus_indent (#1434) 2017-06-05 13:21:47 +03:00
Metin Döşlü a7c94cb36d Merge pull request #1431 from jmunsch/jmunsch_errmsg
Update to errmsg for mixed location insert into
2017-06-02 10:48:49 +03:00
jmunsch 1647d17a14 Clarify error message for local and distributed query plans. 2017-06-01 11:52:49 -07:00
Jason Petersen a1e44328b2
Add 6.2.2 CHANGELOG entry 2017-05-31 17:02:41 -06:00
Jason Petersen eaa9dabad1
Add 6.1.2 CHANGELOG entry 2017-05-31 17:02:24 -06:00
Andres Freund 5d0db7a9dd Merge pull request #1438 from citusdata/fix_shard_move_lock
Don't take a table lock in ForeignConstraintGetReferencedTableId
2017-05-31 15:26:19 -07:00
Marco Slot f1d804180b Don't take a table lock in ForeignConstraintGetReferencedTableId 2017-05-31 11:15:21 +02:00
Önder Kalacı 0e3369a863 Merge pull request #1389 from citusdata/improve_subquery_reg_tests
Improve subquery pushdown regression tests
2017-05-30 14:18:37 +03:00
Onder Kalaci df494c0403 Improve subquery pushdown regression tests
- Use native postgres function for composite key btree functions
  - Move explain tests to multi_explain.sql (get rid of .out _0.out files)
  - Get rid of input/output files for multi_subquery.sql by moving table creations
  - Update some comments
2017-05-30 14:05:15 +03:00
Jason Petersen b072708802
Bump CHANGELOG for 6.2.1 2017-05-24 13:30:36 -06:00
Marco Slot 1910a93b9a Merge pull request #1427 from citusdata/fix_version_checks
Fix version checks
2017-05-24 19:04:26 +02:00
Burak Yucesoy aff6a3dcc4 Add tests for version check 2017-05-24 17:39:25 +03:00
Burak Yucesoy 8c1bbf1417 Register cache invalidation callback before version checks
With this commit we start to register InvalidateDistRelationCacheCallback
function as cache invalidation callback function before version checks
because during version checks we use cache to look up relation ids of some
relations like pg_dist_relation or pg_dist_partition_logical_relid_index
and we want to know about cache invalidation before accessing them.
2017-05-24 17:39:25 +03:00
Burak Yucesoy c7bfa06cb9 Fix incorrect call to CheckInstalledVersion
During version update, we indirectly calld CheckInstalledVersion via
ChackCitusVersions. This obviously fails because during version update it is
expected to have version mismatch between installed version and binary version.
Thus, we remove that ChackCitusVersions. We now only call ChackAvailableVersion.
2017-05-24 17:39:25 +03:00
Önder Kalacı 1ea96b626b Merge pull request #1426 from citusdata/better_comment_for_tests
Add comment to subquery regression test file
2017-05-22 11:12:20 +03:00
Önder Kalacı 757f5be858 Merge branch 'master' into better_comment_for_tests 2017-05-22 10:58:21 +03:00
Onder Kalaci a5c12b968b Add comment to the regression test file to prevent any misunderstandings about
the usage of enable_router_execution GUC variable.
2017-05-22 10:39:32 +03:00
Burak Yücesoy 7d28423891 Merge pull request #1425 from citusdata/fix_aggressive_error_out
Fix aggressive error out behavior
2017-05-21 23:35:34 -08:00
Burak Yucesoy 7a7c74cc87 Add tests for version checks 2017-05-22 09:53:29 +03:00
Burak Yucesoy 9fb15c439c Add version checks to necessary UDFs 2017-05-22 09:53:29 +03:00
Burak Yucesoy eea8c51e1f Only error out on distributed queries when there is version mismatch
Before this commit, we were erroring out at almost all queries if there is a
version mismatch. With this commit, we started to error out only requested
operation touches distributed tables.

Normally we would need to use distributed cache to understand whether a table
is distributed or not. However, it is not safe to read our metadata tables when
there is a version mismatch, thus it is not safe to create distributed cache.
Therefore for this specific occasion, we directly read from pg_dist_partition
table. However; reading from catalog is costly and we should not use this
method in other places as much as possible.
2017-05-22 09:53:29 +03:00