DBZ-7506 Support Oracle 23 Annotations on CREATE/ALTER TABLE
This commit is contained in:
parent
df0f749a37
commit
69824dc8ed
@ -79,6 +79,7 @@ ANALYZE: 'ANALYZE';
|
||||
ANCILLARY: 'ANCILLARY';
|
||||
AND: 'AND';
|
||||
AND_EQUAL: 'AND_EQUAL';
|
||||
ANNOTATIONS: 'ANNOTATIONS';
|
||||
ANOMALY: 'ANOMALY';
|
||||
ANSI_REARCH: 'ANSI_REARCH';
|
||||
ANTIJOIN: 'ANTIJOIN';
|
||||
|
@ -1843,7 +1843,7 @@ xmltype_table
|
||||
physical_properties? column_properties? table_partitioning_clauses?
|
||||
(CACHE | NOCACHE)? (RESULT_CACHE '(' MODE (DEFAULT | FORCE) ')')?
|
||||
parallel_clause? (ROWDEPENDENCIES | NOROWDEPENDENCIES)?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause? annotations_clause?
|
||||
;
|
||||
|
||||
xmltype_virtual_columns
|
||||
@ -1874,7 +1874,7 @@ object_table
|
||||
physical_properties? column_properties? table_partitioning_clauses?
|
||||
(CACHE | NOCACHE)? (RESULT_CACHE '(' MODE (DEFAULT | FORCE) ')')?
|
||||
parallel_clause? (ROWDEPENDENCIES | NOROWDEPENDENCIES)?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause? annotations_clause?
|
||||
;
|
||||
|
||||
oid_index_clause
|
||||
@ -1906,7 +1906,7 @@ relational_table
|
||||
(CACHE | NOCACHE)? (RESULT_CACHE '(' MODE (DEFAULT | FORCE) ')')?
|
||||
parallel_clause?
|
||||
(ROWDEPENDENCIES | NOROWDEPENDENCIES)?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause?
|
||||
(enable_disable_clause+)? row_movement_clause? logical_replication_clause? flashback_archive_clause? annotations_clause?
|
||||
;
|
||||
|
||||
relational_property
|
||||
@ -2946,6 +2946,7 @@ alter_table_properties
|
||||
| READ ONLY
|
||||
| READ WRITE
|
||||
| REKEY CHAR_STRING
|
||||
| annotations_clause?
|
||||
;
|
||||
|
||||
alter_table_properties_1
|
||||
@ -3193,7 +3194,7 @@ modify_column_clauses
|
||||
;
|
||||
|
||||
modify_col_properties
|
||||
: column_name datatype? (DEFAULT column_default_value)? (ENCRYPT encryption_spec | DECRYPT)? inline_constraint* lob_storage_clause? //TODO alter_xmlschema_clause
|
||||
: column_name datatype? (DEFAULT column_default_value)? (ENCRYPT encryption_spec | DECRYPT)? inline_constraint* lob_storage_clause? annotations_clause? //TODO alter_xmlschema_clause
|
||||
;
|
||||
|
||||
modify_col_visibility
|
||||
@ -3340,6 +3341,7 @@ column_definition
|
||||
(VISIBLE | INVISIBLE)?
|
||||
(DEFAULT (ON NULL_)? column_default_value | identity_clause)?
|
||||
(ENCRYPT (USING CHAR_STRING)? (IDENTIFIED BY regular_id)? CHAR_STRING? (NO? SALT)? )? (inline_constraint* | inline_ref_constraint)
|
||||
annotations_clause?
|
||||
;
|
||||
|
||||
column_default_value
|
||||
@ -3354,6 +3356,29 @@ virtual_column_definition
|
||||
VIRTUAL? evaluation_edition_clause? unusable_editions_clause? inline_constraint*
|
||||
;
|
||||
|
||||
annotations_clause
|
||||
: ANNOTATIONS '(' annotations_list ')'
|
||||
;
|
||||
|
||||
annotations_list
|
||||
: ADD (IF NOT EXISTS | OR REPLACE)? annotation (',' annotations_list)*
|
||||
| DROP (IF EXISTS)? annotation (',' annotations_list)*
|
||||
| REPLACE annotation (',' annotations_list)*
|
||||
| annotation (',' annotations_list)*
|
||||
;
|
||||
|
||||
annotation
|
||||
: annotation_name annotation_value?
|
||||
;
|
||||
|
||||
annotation_name
|
||||
: identifier
|
||||
;
|
||||
|
||||
annotation_value
|
||||
: CHAR_STRING
|
||||
;
|
||||
|
||||
identity_clause
|
||||
: GENERATED (ALWAYS | BY DEFAULT (ON NULL_)?)? AS IDENTITY ( '('? (sequence_start_clause | sequence_spec)* ')'? )?
|
||||
;
|
||||
|
@ -77,3 +77,11 @@ ALTER TABLE TABLE_NAME
|
||||
SPLIT PARTITION TABLE_NAME_CURRENT AT (TO_DATE('20240116040241', 'YYYYMMDDHH24MISS'))
|
||||
INTO (PARTITION TABLE_NAME_20240116040241, PARTITION TABLE_NAME_CURRENT)
|
||||
UPDATE INDEXES (COST_IX (PARTITION C_P1 TABLESPACE TBS_02, PARTITION C_P2 TABLESPACE TBS_03));
|
||||
|
||||
-- alter table (Oracle 23+)
|
||||
alter table fruit annotations (Visibility 'Everyone');
|
||||
alter table fruit annotations (drop Visibility);
|
||||
alter table fruit annotations (add Visibility 'Everyone');
|
||||
alter table fruit modify (id annotations (Visibility 'Hidden'));
|
||||
alter table fruit modify (id annotations (drop Visibility));
|
||||
alter table fruit modify (id annotations (add Visibility 'Hidden'));
|
@ -658,6 +658,17 @@ CREATE IMMUTABLE BLOCKCHAIN TABLE t_temp_log(id int, status varchar(10));
|
||||
|
||||
-- Create table (Oracle 23+)
|
||||
create table debezium.products if not exists (id NUMBER(4) GENERATED BY DEFAULT ON NULL AS IDENTITY (START WITH 101) NOT NULL PRIMARY KEY, name VARCHAR2(255) NOT NULL, description VARCHAR2(512), weight FLOAT);
|
||||
create table debezium.fruits (
|
||||
id number annotations (SurrogateKey, UI_Display 'Fruit ID', Classification 'Fruit Info'),
|
||||
name varchar2(50) annotations (UI_Display 'Fruit Name', Classification 'Fruit Info'),
|
||||
description varchar2(50) annotations (UI_Display 'Description', Classification 'Fruit Info')
|
||||
);
|
||||
create table debezium.fruits (
|
||||
id number annotations (SurrogateKey, UI_Display 'Fruit ID', Classification 'Fruit Info'),
|
||||
name varchar2(50) annotations (UI_Display 'Fruit Name', Classification 'Fruit Info'),
|
||||
description varchar2(50) annotations (UI_Display 'Description', Classification 'Fruit Info')
|
||||
)
|
||||
annotations (UI_Display 'Fruit Table', Classification 'Fruit Info');
|
||||
-- Create index (Oracle 23+)
|
||||
create index hr.name IF NOT EXISTS on hr.table (id,data) tablespace ts;
|
||||
-- Create user (Oracle 23+)
|
||||
|
Loading…
Reference in New Issue
Block a user