MCPcopy
hub / github.com/sqlc-dev/sqlc / translate

Function translate

internal/engine/postgresql/parse.go:206–645  ·  view source on GitHub ↗
(node *nodes.Node)

Source from the content-addressed store, hash-verified

204}
205
206func translate(node *nodes.Node) (ast.Node, error) {
207 switch inner := node.Node.(type) {
208
209 case *nodes.Node_AlterEnumStmt:
210 n := inner.AlterEnumStmt
211 rel, err := parseRelationFromNodes(n.TypeName)
212 if err != nil {
213 return nil, err
214 }
215 if n.OldVal != "" {
216 return &ast.AlterTypeRenameValueStmt{
217 Type: rel.TypeName(),
218 OldValue: makeString(n.OldVal),
219 NewValue: makeString(n.NewVal),
220 }, nil
221 } else {
222 return &ast.AlterTypeAddValueStmt{
223 Type: rel.TypeName(),
224 NewValue: makeString(n.NewVal),
225 NewValHasNeighbor: len(n.NewValNeighbor) > 0,
226 NewValNeighbor: makeString(n.NewValNeighbor),
227 NewValIsAfter: n.NewValIsAfter,
228 SkipIfNewValExists: n.SkipIfNewValExists,
229 }, nil
230 }
231
232 case *nodes.Node_AlterObjectSchemaStmt:
233 n := inner.AlterObjectSchemaStmt
234 switch n.ObjectType {
235
236 case nodes.ObjectType_OBJECT_TABLE, nodes.ObjectType_OBJECT_VIEW, nodes.ObjectType_OBJECT_MATVIEW:
237 rel := parseRelationFromRangeVar(n.Relation)
238 return &ast.AlterTableSetSchemaStmt{
239 Table: rel.TableName(),
240 NewSchema: makeString(n.Newschema),
241 MissingOk: n.MissingOk,
242 }, nil
243
244 case nodes.ObjectType_OBJECT_TYPE:
245 rel, err := parseRelation(n.Object)
246 if err != nil {
247 return nil, err
248 }
249 return &ast.AlterTypeSetSchemaStmt{
250 Type: rel.TypeName(),
251 NewSchema: makeString(n.Newschema),
252 }, nil
253 }
254 return nil, errSkip
255
256 case *nodes.Node_AlterTableStmt:
257 n := inner.AlterTableStmt
258 rel := parseRelationFromRangeVar(n.Relation)
259 at := &ast.AlterTableStmt{
260 Table: rel.TableName(),
261 Cmds: &ast.List{},
262 MissingOk: n.MissingOk,
263 }

Callers 1

ParseMethod · 0.85

Calls 13

parseRelationFromNodesFunction · 0.85
makeStringFunction · 0.85
isArrayFunction · 0.85
parseColNameFunction · 0.85
convertSliceFunction · 0.85
convertFuncParamModeFunction · 0.85
convertFunction · 0.85
FuncNameMethod · 0.80
parseRelationFunction · 0.70
isNotNullFunction · 0.70
TypeNameMethod · 0.65

Tested by

no test coverage detected