diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index b00bcf0b6af7b2145758852046bf345813255512..fbd6d0d025d2d1cd65e4f38bc188acd7db8f9ee6 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -2010,7 +2010,7 @@ <entry>Foreign key match type: <literal>f</> = full, <literal>p</> = partial, - <literal>u</> = simple (unspecified) + <literal>s</> = simple </entry> </row> diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index c4f8f0f4eaa6bcf3cfe0ccf1a2c0b083ae1e2510..536328472639ca0db2a1b9af97ad413e71750732 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -1160,7 +1160,7 @@ CREATE VIEW referential_constraints AS CAST( CASE con.confmatchtype WHEN 'f' THEN 'FULL' WHEN 'p' THEN 'PARTIAL' - WHEN 'u' THEN 'NONE' END + WHEN 's' THEN 'NONE' END AS character_data) AS match_option, CAST( diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 4399a274465cf4a5e653604bdd8ea92b83ee1937..57fcfbeefd94baf9e06b9d6764d46f3869cc7976 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -805,7 +805,7 @@ ConvertTriggerToFK(CreateTrigStmt *stmt, Oid funcoid) char *constr_name; char *fk_table_name; char *pk_table_name; - char fk_matchtype = FKCONSTR_MATCH_UNSPECIFIED; + char fk_matchtype = FKCONSTR_MATCH_SIMPLE; List *fk_attrs = NIL; List *pk_attrs = NIL; StringInfoData buf; @@ -831,7 +831,7 @@ ConvertTriggerToFK(CreateTrigStmt *stmt, Oid funcoid) if (strcmp(strVal(arg), "FULL") == 0) fk_matchtype = FKCONSTR_MATCH_FULL; else - fk_matchtype = FKCONSTR_MATCH_UNSPECIFIED; + fk_matchtype = FKCONSTR_MATCH_SIMPLE; continue; } if (i % 2) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 8389337ecc25fa11ce53fd71ac2b5792843ec7cb..7e6ceedc42af9362a6dbdb49c6373dcf02eecfb6 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -2972,11 +2972,11 @@ key_match: MATCH FULL } | MATCH SIMPLE { - $$ = FKCONSTR_MATCH_UNSPECIFIED; + $$ = FKCONSTR_MATCH_SIMPLE; } | /*EMPTY*/ { - $$ = FKCONSTR_MATCH_UNSPECIFIED; + $$ = FKCONSTR_MATCH_SIMPLE; } ; diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index dd58f4efc8a372bcffaf82068f9e666ab7abe5f9..ac252b8de272e5cbf1509a8390af88f209e59f6a 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -384,8 +384,7 @@ RI_FKey_check(PG_FUNCTION_ARGS) * No check - if NULLs are allowed at all is already checked by * NOT NULL constraint. * - * This is true for MATCH FULL, MATCH PARTIAL, and MATCH - * <unspecified> + * This is true for MATCH FULL, MATCH PARTIAL, and MATCH SIMPLE. */ heap_close(pk_rel, RowShareLock); return PointerGetDatum(NULL); @@ -413,11 +412,10 @@ RI_FKey_check(PG_FUNCTION_ARGS) heap_close(pk_rel, RowShareLock); return PointerGetDatum(NULL); - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: /* - * MATCH <unspecified> - if ANY column is null, we have a - * match. + * MATCH SIMPLE - if ANY column is null, we have a match. */ heap_close(pk_rel, RowShareLock); return PointerGetDatum(NULL); @@ -435,6 +433,11 @@ RI_FKey_check(PG_FUNCTION_ARGS) errmsg("MATCH PARTIAL not yet implemented"))); heap_close(pk_rel, RowShareLock); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } case RI_KEYS_NONE_NULL: @@ -577,10 +580,10 @@ ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, switch (riinfo->confmatchtype) { case FKCONSTR_MATCH_FULL: - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: /* - * MATCH <unspecified>/FULL - if ANY column is null, we + * MATCH SIMPLE/FULL - if ANY column is null, we * can't be matching to this row already. */ return true; @@ -597,6 +600,11 @@ ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); break; + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo->confmatchtype); + break; } case RI_KEYS_NONE_NULL: @@ -732,12 +740,12 @@ RI_FKey_noaction_del(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) iv): - * MATCH <unspecified> or MATCH FULL + * General rules 6) a) iv): + * MATCH SIMPLE/FULL * ... ON DELETE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_NOACTION_DEL_CHECKREF); @@ -837,12 +845,14 @@ RI_FKey_noaction_del(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -901,12 +911,12 @@ RI_FKey_noaction_upd(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) iv): - * MATCH <unspecified> or MATCH FULL + * General rules 6) a) iv): + * MATCH SIMPLE/FULL * ... ON DELETE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_NOACTION_UPD_CHECKREF); @@ -1025,12 +1035,14 @@ RI_FKey_noaction_upd(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1084,12 +1096,12 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) i): - * MATCH <unspecified> or MATCH FULL + * General rules 6) a) i): + * MATCH SIMPLE/FULL * ... ON DELETE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_CASCADE_DEL_DODELETE); @@ -1187,12 +1199,14 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1250,12 +1264,12 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 7) a) i): - * MATCH <unspecified> or MATCH FULL + * General rules 7) a) i): + * MATCH SIMPLE/FULL * ... ON UPDATE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_CASCADE_UPD_DOUPDATE); @@ -1375,12 +1389,14 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1441,12 +1457,12 @@ RI_FKey_restrict_del(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) iv): - * MATCH <unspecified> or MATCH FULL + * General rules 6) a) iv): + * MATCH SIMPLE/FULL * ... ON DELETE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_RESTRICT_DEL_CHECKREF); @@ -1546,12 +1562,14 @@ RI_FKey_restrict_del(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1615,12 +1633,12 @@ RI_FKey_restrict_upd(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) iv): - * MATCH <unspecified> or MATCH FULL + * General rules 6) a) iv): + * MATCH SIMPLE/FULL * ... ON DELETE CASCADE * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_RESTRICT_UPD_CHECKREF); @@ -1729,12 +1747,14 @@ RI_FKey_restrict_upd(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1788,12 +1808,12 @@ RI_FKey_setnull_del(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) ii): - * MATCH <UNSPECIFIED> or MATCH FULL + * General rules 6) a) ii): + * MATCH SIMPLE/FULL * ... ON DELETE SET NULL * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_SETNULL_DEL_DOUPDATE); @@ -1900,12 +1920,14 @@ RI_FKey_setnull_del(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -1962,12 +1984,12 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 7) a) ii) 2): + * General rules 7) a) ii) 2): * MATCH FULL * ... ON UPDATE SET NULL * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_SETNULL_UPD_DOUPDATE); @@ -2005,7 +2027,7 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) elog(ERROR, "SPI_connect failed"); /* - * "MATCH <unspecified>" only changes columns corresponding to the + * "MATCH SIMPLE" only changes columns corresponding to the * referenced columns that have changed in pk_rel. This means the * "SET attrn=NULL [, attrn=NULL]" string will be change as well. * In this case, we need to build a temporary plan rather than use @@ -2060,7 +2082,7 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) RIAttName(fk_rel, riinfo.fk_attnums[i])); /* - * MATCH <unspecified> - only change columns corresponding + * MATCH SIMPLE - only change columns corresponding * to changed columns in pk_rel's key */ if (riinfo.confmatchtype == FKCONSTR_MATCH_FULL || @@ -2116,12 +2138,14 @@ RI_FKey_setnull_upd(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -2174,12 +2198,12 @@ RI_FKey_setdefault_del(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 6) a) iii): - * MATCH <UNSPECIFIED> or MATCH FULL + * General rules 6) a) iii): + * MATCH SIMPLE/FULL * ... ON DELETE SET DEFAULT * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_SETNULL_DEL_DOUPDATE); @@ -2298,12 +2322,14 @@ RI_FKey_setdefault_del(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -2358,12 +2384,12 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS) { /* ---------- * SQL3 11.9 <referential constraint definition> - * Gereral rules 7) a) iii): - * MATCH <UNSPECIFIED> or MATCH FULL + * General rules 7) a) iii): + * MATCH SIMPLE/FULL * ... ON UPDATE SET DEFAULT * ---------- */ - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_SETNULL_DEL_DOUPDATE); @@ -2439,7 +2465,7 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS) RIAttName(fk_rel, riinfo.fk_attnums[i])); /* - * MATCH <unspecified> - only change columns corresponding + * MATCH SIMPLE - only change columns corresponding * to changed columns in pk_rel's key */ if (riinfo.confmatchtype == FKCONSTR_MATCH_FULL || @@ -2501,12 +2527,14 @@ RI_FKey_setdefault_upd(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); return PointerGetDatum(NULL); + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } - /* - * Never reached - */ - elog(ERROR, "invalid confmatchtype"); + /* Never reached */ return PointerGetDatum(NULL); } @@ -2538,7 +2566,7 @@ RI_FKey_keyequal_upd_pk(Trigger *trigger, Relation pk_rel, switch (riinfo.confmatchtype) { - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: /* Return true if keys are equal */ return ri_KeysEqual(pk_rel, old_row, new_row, &riinfo, true); @@ -2549,10 +2577,14 @@ RI_FKey_keyequal_upd_pk(Trigger *trigger, Relation pk_rel, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); break; + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } /* Never reached */ - elog(ERROR, "invalid confmatchtype"); return false; } @@ -2583,7 +2615,7 @@ RI_FKey_keyequal_upd_fk(Trigger *trigger, Relation fk_rel, switch (riinfo.confmatchtype) { - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: case FKCONSTR_MATCH_FULL: /* Return true if keys are equal */ return ri_KeysEqual(fk_rel, old_row, new_row, &riinfo, false); @@ -2594,10 +2626,14 @@ RI_FKey_keyequal_upd_fk(Trigger *trigger, Relation fk_rel, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"))); break; + + default: + elog(ERROR, "unrecognized confmatchtype: %d", + riinfo.confmatchtype); + break; } /* Never reached */ - elog(ERROR, "invalid confmatchtype"); return false; } @@ -2680,7 +2716,7 @@ RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel) * LEFT OUTER JOIN ONLY pkrelname pk * ON (pk.pkkeycol1=fk.keycol1 [AND ...]) * WHERE pk.pkkeycol1 IS NULL AND - * For MATCH unspecified: + * For MATCH SIMPLE: * (fk.keycol1 IS NOT NULL [AND ...]) * For MATCH FULL: * (fk.keycol1 IS NOT NULL [OR ...]) @@ -2745,7 +2781,7 @@ RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel) sep, fkattname); switch (riinfo.confmatchtype) { - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: sep = " AND "; break; case FKCONSTR_MATCH_FULL: @@ -2757,7 +2793,7 @@ RI_Initial_Check(Trigger *trigger, Relation fk_rel, Relation pk_rel) errmsg("MATCH PARTIAL not yet implemented"))); break; default: - elog(ERROR, "unrecognized match type: %d", + elog(ERROR, "unrecognized confmatchtype: %d", riinfo.confmatchtype); break; } diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 9ca3b9d0c44c71522309c2da61071e096825cdf0..5bf3533a114d136389d3e2fc5ead23b4d6d2bc8d 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -1184,7 +1184,7 @@ pg_get_constraintdef_worker(Oid constraintId, bool fullCommand, case FKCONSTR_MATCH_PARTIAL: string = " MATCH PARTIAL"; break; - case FKCONSTR_MATCH_UNSPECIFIED: + case FKCONSTR_MATCH_SIMPLE: string = ""; break; default: diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 65284f78ca321ad5493d30576a4a207afe9bb319..b665882d832ab96f9c367706fb9d0a84a063c92e 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 201206141 +#define CATALOG_VERSION_NO 201206171 #endif diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index deff1a374c05fb799ea054039861f253728513fe..50111cba3c0eca1f5abe341bbee6bb0464b0439f 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1514,7 +1514,7 @@ typedef enum ConstrType /* types of constraints */ /* Foreign key matchtype codes */ #define FKCONSTR_MATCH_FULL 'f' #define FKCONSTR_MATCH_PARTIAL 'p' -#define FKCONSTR_MATCH_UNSPECIFIED 'u' +#define FKCONSTR_MATCH_SIMPLE 's' typedef struct Constraint { @@ -1550,7 +1550,7 @@ typedef struct Constraint RangeVar *pktable; /* Primary key table */ List *fk_attrs; /* Attributes of foreign key */ List *pk_attrs; /* Corresponding attrs in PK table */ - char fk_matchtype; /* FULL, PARTIAL, UNSPECIFIED */ + char fk_matchtype; /* FULL, PARTIAL, SIMPLE */ char fk_upd_action; /* ON UPDATE action */ char fk_del_action; /* ON DELETE action */ List *old_conpfeqop; /* pg_constraint.conpfeqop of my former self */ diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index cddcda79b6083137f56dfc4c85c01fd58e94ac37..f86b39f396ba090443283883bccfc4a098558887 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -339,7 +339,7 @@ SELECT * FROM PKTABLE; DROP TABLE FKTABLE; DROP TABLE PKTABLE; --- MATCH unspecified +-- MATCH SIMPLE -- Base test restricting update/delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pktable_pkey" for table "pktable" diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql index fe9bfde101664b09e7eb9e5caf37b05c9d7eca94..2c4c0c5606a45ee9889a4e8cb0ef462c6f8469f4 100644 --- a/src/test/regress/sql/foreign_key.sql +++ b/src/test/regress/sql/foreign_key.sql @@ -214,7 +214,7 @@ DROP TABLE FKTABLE; DROP TABLE PKTABLE; --- MATCH unspecified +-- MATCH SIMPLE -- Base test restricting update/delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) );