Пример #1
0
        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;
                }
                }
            }
        }
Пример #2
0
        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);
        }