mirror of https://github.com/citusdata/citus.git
Merge remote-tracking branch 'origin/main' into remove-stats-collector
commit
762465da2c
|
|
@ -13,15 +13,3 @@ runs:
|
|||
token: ${{ inputs.codecov_token }}
|
||||
verbose: true
|
||||
gcov: true
|
||||
- name: Create codeclimate coverage
|
||||
run: |-
|
||||
lcov --directory . --capture --output-file lcov.info
|
||||
lcov --remove lcov.info -o lcov.info '/usr/*'
|
||||
sed "s=^SF:$PWD/=SF:=g" -i lcov.info # relative pats are required by codeclimate
|
||||
mkdir -p /tmp/codeclimate
|
||||
cc-test-reporter format-coverage -t lcov -o /tmp/codeclimate/${{ inputs.flags }}.json lcov.info
|
||||
shell: bash
|
||||
- uses: actions/upload-artifact@v4.6.0
|
||||
with:
|
||||
path: "/tmp/codeclimate/*.json"
|
||||
name: codeclimate-${{ inputs.flags }}
|
||||
|
|
|
|||
|
|
@ -404,30 +404,6 @@ jobs:
|
|||
with:
|
||||
flags: ${{ env.PG_MAJOR }}_citus_upgrade
|
||||
codecov_token: ${{ secrets.CODECOV_TOKEN }}
|
||||
upload-coverage:
|
||||
# secret below is not available for forks so disabling upload action for them
|
||||
if: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request' }}
|
||||
env:
|
||||
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ needs.params.outputs.test_image_name }}:${{ fromJson(needs.params.outputs.pg17_version).full }}${{ needs.params.outputs.image_suffix }}
|
||||
needs:
|
||||
- params
|
||||
- test-citus
|
||||
- test-arbitrary-configs
|
||||
- test-citus-upgrade
|
||||
- test-pg-upgrade
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4.1.8
|
||||
with:
|
||||
pattern: codeclimate*
|
||||
path: codeclimate
|
||||
merge-multiple: true
|
||||
- name: Upload coverage results to Code Climate
|
||||
run: |-
|
||||
cc-test-reporter sum-coverage codeclimate/*.json -o total.json
|
||||
cc-test-reporter upload-coverage -i total.json
|
||||
ch_benchmark:
|
||||
name: CH Benchmark
|
||||
if: startsWith(github.ref, 'refs/heads/ch_benchmark/')
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for Citus 13.2devel.
|
||||
# Generated by GNU Autoconf 2.69 for Citus 14.0devel.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
|
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='Citus'
|
||||
PACKAGE_TARNAME='citus'
|
||||
PACKAGE_VERSION='13.2devel'
|
||||
PACKAGE_STRING='Citus 13.2devel'
|
||||
PACKAGE_VERSION='14.0devel'
|
||||
PACKAGE_STRING='Citus 14.0devel'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
|
@ -1249,7 +1249,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures Citus 13.2devel to adapt to many kinds of systems.
|
||||
\`configure' configures Citus 14.0devel to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
|
@ -1310,7 +1310,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of Citus 13.2devel:";;
|
||||
short | recursive ) echo "Configuration of Citus 14.0devel:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
|
@ -1410,7 +1410,7 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
Citus configure 13.2devel
|
||||
Citus configure 14.0devel
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
|
@ -1893,7 +1893,7 @@ cat >config.log <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by Citus $as_me 13.2devel, which was
|
||||
It was created by Citus $as_me 14.0devel, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
|
@ -5248,7 +5248,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by Citus $as_me 13.2devel, which was
|
||||
This file was extended by Citus $as_me 14.0devel, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
|
@ -5310,7 +5310,7 @@ _ACEOF
|
|||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
Citus config.status 13.2devel
|
||||
Citus config.status 14.0devel
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# everyone needing autoconf installed, the resulting files are checked
|
||||
# into the SCM.
|
||||
|
||||
AC_INIT([Citus], [13.2devel])
|
||||
AC_INIT([Citus], [14.0devel])
|
||||
AC_COPYRIGHT([Copyright (c) Citus Data, Inc.])
|
||||
|
||||
# we'll need sed and awk for some of the version commands
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Columnar extension
|
||||
comment = 'Citus Columnar extension'
|
||||
default_version = '13.2-1'
|
||||
default_version = '14.0-1'
|
||||
module_pathname = '$libdir/citus_columnar'
|
||||
relocatable = false
|
||||
schema = pg_catalog
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
-- citus_columnar--13.2-1--14.0-1
|
||||
-- bump version to 14.0-1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
-- citus_columnar--14.0-1--13.2-1
|
||||
-- downgrade version to 13.2-1
|
||||
|
|
@ -355,6 +355,15 @@ DEBUG: Total number of commands sent over the session 8: 1 to node localhost:97
|
|||
(0 rows)
|
||||
```
|
||||
|
||||
### Delaying the Fast Path Plan
|
||||
|
||||
As of Citus 13.2, if it can be determined at plan-time that a fast path query is against a local shard then a shortcut can be taken so that deparse and parse/plan of the shard query is avoided. Citus must be in MX mode and the shard must be local to the Citus node processing the query. If so, the OID of the distributed table is replaced by the OID of the shard in the parse tree. The parse tree is then given to the Postgres planner which returns a plan that is stored in the distributed plan's task. That plan can be repeatedly used by the local executor (described in the next section), avoiding the need to deparse and plan the shard query on each execution.
|
||||
|
||||
We call this delayed fast path planning because if a query is eligible for fast path planning then `FastPathPlanner()` is delayed if the following properties hold:
|
||||
- The query is a SELECT or UPDATE on a distributed table (schema or column sharded) or Citus managed local table
|
||||
- The query has no volatile functions
|
||||
|
||||
If so, then `FastPathRouterQuery()` sets a flag indicating that making the fast path plan should be delayed until after the worker job has been created. At that point the router planner uses `CheckAndBuildDelayedFastPathPlan()` to see if the task's shard placement is local (and not a dummy placement) and the metadata of the shard table and distributed table are consistent (no DDL in progress on the distributed table). If so the parse tree with OID of the distributed table replaced by the OID of the shard table is fed to `standard_planner()` and the resultant plan is saved in the task. Otherwise, if the worker job has been marked for deferred pruning or the shard is not local or the shard is local but it's not safe to swap OIDs, then `CheckAndBuildDelayedFastPathPlan()` calls `FastPathPlanner()` to ensure a complete plan context. Reference tables are not currently supported, but this may be relaxed for SELECT statements in the future. Delayed fast path planning can be disabled by turning off `citus.enable_local_fast_path_query_optimization` (it is on by default).
|
||||
|
||||
## Router Planner in Citus
|
||||
|
||||
|
|
@ -788,14 +797,13 @@ WHERE l.user_id = o.user_id AND o.primary_key = 55;
|
|||
|
||||
|
||||
|
||||
### Ref table LEFT JOIN distributed table JOINs via recursive planning
|
||||
### Outer joins between reference and distributed tables
|
||||
|
||||
Very much like local-distributed table joins, Citus can't push down queries formatted as:
|
||||
In general, when the outer side of an outer join is a recurring tuple (e.g., reference table, intermediate results, or set returning functions), it is not safe to push down the join.
|
||||
```sql
|
||||
"... ref_table LEFT JOIN distributed_table ..."
|
||||
"... distributed_table RIGHT JOIN ref_table ..."
|
||||
```
|
||||
This is the case when the outer side is a recurring tuple (e.g., reference table, intermediate results, or set returning functions).
|
||||
|
||||
In these situations, Citus recursively plans the "distributed" part of the join. Even though it may seem excessive to recursively plan a distributed table, remember that Citus pushes down the filters and projections. Functions involved here include `RequiredAttrNumbersForRelation()` and `ReplaceRTERelationWithRteSubquery()`.
|
||||
|
||||
The core function handling this logic is `RecursivelyPlanRecurringTupleOuterJoinWalker()`. There are likely numerous optimizations possible (e.g., first pushing down an inner JOIN then an outer join), but these have not been implemented due to their complexity.
|
||||
|
|
@ -819,6 +827,45 @@ DEBUG: Wrapping relation "orders_table" "o" to a subquery
|
|||
DEBUG: generating subplan 45_1 for subquery SELECT order_id, status FROM public.orders_table o WHERE true
|
||||
```
|
||||
|
||||
As of Citus 13.2, under certain conditions, Citus can push down these types of LEFT and RIGHT outer joins by injecting constraints—derived from the shard intervals of distributed tables—into shard queries for the reference table. The eligibility rules for pushdown are defined in `CanPushdownRecurringOuterJoin()`, while the logic for computing and injecting the constraints is implemented in `UpdateWhereClauseToPushdownRecurringOuterJoin()`.
|
||||
|
||||
#### Example Query
|
||||
|
||||
In the example below, Citus pushes down the query by injecting interval constraints on the reference table. The injected constraints are visible in the EXPLAIN output.
|
||||
|
||||
```sql
|
||||
SELECT pc.category_name, count(pt.product_id)
|
||||
FROM product_categories pc
|
||||
LEFT JOIN products_table pt ON pc.category_id = pt.product_id
|
||||
GROUP BY pc.category_name;
|
||||
```
|
||||
|
||||
#### Debug Messages
|
||||
```
|
||||
DEBUG: Router planner cannot handle multi-shard select queries
|
||||
DEBUG: a push down safe left join with recurring left side
|
||||
```
|
||||
|
||||
#### Explain Output
|
||||
```
|
||||
HashAggregate
|
||||
Group Key: remote_scan.category_name
|
||||
-> Custom Scan (Citus Adaptive)
|
||||
Task Count: 32
|
||||
Tasks Shown: One of 32
|
||||
-> Task
|
||||
Node: host=localhost port=9701 dbname=ebru
|
||||
-> HashAggregate
|
||||
Group Key: pc.category_name
|
||||
-> Hash Right Join
|
||||
Hash Cond: (pt.product_id = pc.category_id)
|
||||
-> Seq Scan on products_table_102072 pt
|
||||
-> Hash
|
||||
-> Seq Scan on product_categories_102106 pc
|
||||
Filter: ((category_id IS NULL) OR ((btint4cmp('-2147483648'::integer, hashint8((category_id)::bigint)) < 0) AND (btint4cmp(hashint8((category_id::bigint), '-2013265921'::integer) <= 0)))
|
||||
```
|
||||
|
||||
|
||||
### Recursive Planning When FROM Clause has Reference Table (or Recurring Tuples)
|
||||
|
||||
This section discusses a specific scenario in Citus's recursive query planning: handling queries where the main query's `FROM` clause is recurring, but there are subqueries in the `SELECT` or `WHERE` clauses involving distributed tables.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Citus extension
|
||||
comment = 'Citus distributed database'
|
||||
default_version = '13.2-1'
|
||||
default_version = '14.0-1'
|
||||
module_pathname = '$libdir/citus'
|
||||
relocatable = false
|
||||
schema = pg_catalog
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
-- citus--13.2-1--14.0-1
|
||||
-- bump version to 14.0-1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
-- citus--14.0-1--13.2-1
|
||||
-- downgrade version to 13.2-1
|
||||
|
|
@ -983,13 +983,31 @@ MaintenanceDaemonShmemExit(int code, Datum arg)
|
|||
if (myDbData != NULL)
|
||||
{
|
||||
/*
|
||||
* Confirm that I am still the registered maintenance daemon before exiting.
|
||||
* Once the maintenance daemon fails (e.g., due to an error in the main loop),
|
||||
* both Postgres tries to restart the failed daemon and Citus attempt to start
|
||||
* a new one. In that case, the one started by Citus ends up here.
|
||||
*
|
||||
* As the maintenance daemon that Citus tried to start, we might see the entry
|
||||
* for the daemon restarted by Postgres if the system was so slow that it
|
||||
* took a long time for us to be re-scheduled to call MaintenanceDaemonShmemExit(),
|
||||
* e.g., under valgrind testing.
|
||||
*
|
||||
* In that case, we should unregister ourself only if we are still the registered
|
||||
* maintenance daemon.
|
||||
*/
|
||||
Assert(myDbData->workerPid == MyProcPid);
|
||||
|
||||
if (myDbData->workerPid == MyProcPid)
|
||||
{
|
||||
myDbData->daemonStarted = false;
|
||||
myDbData->workerPid = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ereport(LOG, (errmsg(
|
||||
"maintenance daemon for database %u has already been replaced by "
|
||||
"Postgres, skipping to unregister this maintenance daemon",
|
||||
databaseOid)));
|
||||
}
|
||||
}
|
||||
|
||||
LWLockRelease(&MaintenanceDaemonControl->lock);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -359,3 +359,9 @@ s/(Actual[[:space:]]+Rows:[[:space:]]*)N\.N/\1N/gI
|
|||
s/^([ \t]*)List of tables$/\1List of relations/g
|
||||
s/^([ \t]*)List of indexes$/\1List of relations/g
|
||||
s/^([ \t]*)List of sequences$/\1List of relations/g
|
||||
|
||||
# --- PG18 FK wording -> legacy generic form ---
|
||||
# e.g., "violates RESTRICT setting of foreign key constraint" -> "violates foreign key constraint"
|
||||
s/violates RESTRICT setting of foreign key constraint/violates foreign key constraint/g
|
||||
# DETAIL line changed "is referenced" -> old "is still referenced"
|
||||
s/\<is referenced from table\>/is still referenced from table/g
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ CITUS_ARBITRARY_TEST_DIR = "./tmp_citus_test"
|
|||
|
||||
MASTER = "master"
|
||||
# This should be updated when citus version changes
|
||||
MASTER_VERSION = "13.2"
|
||||
MASTER_VERSION = "14.0"
|
||||
|
||||
HOME = expanduser("~")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
Parsed test spec with 2 sessions
|
||||
|
||||
starting permutation: s1-begin s1-upd-ins s2-result s1-commit s2-result
|
||||
setup failed: ERROR: MERGE is not supported on PG versions below 15
|
||||
CONTEXT: PL/pgSQL function inline_code_block line XX at RAISE
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Parsed test spec with 2 sessions
|
||||
|
||||
starting permutation: s1-begin s1-upd-ins s2-begin s2-update s1-commit s2-commit s1-result s2-result
|
||||
setup failed: ERROR: MERGE is not supported on PG versions below 15
|
||||
CONTEXT: PL/pgSQL function inline_code_block line XX at RAISE
|
||||
|
|
@ -22,8 +22,9 @@ ALTER TABLE AT_AddConstNoName.products ADD PRIMARY KEY(product_no);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_pkey
|
||||
|
|
@ -35,8 +36,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_pkey_5410000
|
||||
|
|
@ -57,8 +59,9 @@ ALTER TABLE AT_AddConstNoName.tbl ADD PRIMARY KEY USING INDEX my_index;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'tbl';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'tbl'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
my_index
|
||||
|
|
@ -68,8 +71,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'tbl%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'tbl%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
my_index
|
||||
|
|
@ -87,8 +92,9 @@ ALTER TABLE AT_AddConstNoName.tbl ADD UNIQUE USING INDEX my_index;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'tbl';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'tbl'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
my_index
|
||||
|
|
@ -98,8 +104,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'tbl%'ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'tbl%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
my_index
|
||||
|
|
@ -141,8 +149,9 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_key
|
||||
|
|
@ -154,8 +163,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_key_5410000
|
||||
|
|
@ -168,8 +178,9 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no,name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_name_key
|
||||
|
|
@ -179,8 +190,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_name_key_5410000
|
||||
|
|
@ -193,8 +205,9 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no) INCLUDE(price);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_key
|
||||
|
|
@ -204,8 +217,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_product_no_key_5410000
|
||||
|
|
@ -247,8 +261,9 @@ ALTER TABLE AT_AddConstNoName.products ADD EXCLUDE USING gist (name WITH <> , pr
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_name_product_no_excl
|
||||
|
|
@ -258,8 +273,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_name_product_no_excl_5410000
|
||||
|
|
@ -297,8 +313,9 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_check
|
||||
|
|
@ -308,8 +325,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_check_5410000
|
||||
|
|
@ -322,8 +340,9 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0)
|
|||
SELECT con.conname, con.connoinherit
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
conname | connoinherit
|
||||
---------------------------------------------------------------------
|
||||
products_check | t
|
||||
|
|
@ -333,8 +352,9 @@ SELECT con.conname, con.connoinherit
|
|||
SELECT con.conname, con.connoinherit
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
conname | connoinherit
|
||||
---------------------------------------------------------------------
|
||||
products_check_5410000 | t
|
||||
|
|
@ -347,8 +367,9 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0)
|
|||
SELECT con.conname, con.convalidated
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
conname | convalidated
|
||||
---------------------------------------------------------------------
|
||||
products_check | f
|
||||
|
|
@ -358,8 +379,9 @@ SELECT con.conname, con.convalidated
|
|||
SELECT con.conname, con.convalidated
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
conname | convalidated
|
||||
---------------------------------------------------------------------
|
||||
products_check_5410000 | f
|
||||
|
|
@ -403,8 +425,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD PRIMARY KEY(name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_ref_pkey2
|
||||
|
|
@ -418,8 +441,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD UNIQUE(name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_ref_name_key2
|
||||
|
|
@ -433,8 +457,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD EXCLUDE(product_no WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_ref_product_no_excl2
|
||||
|
|
@ -448,8 +473,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD CHECK (product_no > 0);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
products_ref_check2
|
||||
|
|
@ -475,8 +501,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglonglonglonglo_pkey
|
||||
|
|
@ -487,8 +514,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglo_559ab79d_5410010
|
||||
|
|
@ -505,8 +534,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -518,8 +548,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglong_product_no_key
|
||||
|
|
@ -530,8 +561,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglo_cd61b0cf_5410010
|
||||
|
|
@ -548,8 +581,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -561,8 +595,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglon_product_no_excl
|
||||
|
|
@ -573,8 +608,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglo_057ed027_5410010
|
||||
|
|
@ -591,8 +628,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -604,8 +642,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglonglonglongl_check
|
||||
|
|
@ -616,8 +655,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
verylonglonglonglonglonglonglonglonglonglonglo_d943e063_5410010
|
||||
|
|
@ -634,8 +675,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -665,8 +707,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
dist_partitioned_table_pkey
|
||||
|
|
@ -676,8 +719,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
longlonglonglonglonglonglonglonglonglonglonglo_9e4e3069_5410018
|
||||
|
|
@ -693,8 +738,10 @@ ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_partit
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -711,8 +758,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
dist_partitioned_table_partition_col_key
|
||||
|
|
@ -722,8 +770,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
longlonglonglonglonglonglonglonglonglonglongl__d794d9f1_5410018
|
||||
|
|
@ -745,8 +795,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
dist_partitioned_table_check
|
||||
|
|
@ -756,8 +807,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
dist_partitioned_table_check
|
||||
|
|
@ -773,8 +826,10 @@ ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_parti
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -869,8 +924,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD PRIMARY KEY(id);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_pkey
|
||||
|
|
@ -886,8 +943,10 @@ SELECT create_distributed_table('AT_AddConstNoName.citus_local_table','id');
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_pkey
|
||||
|
|
@ -897,8 +956,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_pkey
|
||||
|
|
@ -917,8 +978,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD UNIQUE(id);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_id_key
|
||||
|
|
@ -928,8 +991,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_id_key
|
||||
|
|
@ -948,8 +1013,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD EXCLUDE(id WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_id_excl
|
||||
|
|
@ -958,8 +1025,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_id_excl
|
||||
|
|
@ -969,8 +1038,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_id_excl
|
||||
|
|
@ -989,8 +1060,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD CHECK(id > 100);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_check
|
||||
|
|
@ -999,8 +1072,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_check
|
||||
|
|
@ -1010,8 +1085,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_table_check
|
||||
|
|
@ -1053,8 +1130,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_partitioned_table_pkey
|
||||
|
|
@ -1064,8 +1142,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
longlonglonglonglonglonglonglonglonglonglonglo_9e4e3069_5410038
|
||||
|
|
@ -1090,8 +1170,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_partitioned_table_partition_col_key
|
||||
|
|
@ -1101,8 +1182,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
longlonglonglonglonglonglonglonglonglonglongl__d794d9f1_5410038
|
||||
|
|
@ -1124,8 +1207,9 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_partitioned_table_check
|
||||
|
|
@ -1135,8 +1219,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
citus_local_partitioned_table_check
|
||||
|
|
@ -1152,8 +1238,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_partitioned_table DROP CONSTRAINT citu
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
|
@ -1172,8 +1260,9 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD PRIMARY KEY ("2nd id", "3rd id");
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'p';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_pkey
|
||||
|
|
@ -1184,8 +1273,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_pkey
|
||||
|
|
@ -1203,8 +1294,9 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD UNIQUE ("2nd id", "3rd id");
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'u';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_2nd id_3rd id_key
|
||||
|
|
@ -1214,8 +1306,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_2nd id_3rd id_key
|
||||
|
|
@ -1233,8 +1327,9 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD EXCLUDE ("2nd id" WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'x';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_2nd id_excl
|
||||
|
|
@ -1244,8 +1339,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_2nd id_excl
|
||||
|
|
@ -1263,8 +1360,9 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD CHECK ("2nd id" > 0 );
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'c';
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_check
|
||||
|
|
@ -1274,8 +1372,10 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
conname
|
||||
---------------------------------------------------------------------
|
||||
2nd table_check
|
||||
|
|
|
|||
|
|
@ -1652,12 +1652,28 @@ SELECT * FROM multi_extension.print_extension_changes();
|
|||
| view citus_stats
|
||||
(12 rows)
|
||||
|
||||
-- Test downgrade to 13.2-1 from 14.0-1
|
||||
ALTER EXTENSION citus UPDATE TO '14.0-1';
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
-- Should be empty result since upgrade+downgrade should be a no-op
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
previous_object | current_object
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
-- Snapshot of state at 14.0-1
|
||||
ALTER EXTENSION citus UPDATE TO '14.0-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
previous_object | current_object
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;
|
||||
-- show running version
|
||||
SHOW citus.version;
|
||||
citus.version
|
||||
---------------------------------------------------------------------
|
||||
13.2devel
|
||||
14.0devel
|
||||
(1 row)
|
||||
|
||||
-- ensure no unexpected objects were created outside pg_catalog
|
||||
|
|
@ -1692,7 +1708,7 @@ DROP EXTENSION citus;
|
|||
DROP EXTENSION citus_columnar;
|
||||
CREATE EXTENSION citus VERSION '8.0-1';
|
||||
ERROR: specified version incompatible with loaded Citus library
|
||||
DETAIL: Loaded library requires 13.2, but 8.0-1 was specified.
|
||||
DETAIL: Loaded library requires 14.0, but 8.0-1 was specified.
|
||||
HINT: If a newer library is present, restart the database and try the command again.
|
||||
-- Test non-distributed queries work even in version mismatch
|
||||
SET citus.enable_version_checks TO 'false';
|
||||
|
|
@ -1737,7 +1753,7 @@ ORDER BY 1;
|
|||
-- We should not distribute table in version mistmatch
|
||||
SELECT create_distributed_table('version_mismatch_table', 'column1');
|
||||
ERROR: loaded Citus library version differs from installed extension version
|
||||
DETAIL: Loaded library requires 13.2, but the installed extension version is 8.1-1.
|
||||
DETAIL: Loaded library requires 14.0, but the installed extension version is 8.1-1.
|
||||
HINT: Run ALTER EXTENSION citus UPDATE and try again.
|
||||
-- This function will cause fail in next ALTER EXTENSION
|
||||
CREATE OR REPLACE FUNCTION pg_catalog.relation_is_a_known_shard(regclass)
|
||||
|
|
|
|||
|
|
@ -5,18 +5,6 @@
|
|||
// create distributed tables to test behavior of MERGE in concurrent operations
|
||||
setup
|
||||
{
|
||||
DO
|
||||
$do$
|
||||
DECLARE ver int;
|
||||
BEGIN
|
||||
SELECT substring(version(), '\d+')::int into ver;
|
||||
IF (ver < 15)
|
||||
THEN
|
||||
RAISE EXCEPTION 'MERGE is not supported on PG versions below 15';
|
||||
END IF;
|
||||
END
|
||||
$do$;
|
||||
|
||||
SET citus.shard_replication_factor TO 1;
|
||||
SELECT 1 FROM master_add_node('localhost', 57637);
|
||||
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||
|
|
|
|||
|
|
@ -5,18 +5,6 @@
|
|||
// create distributed tables to test behavior of MERGE in concurrent operations
|
||||
setup
|
||||
{
|
||||
DO
|
||||
$do$
|
||||
DECLARE ver int;
|
||||
BEGIN
|
||||
SELECT substring(version(), '\d+')::int into ver;
|
||||
IF (ver < 15)
|
||||
THEN
|
||||
RAISE EXCEPTION 'MERGE is not supported on PG versions below 15';
|
||||
END IF;
|
||||
END
|
||||
$do$;
|
||||
|
||||
SET citus.shard_replication_factor TO 2;
|
||||
SELECT 1 FROM master_add_node('localhost', 57637);
|
||||
SELECT 1 FROM master_add_node('localhost', 57638);
|
||||
|
|
|
|||
|
|
@ -22,8 +22,9 @@ ALTER TABLE AT_AddConstNoName.products ADD PRIMARY KEY(product_no);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'p';
|
||||
|
||||
-- Check that the primary key name created on the coordinator is sent to workers and
|
||||
-- the constraints created for the shard tables conform to the <conname>_shardid naming scheme.
|
||||
|
|
@ -31,8 +32,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'p';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_pkey;
|
||||
|
|
@ -46,15 +48,18 @@ ALTER TABLE AT_AddConstNoName.tbl ADD PRIMARY KEY USING INDEX my_index;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'tbl';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'tbl'
|
||||
AND con.contype = 'p';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'tbl%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'tbl%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.tbl DROP CONSTRAINT my_index;
|
||||
|
|
@ -66,15 +71,18 @@ ALTER TABLE AT_AddConstNoName.tbl ADD UNIQUE USING INDEX my_index;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'tbl';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'tbl'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'tbl%'ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'tbl%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.tbl DROP CONSTRAINT my_index;
|
||||
|
|
@ -104,8 +112,9 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
|
||||
-- Check that UNIQUE constraint name created on the coordinator is sent to workers and
|
||||
-- the constraints created for the shard tables conform to the <conname>_shardid scheme.
|
||||
|
|
@ -113,8 +122,9 @@ SELECT con.conname
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_product_no_key;
|
||||
|
|
@ -124,15 +134,17 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no,name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_product_no_name_key;
|
||||
|
|
@ -143,15 +155,17 @@ ALTER TABLE AT_AddConstNoName.products ADD UNIQUE(product_no) INCLUDE(price);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_product_no_key;
|
||||
|
|
@ -188,15 +202,17 @@ ALTER TABLE AT_AddConstNoName.products ADD EXCLUDE USING gist (name WITH <> , pr
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'x';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'x';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_name_product_no_excl;
|
||||
|
|
@ -225,15 +241,17 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_check;
|
||||
|
|
@ -244,15 +262,17 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0)
|
|||
SELECT con.conname, con.connoinherit
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname, con.connoinherit
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_check;
|
||||
|
|
@ -263,15 +283,17 @@ ALTER TABLE AT_AddConstNoName.products ADD CHECK (product_no > 0 AND price > 0)
|
|||
SELECT con.conname, con.convalidated
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname, con.convalidated
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_5410000';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_5410000'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.products DROP CONSTRAINT products_check;
|
||||
|
|
@ -308,8 +330,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD PRIMARY KEY(name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'p';
|
||||
|
||||
ALTER TABLE AT_AddConstNoName.products_ref DROP CONSTRAINT products_ref_pkey2;
|
||||
|
||||
|
|
@ -321,8 +344,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD UNIQUE(name);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'u';
|
||||
|
||||
ALTER TABLE AT_AddConstNoName.products_ref DROP CONSTRAINT products_ref_name_key2;
|
||||
|
||||
|
|
@ -334,8 +358,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD EXCLUDE(product_no WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'x';
|
||||
|
||||
ALTER TABLE AT_AddConstNoName.products_ref DROP CONSTRAINT products_ref_product_no_excl2;
|
||||
|
||||
|
|
@ -347,8 +372,9 @@ ALTER TABLE AT_AddConstNoName.products_ref ADD CHECK (product_no > 0);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'products_ref';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'products_ref'
|
||||
AND con.contype = 'c';
|
||||
|
||||
ALTER TABLE AT_AddConstNoName.products_ref DROP CONSTRAINT products_ref_check2;
|
||||
|
||||
|
|
@ -369,16 +395,19 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p';
|
||||
|
||||
-- Constraints for the main table and the shards should be created on the worker with a shortened name
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- Constraint can be deleted via the coordinator
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -388,8 +417,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'p';
|
||||
|
||||
-- Check "ADD UNIQUE" with max table name (63 chars)
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -399,16 +429,19 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u';
|
||||
|
||||
-- Constraints for the main table and the shards should be created on the worker with a shortened name
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- UNIQUE constraint can be deleted via the coordinator
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -418,8 +451,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'u';
|
||||
|
||||
-- Check "ADD EXCLUDE" with max table name (63 chars)
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -429,16 +463,19 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x';
|
||||
|
||||
-- Constraints for the main table and the shards should be created on the worker with a shortened name
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- EXCLUDE constraint can be deleted via the coordinator
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -448,8 +485,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'x';
|
||||
|
||||
-- Check "ADD CHECK" with max table name (63 chars)
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -458,16 +496,19 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c';
|
||||
|
||||
-- Constraints for the main table and the shards should be created on the worker with a shortened name
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- CHECK constraint can be deleted via the coordinator
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -477,8 +518,9 @@ ALTER TABLE AT_AddConstNoName.verylonglonglonglonglonglonglonglonglonglonglonglo
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'very%';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'very%'
|
||||
AND con.contype = 'c';
|
||||
|
||||
-- Test the scenario where a partitioned distributed table has a child with max allowed name
|
||||
-- Verify that we switch to sequential execution mode to avoid deadlock in this scenario
|
||||
|
|
@ -496,15 +538,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'p';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_partitioned_table_pkey;
|
||||
|
|
@ -513,8 +558,10 @@ ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_partit
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- Check "ADD UNIQUE"
|
||||
\c - - :master_host :master_port
|
||||
|
|
@ -525,15 +572,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_partitioned_table_partition_col_key;
|
||||
|
|
@ -546,15 +596,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'dist_partitioned_table'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_partitioned_table_check;
|
||||
|
|
@ -563,8 +616,10 @@ ALTER TABLE AT_AddConstNoName.dist_partitioned_table DROP CONSTRAINT dist_parti
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
-- Test we error out when creating a constraint on a partition table with a long name if we cannot
|
||||
-- switch to sequential execution
|
||||
|
|
@ -623,23 +678,29 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD PRIMARY KEY(id);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
SELECT create_distributed_table('AT_AddConstNoName.citus_local_table','id');
|
||||
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_table DROP CONSTRAINT citus_local_table_pkey;
|
||||
|
|
@ -652,15 +713,19 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD UNIQUE(id);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_table DROP CONSTRAINT citus_local_table_id_key;
|
||||
|
|
@ -673,21 +738,27 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD EXCLUDE(id WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_table DROP CONSTRAINT citus_local_table_id_excl;
|
||||
|
|
@ -700,21 +771,27 @@ ALTER TABLE AT_AddConstNoName.citus_local_table ADD CHECK(id > 100);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'citus_local_table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_table DROP CONSTRAINT citus_local_table_check;
|
||||
|
|
@ -741,15 +818,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'p';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_partitioned_table DROP CONSTRAINT citus_local_partitioned_table_pkey;
|
||||
|
|
@ -766,15 +846,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_partitioned_table DROP CONSTRAINT citus_local_partitioned_table_partition_col_key;
|
||||
|
|
@ -787,15 +870,18 @@ RESET client_min_messages;
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = 'citus_local_partitioned_table'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName.citus_local_partitioned_table DROP CONSTRAINT citus_local_partitioned_table_check;
|
||||
|
|
@ -804,8 +890,10 @@ ALTER TABLE AT_AddConstNoName.citus_local_partitioned_table DROP CONSTRAINT citu
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE 'longlonglonglonglonglonglonglonglong%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
-- Test with unusual table and column names
|
||||
|
|
@ -817,16 +905,19 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD PRIMARY KEY ("2nd id", "3rd id");
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'p';
|
||||
|
||||
-- Check if a primary key constraint is created for the shard tables on the workers
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'p'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName."2nd table" DROP CONSTRAINT "2nd table_pkey";
|
||||
|
|
@ -838,15 +929,18 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD UNIQUE ("2nd id", "3rd id");
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'u';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'u'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName."2nd table" DROP CONSTRAINT "2nd table_2nd id_3rd id_key";
|
||||
|
|
@ -858,15 +952,18 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD EXCLUDE ("2nd id" WITH =);
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'x';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'x'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName."2nd table" DROP CONSTRAINT "2nd table_2nd id_excl";
|
||||
|
|
@ -878,15 +975,18 @@ ALTER TABLE AT_AddConstNoName."2nd table" ADD CHECK ("2nd id" > 0 );
|
|||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname = '2nd table';
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname = '2nd table'
|
||||
AND con.contype = 'c';
|
||||
|
||||
\c - - :public_worker_1_host :worker_1_port
|
||||
SELECT con.conname
|
||||
FROM pg_catalog.pg_constraint con
|
||||
INNER JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = connamespace
|
||||
WHERE rel.relname LIKE '2nd table%' ORDER BY con.conname ASC;
|
||||
INNER JOIN pg_catalog.pg_namespace nsp ON nsp.oid = rel.relnamespace
|
||||
WHERE rel.relname LIKE '2nd table%'
|
||||
AND con.contype = 'c'
|
||||
ORDER BY con.conname ASC;
|
||||
|
||||
\c - - :master_host :master_port
|
||||
ALTER TABLE AT_AddConstNoName."2nd table" DROP CONSTRAINT "2nd table_check";
|
||||
|
|
|
|||
|
|
@ -750,6 +750,16 @@ SELECT * FROM multi_extension.print_extension_changes();
|
|||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
|
||||
-- Test downgrade to 13.2-1 from 14.0-1
|
||||
ALTER EXTENSION citus UPDATE TO '14.0-1';
|
||||
ALTER EXTENSION citus UPDATE TO '13.2-1';
|
||||
-- Should be empty result since upgrade+downgrade should be a no-op
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
|
||||
-- Snapshot of state at 14.0-1
|
||||
ALTER EXTENSION citus UPDATE TO '14.0-1';
|
||||
SELECT * FROM multi_extension.print_extension_changes();
|
||||
|
||||
DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;
|
||||
|
||||
-- show running version
|
||||
|
|
|
|||
Loading…
Reference in New Issue