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

Method convertCreate_virtual_table_fts5

internal/engine/sqlite/convert.go:143–172  ·  view source on GitHub ↗
(n *parser.Create_virtual_table_stmtContext)

Source from the content-addressed store, hash-verified

141}
142
143func (c *cc) convertCreate_virtual_table_fts5(n *parser.Create_virtual_table_stmtContext) ast.Node {
144 stmt := &ast.CreateTableStmt{
145 Name: parseTableName(n),
146 IfNotExists: n.EXISTS_() != nil,
147 }
148
149 for _, arg := range n.AllModule_argument() {
150 var columnName string
151
152 // For example: CREATE VIRTUAL TABLE tbl_ft USING fts5(b, c UNINDEXED)
153 // * the 'b' column is parsed like Expr_qualified_column_nameContext
154 // * the 'c' column is parsed like Column_defContext
155 if columnExpr, ok := arg.Expr().(*parser.Expr_qualified_column_nameContext); ok {
156 columnName = columnExpr.Column_name().GetText()
157 } else if columnDef, ok := arg.Column_def().(*parser.Column_defContext); ok {
158 columnName = columnDef.Column_name().GetText()
159 }
160
161 if columnName != "" {
162 stmt.Cols = append(stmt.Cols, &ast.ColumnDef{
163 Colname: identifier(columnName),
164 // you can not specify any column constraints in fts5, so we pass them manually
165 IsNotNull: true,
166 TypeName: &ast.TypeName{Name: "text"},
167 })
168 }
169 }
170
171 return stmt
172}
173
174func (c *cc) convertCreate_view_stmtContext(n *parser.Create_view_stmtContext) ast.Node {
175 viewName := n.View_name().GetText()

Calls 8

GetTextMethod · 0.80
parseTableNameFunction · 0.70
identifierFunction · 0.70
EXISTS_Method · 0.65
AllModule_argumentMethod · 0.65
ExprMethod · 0.65
Column_nameMethod · 0.65
Column_defMethod · 0.65

Tested by

no test coverage detected