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

Method createTableAs

internal/sql/catalog/table.go:453–493  ·  view source on GitHub ↗
(stmt *ast.CreateTableAsStmt, colGen columnGenerator)

Source from the content-addressed store, hash-verified

451}
452
453func (c *Catalog) createTableAs(stmt *ast.CreateTableAsStmt, colGen columnGenerator) error {
454 cols, err := colGen.OutputColumns(stmt.Query)
455 if err != nil {
456 return err
457 }
458
459 catName := ""
460 if stmt.Into.Rel.Catalogname != nil {
461 catName = *stmt.Into.Rel.Catalogname
462 }
463 schemaName := ""
464 if stmt.Into.Rel.Schemaname != nil {
465 schemaName = *stmt.Into.Rel.Schemaname
466 }
467
468 tbl := Table{
469 Rel: &ast.TableName{
470 Catalog: catName,
471 Schema: schemaName,
472 Name: *stmt.Into.Rel.Relname,
473 },
474 Columns: cols,
475 }
476
477 ns := tbl.Rel.Schema
478 if ns == "" {
479 ns = c.DefaultSchema
480 }
481 schema, err := c.getSchema(ns)
482 if err != nil {
483 return err
484 }
485 _, _, err = schema.getTable(tbl.Rel)
486 if err == nil {
487 return sqlerr.RelationExists(tbl.Rel.Name)
488 }
489
490 schema.Tables = append(schema.Tables, &tbl)
491
492 return nil
493}

Callers 1

UpdateMethod · 0.95

Calls 4

getSchemaMethod · 0.95
RelationExistsFunction · 0.92
OutputColumnsMethod · 0.65
getTableMethod · 0.45

Tested by

no test coverage detected