MCPcopy
hub / github.com/sqldef/sqldef / parseViewStmt

Method parseViewStmt

database/postgres/parser.go:343–368  ·  view source on GitHub ↗
(stmt *pgquery.ViewStmt)

Source from the content-addressed store, hash-verified

341}
342
343func (p PostgresParser) parseViewStmt(stmt *pgquery.ViewStmt) (parser.Statement, error) {
344 viewName, err := p.parseTableName(stmt.View)
345 if err != nil {
346 return nil, err
347 }
348
349 var definition parser.SelectStatement
350 switch node := stmt.Query.Node.(type) {
351 case *pgquery.Node_SelectStmt:
352 definition, err = p.parseSelectStmt(node.SelectStmt)
353 if err != nil {
354 return nil, err
355 }
356 default:
357 return nil, fmt.Errorf("unknown node in parseViewStmt: %#v", node)
358 }
359
360 return &parser.DDL{
361 Action: parser.CreateView,
362 View: &parser.View{
363 Type: parser.ViewStr,
364 Name: viewName,
365 Definition: definition,
366 },
367 }, nil
368}
369
370func (p PostgresParser) parseSelectStmt(stmt *pgquery.SelectStmt) (parser.SelectStatement, error) {
371 unhandled := stmt.IntoClause != nil ||

Callers 1

parseStmtMethod · 0.95

Calls 3

parseTableNameMethod · 0.95
parseSelectStmtMethod · 0.95
ErrorfMethod · 0.65

Tested by

no test coverage detected