@@ -88,6 +88,8 @@ unit_statement
88
88
| data_manipulation_language_statements
89
89
| drop_table
90
90
| drop_index
91
+
92
+ | rename_object
91
93
92
94
| comment_on_column
93
95
| comment_on_table
@@ -176,7 +178,7 @@ procedure_spec
176
178
177
179
function_spec
178
180
: FUNCTION identifier (' (' parameter ( ' ,' parameter)* ' )' )?
179
- RETURN type_spec (DETERMINISTIC )? (RESULT_CACHE )? ' ;'
181
+ RETURN type_spec (PIPELINED )? ( DETERMINISTIC )? (RESULT_CACHE )? ' ;'
180
182
;
181
183
182
184
package_obj_body
@@ -204,7 +206,7 @@ alter_procedure
204
206
function_body
205
207
: FUNCTION identifier (' (' parameter (' ,' parameter)* ' )' )?
206
208
RETURN type_spec (invoker_rights_clause | parallel_enable_clause | result_cache_clause | DETERMINISTIC )*
207
- ((PIPELINED ? (IS | AS ) (DECLARE ? seq_of_declare_specs? body | call_spec)) | (PIPELINED | AGGREGATE ) USING implementation_type_name) ' ;'
209
+ ((PIPELINED ? DETERMINISTIC ? (IS | AS ) (DECLARE ? seq_of_declare_specs? body | call_spec)) | (PIPELINED | AGGREGATE ) USING implementation_type_name) ' ;'
208
210
;
209
211
210
212
procedure_body
@@ -1214,6 +1216,10 @@ sql_statement_shortcut
1214
1216
drop_index
1215
1217
: DROP INDEX index_name ' ;'
1216
1218
;
1219
+
1220
+ rename_object
1221
+ : RENAME object_name TO object_name ' ;'
1222
+ ;
1217
1223
1218
1224
grant_statement
1219
1225
: GRANT
@@ -1301,9 +1307,9 @@ alter_view_editionable
1301
1307
;
1302
1308
1303
1309
create_view
1304
- : CREATE (OR REPLACE )? (OR ? FORCE )? EDITIONING ? VIEW
1310
+ : CREATE (OR REPLACE )? (OR ? FORCE )? EDITIONABLE ? EDITIONING ? VIEW
1305
1311
tableview_name view_options?
1306
- AS subquery subquery_restriction_clause?
1312
+ AS select_only_statement subquery_restriction_clause?
1307
1313
;
1308
1314
1309
1315
view_options
@@ -1685,7 +1691,7 @@ create_materialized_view
1685
1691
create_mv_refresh?
1686
1692
(FOR UPDATE )?
1687
1693
( (DISABLE | ENABLE ) QUERY REWRITE )?
1688
- AS subquery
1694
+ AS select_only_statement
1689
1695
' ;'
1690
1696
;
1691
1697
@@ -1733,7 +1739,7 @@ create_cluster
1733
1739
1734
1740
create_table
1735
1741
: CREATE (GLOBAL TEMPORARY )? TABLE tableview_name
1736
- (relational_table | object_table | xmltype_table) (AS select_statement )?
1742
+ (relational_table | object_table | xmltype_table) (AS select_only_statement )?
1737
1743
' ;'
1738
1744
;
1739
1745
@@ -3266,8 +3272,12 @@ explain_statement
3266
3272
FOR (select_statement | update_statement | delete_statement | insert_statement | merge_statement)
3267
3273
;
3268
3274
3275
+ select_only_statement
3276
+ : subquery_factoring_clause? subquery
3277
+ ;
3278
+
3269
3279
select_statement
3270
- : subquery_factoring_clause? subquery (for_update_clause | order_by_clause | offset_clause | fetch_clause)*
3280
+ : select_only_statement (for_update_clause | order_by_clause | offset_clause | fetch_clause)*
3271
3281
;
3272
3282
3273
3283
// Select Specific Clauses
@@ -4247,7 +4257,7 @@ column_name
4247
4257
4248
4258
tableview_name
4249
4259
: identifier (' .' id_expression)?
4250
- (' @ ' link_name | /* TODO{!(input.LA(2) == BY)}?*/ partition_extension_clause)?
4260
+ (AT_SIGN link_name | /* TODO{!(input.LA(2) == BY)}?*/ partition_extension_clause)?
4251
4261
| xmltable outer_join_sign?
4252
4262
;
4253
4263
@@ -4612,6 +4622,7 @@ regular_id
4612
4622
| EXCEPTION
4613
4623
| EXCEPTION_INIT
4614
4624
| EXCEPTIONS
4625
+ | EXISTS
4615
4626
| EXIT
4616
4627
| FLOAT
4617
4628
| FORALL
@@ -4867,6 +4878,7 @@ non_reserved_keywords_in_12c
4867
4878
| PATTERN
4868
4879
| PER
4869
4880
| PERIOD
4881
+ | PERIOD_KEYWORD
4870
4882
| PERMUTE
4871
4883
| PLUGGABLE
4872
4884
| POOL_16K
0 commit comments