@@ -967,7 +967,10 @@ func (u *sqlSymUnion) doBlockOption() tree.DoBlockOption {
967967}
968968func (u *sqlSymUnion) changefeedFilterOption() tree.ChangefeedFilterOption {
969969 return u.val.(tree.ChangefeedFilterOption)
970- }
970+ }
971+ func (u *sqlSymUnion) filterType() tree.FilterType {
972+ return u.val.(tree.FilterType)
973+ }
971974
972975%}
973976
@@ -1607,7 +1610,8 @@ func (u *sqlSymUnion) changefeedFilterOption() tree.ChangefeedFilterOption {
16071610%type <tree.ReturningClause> returning_clause
16081611%type <tree.TableExprs> opt_using_clause
16091612%type <tree.RefreshDataOption> opt_clear_data
1610- %type <tree.ChangefeedFilterOption> db_level_changefeed_filter_option
1613+ %type <tree.ChangefeedFilterOption> db_level_changefeed_filter_option optional_db_level_changefeed_filter_option
1614+ %type <tree.FilterType> include_or_exclude
16111615
16121616%type <tree.BatchParam> batch_param
16131617%type <[]tree.BatchParam> batch_param_list
@@ -6273,7 +6277,7 @@ create_changefeed_stmt:
62736277 Level: tree.ChangefeedLevelTable,
62746278 }
62756279 }
6276- | CREATE_CHANGEFEED_FOR_DATABASE CHANGEFEED FOR DATABASE database_name db_level_changefeed_filter_option opt_changefeed_sink opt_with_options
6280+ | CREATE_CHANGEFEED_FOR_DATABASE CHANGEFEED FOR DATABASE database_name optional_db_level_changefeed_filter_option opt_changefeed_sink opt_with_options
62776281 {
62786282 $$.val = &tree.CreateChangefeed{
62796283 DatabaseTarget: tree.ChangefeedDatabaseTarget($5),
@@ -6504,6 +6508,16 @@ opt_using_clause:
65046508 $$.val = tree.TableExprs{}
65056509 }
65066510
6511+ optional_db_level_changefeed_filter_option:
6512+ db_level_changefeed_filter_option
6513+ {
6514+ $$.val = $1.changefeedFilterOption()
6515+ }
6516+ | /* EMPTY */
6517+ {
6518+ $$.val = tree.ChangefeedFilterOption{}
6519+ }
6520+
65076521db_level_changefeed_filter_option:
65086522 EXCLUDE TABLES table_name_list
65096523 {
@@ -6513,10 +6527,6 @@ db_level_changefeed_filter_option:
65136527 {
65146528 $$.val = tree.ChangefeedFilterOption{Tables: $3.tableNames(), FilterType: tree.IncludeFilter}
65156529 }
6516- | /* EMPTY */
6517- {
6518- $$.val = tree.ChangefeedFilterOption{}
6519- }
65206530
65216531
65226532// %Help: DISCARD - reset the session to its initial state
@@ -7044,7 +7054,32 @@ alter_changefeed_cmd:
70447054 Options: $2.nameList(),
70457055 }
70467056 }
7057+ | SET db_level_changefeed_filter_option
7058+ {
7059+ $$.val = &tree.AlterChangefeedSetFilterOption{
7060+ ChangefeedFilterOption: $2.changefeedFilterOption(),
7061+ }
7062+ }
7063+ | UNSET include_or_exclude TABLES
7064+ {
7065+ $$.val = &tree.AlterChangefeedUnsetFilterOption{
7066+ ChangefeedFilterOption: tree.ChangefeedFilterOption{
7067+ FilterType: $2.filterType(),
7068+ Tables: tree.TableNames{},
7069+ },
7070+ }
7071+ }
70477072
7073+ include_or_exclude:
7074+ INCLUDE
7075+ {
7076+ $$.val = tree.IncludeFilter
7077+ }
7078+ | EXCLUDE
7079+ {
7080+ $$.val = tree.ExcludeFilter
7081+ }
7082+
70487083// %Help: ALTER BACKUP - alter an existing backup's encryption keys
70497084// %Category: CCL
70507085// %Text:
0 commit comments