Skip to content

Commit 7e9bb1c

Browse files
committed
support modify column
1 parent a1589b9 commit 7e9bb1c

File tree

1 file changed

+62
-5
lines changed

1 file changed

+62
-5
lines changed

sql.y

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ import (
156156
ChangeColumnClause
157157
RenameColumnClause
158158
AddColumnClause
159-
ModidyColumnClause
159+
ModifyColumnClause
160160
RealColumnDefinition
161161
ColumnDefinitionList
162162
ColumnDefinition
@@ -281,7 +281,7 @@ ChangeColumnClause:
281281
{
282282
$$ = $1
283283
}
284-
| ModidyColumnClause
284+
| ModifyColumnClause
285285
{
286286
$$ = $1
287287
}
@@ -290,6 +290,8 @@ ChangeColumnClause:
290290
$$ = $1
291291
}
292292

293+
/* +++++++++++++++++++++++++++++++++++++++++++++ add column ++++++++++++++++++++++++++++++++++++++++++++ */
294+
293295
AddColumnClause:
294296
_add '(' ColumnDefinitionList ')' ColumnProperties OutOfLinePartStorageList
295297
{
@@ -337,7 +339,7 @@ ColumnDefinition:
337339
//| VirtualColumnDefinition // TODOsupport
338340

339341
RealColumnDefinition:
340-
ColumnName Datatype CollateClause SortProperty InvisibleProperty DefaultOrIdentityClause EncryptClause ColumnDefinitionConstraint
342+
ColumnName Datatype CollateClause SortProperty InvisiblePropertyOrEmpty DefaultOrIdentityClause EncryptClause ColumnDefinitionConstraint
341343
{
342344
var collation *ast.Collation
343345
if $3 != nil {
@@ -375,11 +377,17 @@ SortProperty:
375377
$$ = true
376378
}
377379

378-
InvisibleProperty:
380+
InvisiblePropertyOrEmpty:
379381
{
380382
$$ = nil
381383
}
382-
| _invisible
384+
| InvisibleProperty
385+
{
386+
$$ = $1
387+
}
388+
389+
InvisibleProperty:
390+
_invisible
383391
{
384392
$$ = &ast.InvisibleProperty{Type: ast.InvisiblePropertyInvisible}
385393
}
@@ -479,6 +487,55 @@ InlineConstraintList:
479487
InlineConstraint
480488
| InlineConstraintList InlineConstraint
481489

490+
/* +++++++++++++++++++++++++++++++++++++++++++++ modify column ++++++++++++++++++++++++++++++++++++++++++++ */
491+
492+
ModifyColumnClause:
493+
_modify '(' ModifyColumnProperties ')'
494+
| _modify '(' ModifyColumnVisibilityList ')'
495+
| ModifyColumnSubstitutable
496+
497+
ModifyColumnProperties:
498+
ModifyColumnProperty
499+
| ModifyColumnProperties ',' ModifyColumnProperty
500+
501+
ModifyColumnProperty:
502+
ModifyRealColumnProperty
503+
// | ModifyVirtualColumnProperty // TODO
504+
505+
ModifyRealColumnProperty:
506+
ColumnName Datatype CollateClause DefaultOrIdentityClauseForModify EncryptClauseForModify ColumnConstraintForModify
507+
508+
DefaultOrIdentityClauseForModify:
509+
_drop _identity
510+
| DefaultOrIdentityClause
511+
512+
EncryptClauseForModify:
513+
_decrypt
514+
| EncryptClause
515+
516+
ColumnConstraintForModify:
517+
{
518+
// empty
519+
}
520+
| InlineConstraintList
521+
522+
ModifyColumnVisibilityList:
523+
ModifyColumnVisibility
524+
| ModifyColumnVisibilityList ',' ModifyColumnVisibility
525+
526+
ModifyColumnVisibility:
527+
ColumnName InvisibleProperty
528+
529+
ModifyColumnSubstitutable:
530+
_column ColumnName _substitutable _at _all _levels IsForce
531+
| _column ColumnName _not _substitutable _at _all _levels IsForce
532+
533+
IsForce:
534+
{
535+
// empty
536+
}
537+
| _force
538+
482539
/* +++++++++++++++++++++++++++++++++++++++++++++ datatype ++++++++++++++++++++++++++++++++++++++++++++ */
483540

484541
// see: https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html#GUID-A3C0D836-BADB-44E5-A5D4-265BA5968483

0 commit comments

Comments
 (0)