MCPcopy Create free account
hub / github.com/dolthub/doltgresql / nodeAlterTableCmds

Function nodeAlterTableCmds

server/ast/alter_table.go:94–186  ·  view source on GitHub ↗

nodeAlterTableCmds converts tree.AlterTableCmds into a slice of vitess.DDL instances that can be executed by GMS. |tableName| identifies the table being altered, and |ifExists| indicates whether the IF EXISTS clause was specified. A second slice of unsupported but safely ignored statements is return

(
	ctx *Context,
	node tree.AlterTableCmds,
	tableName vitess.TableName,
	ifExists bool)

Source from the content-addressed store, hash-verified

92// |tableName| identifies the table being altered, and |ifExists| indicates whether the IF EXISTS clause was specified.
93// A second slice of unsupported but safely ignored statements is return as well.
94func nodeAlterTableCmds(
95 ctx *Context,
96 node tree.AlterTableCmds,
97 tableName vitess.TableName,
98 ifExists bool) ([]*vitess.DDL, []string, error) {
99
100 if len(node) == 0 {
101 return nil, nil, errors.Errorf("no commands specified for ALTER TABLE statement")
102 }
103
104 vitessDdlCmds := make([]*vitess.DDL, 0, len(node))
105 var unsupportedWarnings []string
106 for _, cmd := range node {
107 var err error
108 var statement *vitess.DDL
109 switch cmd := cmd.(type) {
110 case *tree.AlterTableAddConstraint:
111 statement, err = nodeAlterTableAddConstraint(ctx, cmd, tableName, ifExists)
112 if err != nil {
113 return nil, nil, err
114 }
115 vitessDdlCmds = append(vitessDdlCmds, statement)
116 case *tree.AlterTableAddColumn:
117 statement, err = nodeAlterTableAddColumn(ctx, cmd, tableName, ifExists)
118 if err != nil {
119 return nil, nil, err
120 }
121 vitessDdlCmds = append(vitessDdlCmds, statement)
122
123 // If inline constraints have been specified, set the ConstraintAction so that they get processed
124 if len(statement.TableSpec.Constraints) > 0 {
125 statement.ConstraintAction = vitess.AddStr
126 }
127
128 case *tree.AlterTableDropColumn:
129 statement, err = nodeAlterTableDropColumn(ctx, cmd, tableName, ifExists)
130 if err != nil {
131 return nil, nil, err
132 }
133 vitessDdlCmds = append(vitessDdlCmds, statement)
134 case *tree.AlterTableDropConstraint:
135 statement, err = nodeAlterTableDropConstraint(ctx, cmd, tableName, ifExists)
136 if err != nil {
137 return nil, nil, err
138 }
139 vitessDdlCmds = append(vitessDdlCmds, statement)
140 case *tree.AlterTableRenameColumn:
141 statement, err = nodeAlterTableRenameColumn(ctx, cmd, tableName, ifExists)
142 if err != nil {
143 return nil, nil, err
144 }
145 vitessDdlCmds = append(vitessDdlCmds, statement)
146 case *tree.AlterTableSetDefault:
147 statement, err = nodeAlterTableSetDefault(ctx, cmd, tableName, ifExists)
148 if err != nil {
149 return nil, nil, err
150 }
151 vitessDdlCmds = append(vitessDdlCmds, statement)

Callers 1

nodeAlterTableFunction · 0.85

Calls 11

nodeAlterTableAddColumnFunction · 0.85
nodeAlterTableDropColumnFunction · 0.85
nodeAlterTableSetDefaultFunction · 0.85
nodeAlterTableSetNotNullFunction · 0.85
ErrorfMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected