예제 #1
0
        public bool VisitExprTempTableName(ExprTempTableName expr, TCtx arg)
        {
            var res = this.Visit(expr, "TempTableName", arg, out var argOut);

            this.VisitPlainProperty("Name", expr.Name, argOut);
            this._visitor.EndVisitExpr(expr, arg);
            return(res);
        }
예제 #2
0
        public override bool VisitExprTempTableName(ExprTempTableName tempTableName, IExpr?parent)
        {
            char?prefix = null;

            if (tempTableName.Name.Length > 0 && tempTableName.Name[0] != '#')
            {
                prefix = '#';
            }
            this.AppendName(tempTableName.Name, prefix);
            return(true);
        }
        public override void VisitDropTable(StatementDropTable statementDropTable)
        {
            if (!statementDropTable.IfExists)
            {
                this.Builder.Append("DROP TABLE ");
                statementDropTable.Table.Accept(this.ExprBuilder, null);
            }
            else
            {
                StatementIfExists ifExists = statementDropTable.Table switch
                {
                    ExprTableFullName t => new StatementIfTableExists(
                        t,
                        StatementList.Combine(new StatementDropTable(statementDropTable.Table, false)), null),
                    ExprTempTableName tempTable => new StatementIfTempTableExists(
                        tempTable,
                        StatementList.Combine(new StatementDropTable(statementDropTable.Table, false)), null),
                    _ => throw new ArgumentOutOfRangeException()
                };

                ifExists.Accept(this);
            }
        }
예제 #4
0
 public static ExprTempTableName WithName(this ExprTempTableName original, String newName)
 => new ExprTempTableName(name: newName);
예제 #5
0
 public abstract bool VisitExprTempTableName(ExprTempTableName tempTableName, IExpr?parent);
예제 #6
0
 public StatementIfTempTableExists(ExprTempTableName table, StatementList statements, StatementList?elseStatements)
     : base(statements, elseStatements)
 {
     this.Table = table;
 }