DBZ-5526 Support JSON-based CHECK conditions

This commit is contained in:
Chris Cranford 2022-08-18 11:14:05 -04:00 committed by Jiri Pechanec
parent 304e9b7b47
commit 07f05e8659
2 changed files with 8 additions and 1 deletions

View File

@ -1392,7 +1392,7 @@ out_of_line_constraint
( UNIQUE '(' column_name (',' column_name)* ')'
| PRIMARY KEY '(' column_name (',' column_name)* ')'
| foreign_key_clause
| CHECK '(' expression ')'
| CHECK '(' condition ')'
)
)
constraint_state?
@ -4238,6 +4238,12 @@ seed_part
condition
: expression
| json_condition
;
json_condition
: column_name IS NOT? JSON (FORMAT JSON)? (STRICT|LAX)? ((WITH|WITHOUT) UNIQUE KEYS)?
| JSON_EQUAL '(' expressions ')'
;
expressions

View File

@ -271,6 +271,7 @@ CREATE TABLE "ET$xxxx"
( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY "DMPDP" ACCESS PARAMETERS ( DEBUG = (0 , 0) DATAPUMP INTERNAL TABLE "xxxx"."xxxx" JOB ( "GGS","SYS_EXPORT_TABLE_01",1) WORKERID 1 PARALLEL 1 VERSION '11.2.0.0.0' ENCRYPTPASSWORDISNULL COMPRESSION ENABLED ENCRYPTION DISABLED DBLINK 'TOPRD') LOCATION ('xxxx.dat') ) PARALLEL 1 REJECT LIMIT UNLIMITED
AS SELECT /*+ PARALLEL(KU$,1) */ "MANDT", "WERKS", "MATNR", "GZEQUNR", "GZEQUNED", "MODNE", "NAME1", "MAKTX"
FROM RELATIONAL("xxxx"."xxxx" @TOPRD NOT XMLTYPE) AS OF SCN 216399751091 KU$;
CREATE TABLE "C##RCUSER"."JSON_TRANS" ( "ID" NUMBER(8,0) NOT NULL ENABLE, "TRANS_MSG" CLOB, CONSTRAINT "CHECK_JSON" CHECK (trans_msg is json) ENABLE, PRIMARY KEY ("ID") USING INDEX ENABLE, SUPPLEMENTAL LOG DATA (ALL) COLUMNS);
-- Create index
create index hr.name on hr.table (id,data) tablespace ts;
create unique index idx_eshp_auction_file_history_id on eshp_auction_file_history(history_id);