public static void VisitCreateDefinitions(CreateDefinitionsContext context, CreateTableQueryInfo queryInfo) { foreach (var definition in context.createDefinition()) { switch (definition) { case ColumnDeclarationContext columnDeclarationContext: { var tableColumn = VisitColumnDeclaration(columnDeclarationContext); queryInfo.AddTableColumn(tableColumn); break; } case ConstraintDeclarationContext constraintDeclarationContext: { (string columnName, bool isHashKey) = VisitTableConstraint(constraintDeclarationContext.tableConstraint()); queryInfo.SetConstraint(columnName, isHashKey); break; } case IndexDeclarationContext indexColumnDefinitionContext: { var indexDefinition = VisitIndexColumnDefinition(indexColumnDefinitionContext.indexColumnDefinition()); queryInfo.AddIndexDefinition(indexDefinition); break; } } } }
public static CreateTablePlanner VisitCreateTableContext(CreateTableContext context) { var queryInfo = new CreateTableQueryInfo { TableName = VisitTableName(context.tableName()), SkipIfExists = context.ifNotExists() != null }; VisitCreateDefinitions(context.createDefinitions(), queryInfo); foreach (var tableOption in context.tableOption()) { VisitTableOption(tableOption, queryInfo); } var planner = new CreateTablePlanner { QueryInfo = queryInfo }; return(planner); }