postgresql/src/test/regress/sql
Alvaro Herrera 614a406b4f
Fix self-referencing foreign keys with partitioned tables
There are a number of bugs in this area.  Two of them are fixed here,
namely:
1. get_relation_idx_constraint_oid does not restrict the type of
   constraint that's returned, so with sufficient bad luck it can
   return the OID of a foreign key constraint.  This has the effect that
   a primary key in a partition can end up as a child of a foreign key,
   which makes no sense (it needs to be the child of the equivalent
   primary key.)
   Change the API contract so that only index-backed constraints are
   returned, mimicking get_constraint_index().

2. Both CloneFkReferenced and CloneFkReferencing clone a
   self-referencing foreign key, so the partition ends up with
   a duplicate foreign key.  Change the former function to ignore such
   constraints.

Add some tests to verify that things are better now.  (However, these
new tests show some additional misbehavior that will be fixed later --
namely that there's a constraint marked NOT VALID.)

Backpatch to 12, where these constraints are possible at all.

Author: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
Discussion: https://postgr.es/m/20220603154232.1715b14c@karst
2022-10-07 19:37:48 +02:00
..
advisory_lock.sql tests: Restrict pg_locks queries in advisory_locks.sql to current database 2022-10-05 10:44:38 -07:00
aggregates.sql Revert "Optimize order of GROUP BY keys". 2022-10-03 10:56:16 -04:00
alter_generic.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
alter_operator.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter_table.sql Revert 56-bit relfilenode change and follow-up commits. 2022-09-28 09:55:28 -04:00
amutils.sql Add support for nearest-neighbor (KNN) searches to SP-GiST 2018-09-19 01:54:10 +03:00
arrays.sql Fix trim_array() for zero-dimensional array argument. 2022-07-31 13:43:17 -04:00
async.sql
bit.sql Add bit_count SQL function 2021-03-23 10:13:58 +01:00
bitmapops.sql
boolean.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
box.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
brin_bloom.sql BRIN bloom indexes 2021-03-26 13:35:32 +01:00
brin_multi.sql Fix handling of NaN values in BRIN minmax multi 2021-11-06 01:50:44 +01:00
brin.sql Avoid loss of code coverage with unlogged-index test cases. 2022-09-25 13:10:17 -04:00
btree_index.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
case.sql Add support for NullIfExpr in eval_const_expressions 2021-04-02 11:01:49 +02:00
char.sql Change type "char"'s I/O format for non-ASCII characters. 2022-08-02 10:29:35 -04:00
circle.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
cluster.sql Fix CLUSTER tuplesorts on abbreviated expressions. 2022-04-20 17:17:43 -07:00
collate.icu.utf8.sql Add option to use ICU as global locale provider 2022-03-17 11:13:16 +01:00
collate.linux.utf8.sql Database-level collation version tracking 2022-02-14 08:27:26 +01:00
collate.sql Improve error checking of CREATE COLLATION options. 2021-07-18 11:08:34 +01:00
combocid.sql Sanitize the term "combo CID" in code comments 2021-03-25 16:08:03 +09:00
comments.sql
compression.sql Remove forced toast recompression in VACUUM FULL/CLUSTER 2021-06-14 09:25:50 +09:00
constraints.sql Choose FK name correctly during partition attachment 2022-09-08 13:17:02 +02:00
conversion.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
copy2.sql Fix handling of redundant options with COPY for "freeze" and "header" 2020-10-05 09:43:17 +09:00
copy.sql Fix two issues with HEADER MATCH in COPY 2022-06-23 10:49:20 +09:00
copydml.sql Extend a test case a little 2021-02-26 09:11:15 +01:00
copyselect.sql psql: Show all query results by default 2022-04-04 20:00:33 +02:00
create_aggregate.sql Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -04:00
create_am.sql Improve handling of SET ACCESS METHOD for ALTER MATERIALIZED VIEW 2022-03-19 19:13:52 +09:00
create_cast.sql
create_function_c.sql Rename create_function_N test scripts for clarity. 2022-02-08 15:40:08 -05:00
create_function_sql.sql Fix handling of R/W expanded datums that are passed to SQL functions. 2022-08-10 13:37:25 -04:00
create_index_spgist.sql Add a planner support function for starts_with(). 2021-11-17 16:54:12 -05:00
create_index.sql Fix a few issues with REINDEX grammar 2022-07-26 10:16:26 +09:00
create_misc.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
create_operator.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
create_procedure.sql Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
create_role.sql Make role grant system more consistent with other privileges. 2022-08-22 11:35:17 -04:00
create_table_like.sql Extended statistics on expressions 2021-03-27 00:01:11 +01:00
create_table.sql Fix collection of typos in the code and the documentation 2022-03-15 11:29:35 +09:00
create_type.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
create_view.sql Introduce SYSTEM_USER 2022-09-29 15:05:40 +09:00
date.sql Change return type of EXTRACT to numeric 2021-04-06 07:20:42 +02:00
dbsize.sql Teach pg_size_pretty and pg_size_bytes about petabytes 2021-07-09 18:56:00 +12:00
delete.sql
dependency.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
domain.sql Un-break whole-row Vars referencing domain-over-composite types. 2022-06-10 10:35:57 -04:00
drop_if_exists.sql Introduce the 'force' option for the Drop Database command. 2019-11-13 08:25:33 +05:30
drop_operator.sql Fix DROP OPERATOR to reset oprcom/oprnegate links to the dropped operator. 2016-03-25 12:33:16 -04:00
enum.sql Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
equivclass.sql Suppress unnecessary RelabelType nodes in more cases. 2020-02-26 18:14:12 -05:00
errors.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
event_trigger.sql Allow event trigger table_rewrite for ALTER MATERIALIZED VIEW 2022-08-17 14:55:20 +09:00
explain.sql Track I/O timing for temporary file blocks in EXPLAIN (BUFFERS) 2022-04-08 11:27:21 +09:00
expressions.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
fast_default.sql Revert 56-bit relfilenode change and follow-up commits. 2022-09-28 09:55:28 -04:00
float4.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
float8.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
foreign_data.sql Remove useless tests for TRUNCATE on foreign tables 2022-05-31 09:44:00 +09:00
foreign_key.sql Fix self-referencing foreign keys with partitioned tables 2022-10-07 19:37:48 +02:00
functional_deps.sql
generated.sql Fix bogus dependency handling for GENERATED expressions. 2022-03-21 14:58:49 -04:00
geometry.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
gin.sql Avoid loss of code coverage with unlogged-index test cases. 2022-09-25 13:10:17 -04:00
gist.sql Avoid loss of code coverage with unlogged-index test cases. 2022-09-25 13:10:17 -04:00
groupingsets.sql Make pull_var_clause() handle GroupingFuncs exactly like Aggrefs. 2022-05-12 11:31:46 -04:00
guc.sql Introduce GUC_NO_RESET flag. 2022-09-27 11:47:12 -04:00
hash_func.sql Fix portability issue in tests from commit ce773f230. 2021-09-03 10:01:02 -04:00
hash_index.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
hash_part.sql Fix typo in test comment. 2020-05-28 12:35:18 +03:00
horology.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
identity.sql Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
incremental_sort.sql Revert "Optimize order of GROUP BY keys". 2022-10-03 10:56:16 -04:00
index_including_gist.sql Support for INCLUDE attributes in GiST indexes 2019-03-10 11:37:17 +03:00
index_including.sql Support INCLUDE'd columns in SP-GiST. 2021-04-05 18:41:21 -04:00
indexing.sql Fix subtly-incorrect matching of parent and child partitioned indexes. 2022-08-18 12:12:03 -04:00
indirect_toast.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
inet.sql Add test case for abbrev(cidr) 2021-02-11 09:56:14 +01:00
infinite_recurse.sql Paper over regression failures in infinite_recurse() on PPC64 Linux. 2020-10-13 17:44:56 -04:00
inherit.sql Allow ordered partition scans in more cases 2021-08-03 12:25:52 +12:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert_conflict.sql Allow table-qualified variable names in ON CONFLICT ... WHERE. 2021-04-13 15:39:41 -04:00
insert.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
int2.sql Check column list length in XMLTABLE/JSON_TABLE alias 2022-05-18 20:28:31 +02:00
int4.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
int8.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
interval.sql Fix portability issues in datetime parsing. 2022-04-03 17:04:33 -04:00
join_hash.sql Increase hash_mem_multiplier default to 2.0. 2022-02-16 18:41:52 -08:00
join.sql Relax overly strict rules in select_outer_pathkeys_for_merge() 2022-08-02 11:02:46 +12:00
json_encoding.sql Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
json.sql Speed up lexing of long JSON strings 2022-09-02 09:36:22 +07:00
jsonb_jsonpath.sql Support for ISO 8601 in the jsonpath .datetime() method 2020-09-29 12:00:04 +03:00
jsonb.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
jsonpath_encoding.sql Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
jsonpath.sql Make JSON path numeric literals more correct 2022-03-28 11:11:39 +02:00
largeobject.sql Prevent write operations on large objects in read-only transactions 2022-07-04 15:48:52 +09:00
limit.sql Error out if SKIP LOCKED and WITH TIES are both specified 2021-10-01 18:29:18 -03:00
line.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
lock.sql Add support for security invoker views. 2022-03-22 10:28:10 +00:00
lseg.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
macaddr8.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
macaddr.sql
matview.sql Really fix the ambiguity in REFRESH MATERIALIZED VIEW CONCURRENTLY. 2021-08-07 13:29:32 -04:00
memoize.sql Increase hash_mem_multiplier default to 2.0. 2022-02-16 18:41:52 -08:00
merge.sql Disable autovacuum in MERGE test script 2022-09-20 12:38:48 +02:00
misc_functions.sql Adjust new pg_read_file() test cases for more portability. 2022-07-30 11:17:07 -04:00
misc_sanity.sql Replace explicit PIN entries in pg_depend with an OID range test. 2021-07-15 11:41:47 -04:00
misc.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
money.sql Fix loss of fractional digits for large values in cash_numeric(). 2019-07-26 11:59:00 -04:00
multirangetypes.sql Add range_agg with multirange inputs 2022-03-30 20:16:23 +02:00
mvcc.sql Fix typo in MVCC test comment 2022-08-25 10:31:20 +02:00
name.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
namespace.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
numeric_big.sql Fix corner-case loss of precision in numeric ln(). 2020-03-01 14:49:25 +00:00
numeric.sql Fix corner-case loss of precision in numeric_power(). 2021-10-06 13:16:51 +01:00
numerology.sql Reject trailing junk after numeric literals 2022-02-16 10:37:31 +01:00
object_address.sql Remove ALL keyword from TABLES IN SCHEMA for publication 2022-09-22 19:02:25 +02:00
oid.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
oidjoins.sql Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
opr_sanity.sql Revert SQL/JSON features 2022-09-01 17:07:14 -04:00
partition_aggregate.sql Force parallelism in partition_aggregate 2022-09-05 00:09:17 +02:00
partition_info.sql Fix crash with pg_partition_root 2019-03-22 17:27:38 +09:00
partition_join.sql Consider fractional paths in generate_orderedappend_paths 2022-01-12 22:27:24 +01:00
partition_prune.sql Change the name of the Result Cache node to Memoize 2021-07-14 12:43:58 +12:00
password.sql Change default of password_encryption to scram-sha-256 2020-06-10 16:42:55 +02:00
path.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
pg_lsn.sql Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators. 2020-06-30 23:55:07 +09:00
plancache.sql Add generic_plans and custom_plans fields into pg_prepared_statements. 2020-07-20 11:55:50 +09:00
plpgsql.sql Tighten enforcement of variable CONSTANT markings in plpgsql. 2022-04-30 11:54:28 -04:00
point.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
polygon.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
polymorphism.sql Fix bugs in polymorphic-argument resolution for multiranges. 2021-07-27 15:01:49 -04:00
portals_p2.sql
portals.sql Fix incorrect logic in HaveRegisteredOrActiveSnapshot(). 2022-04-16 16:04:50 -04:00
prepare.sql Fix pg_prepared_statements.result_types for DML statements 2022-07-05 10:26:36 +02:00
prepared_xacts.sql Fix check for conflicting session- vs transaction-level locks. 2021-07-24 18:35:52 -04:00
privileges.sql Fix a bug in roles_is_member_of. 2022-08-31 08:22:24 -04:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
psql.sql Fix typos and grammar in code and test comments 2022-05-11 15:38:55 +09:00
publication.sql Allow publications with schema and table of the same schema. 2022-09-23 08:21:26 +05:30
random.sql Remove gratuitous uses of deprecated SELECT INTO 2021-01-28 14:28:41 +01:00
rangefuncs.sql Close old gap in dependency checks for functions returning composite. 2022-07-22 12:46:42 -04:00
rangetypes.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
regex.sql Fix regexp misbehavior with capturing parens inside "{0}". 2021-08-24 16:37:26 -04:00
regproc.sql Implement type regcollation 2020-03-18 21:21:00 +01:00
reindex_catalog.sql Fix rd_firstRelfilenodeSubid for nailed relations, in parallel workers. 2020-09-09 18:50:24 -07:00
reloptions.sql Try to stabilize reloptions test, again. 2022-01-20 23:10:40 +13:00
replica_identity.sql Block ALTER TABLE .. DROP NOT NULL on columns in replica identity index 2021-11-25 15:04:56 +09:00
returning.sql
roleattributes.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
rowsecurity.sql Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
rowtypes.sql Revert applying column aliases to the output of whole-row Vars. 2022-03-17 18:18:05 -04:00
rules.sql Fix whitespace 2022-04-09 16:17:41 +02:00
sanity_check.sql Test ALIGNOF_DOUBLE==4 compatibility under ALIGNOF_DOUBLE==8. 2022-04-22 20:20:11 -07:00
security_label.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select_distinct_on.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
select_distinct.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
select_having.sql
select_implicit.sql Remove gratuitous uses of deprecated SELECT INTO 2021-01-28 14:28:41 +01:00
select_into.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
select_parallel.sql Add proper regression test for the recent SRFs-in-pathkeys problem. 2022-08-04 11:11:33 -04:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
select.sql Fix core dump in transformValuesClause when there are no columns. 2022-05-09 14:15:37 -04:00
sequence.sql Unlogged sequences 2022-04-07 16:18:00 +02:00
spgist.sql Avoid loss of code coverage with unlogged-index test cases. 2022-09-25 13:10:17 -04:00
stats_ext.sql Fix handling of bare boolean expressions in mcv_get_match_bitmap. 2022-08-05 15:00:03 -04:00
stats.sql Use actual backend IDs in pg_stat_get_backend_idset() and friends. 2022-09-29 12:14:39 -04:00
strings.sql Let regexp_replace() make use of REG_NOSUB when feasible. 2021-08-09 20:53:25 -04:00
subscription.sql Create subscription stats entry at CREATE SUBSCRIPTION time 2022-10-06 17:17:16 -07:00
subselect.sql Make subquery aliases optional in the FROM clause. 2022-07-20 09:29:42 +01:00
sysviews.sql Add system view pg_ident_file_mappings 2022-03-29 10:15:48 +09:00
tablesample.sql Fix some anomalies with NO SCROLL cursors. 2021-09-10 13:18:32 -04:00
tablespace.sql Add regression tests for ALTER MATERIALIZED VIEW with tablespaces 2022-03-19 17:28:50 +09:00
temp.sql Fix misbehavior with expression indexes on ON COMMIT DELETE ROWS tables. 2019-12-01 13:09:26 -05:00
test_setup.sql Test ALIGNOF_DOUBLE==4 compatibility under ALIGNOF_DOUBLE==8. 2022-04-22 20:20:11 -07:00
text.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
tid.sql Tighten overflow checks in tidin(). 2022-03-03 20:04:35 -05:00
tidrangescan.sql Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
tidscan.sql Fix bug in Tid scan. 2020-02-07 22:06:31 +09:00
time.sql Change return type of EXTRACT to numeric 2021-04-06 07:20:42 +02:00
timestamp.sql Revert "Disallow infinite endpoints in generate_series() for timestamps." 2022-05-09 11:40:40 -04:00
timestamptz.sql Revert "Disallow infinite endpoints in generate_series() for timestamps." 2022-05-09 11:40:40 -04:00
timetz.sql Change return type of EXTRACT to numeric 2021-04-06 07:20:42 +02:00
transactions.sql Introduce GUC_NO_RESET flag. 2022-09-27 11:47:12 -04:00
triggers.sql Fix tupdesc lifespan bug with AfterTriggersTableData.storeslot. 2022-09-25 17:10:58 -04:00
truncate.sql Fix TRUNCATE .. CASCADE on partitions 2020-02-07 17:09:36 -03:00
tsdicts.sql Preserve integer and float values accurately in (de)serialize_deflist. 2020-03-10 12:30:02 -04:00
tsearch.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
tsrf.sql Fix handling of targetlist SRFs when scan/join relation is known empty. 2019-03-07 14:22:13 -05:00
tstypes.sql Disallow making an empty lexeme via array_to_tsvector(). 2021-11-06 13:28:53 -04:00
tuplesort.sql Fix some typos, grammar and style in docs and comments 2021-02-24 16:13:17 +09:00
txid.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
type_sanity.sql Put typtype letters back into consistent order 2022-02-22 10:11:38 +01:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
unicode.sql Fix buffer overrun in unicode string normalization with empty input 2021-11-11 15:00:59 +09:00
union.sql Disable anonymous record hash support except in special cases 2021-09-08 09:55:04 +02:00
updatable_views.sql Add support for security invoker views. 2022-03-22 10:28:10 +00:00
update.sql Fix mishandling of resjunk columns in ON CONFLICT ... UPDATE tlists. 2021-05-10 11:02:29 -04:00
uuid.sql Add gen_random_uuid function 2019-07-14 14:30:27 +02:00
vacuum_parallel.sql Don't overlook indexes during parallel VACUUM. 2021-11-02 12:06:17 -07:00
vacuum.sql Try to stabilize vacuum test. 2022-03-23 15:06:25 +13:00
varchar.sql Rearrange core regression tests to reduce cross-script dependencies. 2022-02-08 15:30:38 -05:00
window.sql Remove uses of MemoryContextContains in nodeAgg.c and nodeWindowAgg.c. 2022-10-06 13:27:34 -04:00
with.sql Fix grammar in error message 2022-09-15 11:40:17 +07:00
write_parallel.sql Enable parallelism in REFRESH MATERIALIZED VIEW. 2021-03-17 15:04:17 +13:00
xid.sql Add min() and max() aggregates for xid8. 2022-02-10 12:33:41 +09:00
xml.sql Adjust XML test case to avoid unstable behavior. 2022-08-31 22:21:39 -04:00
xmlmap.sql Fix incorrect xmlschema output for types timetz and timestamptz. 2022-03-18 16:01:42 -04:00