Replace() public method

nothing has been pre-consumed
 'REPLACE' ('LOW_PRIORITY' | 'DELAYED')? ('INTO')? tableName (  'SET' colName ('='|':=') (expr|'DEFAULT') (',' colName ('='|':=') (expr|'DEFAULT')) | '(' (  colName (','colName)* ')' (  '(' 'SELECT' ...                            
nothing has been pre-consumed
 'REPLACE' ('LOW_PRIORITY' | 'DELAYED')? ('INTO')? tableName (  'SET' colName ('='|':=') (expr|'DEFAULT') (',' colName ('='|':=') (expr|'DEFAULT')) | '(' (  colName (','colName)* ')' (  '(' 'SELECT' ... ')' | 'SELECT' ... |('VALUES'|'VALUE') value ( ',' value ) ) | 'SELECT' ... ')' ) | 'SELECT' ... |('VALUES'|'VALUE') value ( ',' value ) ) value := '(' (expr|'DEFAULT') ( ',' (expr|'DEFAULT'))* ')' 
public Replace ( ) : DmlReplaceStatement
return Tup.Cobar4Net.Parser.Ast.Stmt.Dml.DmlReplaceStatement
Esempio n. 1
0
        public virtual void TestReplace()
        {
            var sql     = "ReplaCe LOW_PRIORITY intO test.t1 seT t1.id1:=?, id2='123'";
            var lexer   = new MySqlLexer(sql);
            var parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            var replace = parser.Replace();

            parser.Match(MySqlToken.Eof);
            Assert.IsNotNull(replace);
            var output = Output2MySql(replace, sql);

            Assert.AreEqual("REPLACE LOW_PRIORITY INTO test.t1 (t1.id1, id2) VALUES (?, '123')", output);
            sql     = "ReplaCe   test.t1 seT t1.id1:=? ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE INTO test.t1 (t1.id1) VALUES (?)", output);
            sql     = "ReplaCe t1 value (123,?) ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE INTO t1 VALUES (123, ?)", output);
            sql     = "ReplaCe LOW_PRIORITY t1 valueS (12e-2), (?)";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 VALUES (0.12), (?)", output);
            sql     = "ReplaCe LOW_PRIORITY t1 select id from t1";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 SELECT id FROM t1",
                            output);
            sql     = "ReplaCe delayed t1 select id from t1";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE DELAYED INTO t1 SELECT id FROM t1", output);
            sql     = "ReplaCe LOW_PRIORITY t1 (select id from t1) ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 SELECT id FROM t1",
                            output);
            sql     = "ReplaCe LOW_PRIORITY t1 (t1.col1) valueS (123),('12''34')";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (t1.col1) VALUES (123), ('12\\'34')", output);
            sql     = "ReplaCe LOW_PRIORITY t1 (col1, t1.col2) VALUE (123,'123\\'4') ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1, t1.col2) VALUES (123, '123\\'4')", output);
            sql     = "REPLACE LOW_PRIORITY t1 (col1, t1.col2) select id from t3 ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1, t1.col2) SELECT id FROM t3", output);
            sql     = "replace LOW_PRIORITY  intO t1 (col1) ( select id from t3) ";
            lexer   = new MySqlLexer(sql);
            parser  = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
            replace = parser.Replace();
            parser.Match(MySqlToken.Eof);
            output = Output2MySql(replace, sql);
            Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1) SELECT id FROM t3", output);
        }
 public virtual void TestReplace()
 {
     var sql = "ReplaCe LOW_PRIORITY intO test.t1 seT t1.id1:=?, id2='123'";
     var lexer = new MySqlLexer(sql);
     var parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     var replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     Assert.IsNotNull(replace);
     var output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO test.t1 (t1.id1, id2) VALUES (?, '123')", output);
     sql = "ReplaCe   test.t1 seT t1.id1:=? ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE INTO test.t1 (t1.id1) VALUES (?)", output);
     sql = "ReplaCe t1 value (123,?) ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE INTO t1 VALUES (123, ?)", output);
     sql = "ReplaCe LOW_PRIORITY t1 valueS (12e-2), (?)";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 VALUES (0.12), (?)", output);
     sql = "ReplaCe LOW_PRIORITY t1 select id from t1";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 SELECT id FROM t1",
         output);
     sql = "ReplaCe delayed t1 select id from t1";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE DELAYED INTO t1 SELECT id FROM t1", output);
     sql = "ReplaCe LOW_PRIORITY t1 (select id from t1) ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 SELECT id FROM t1",
         output);
     sql = "ReplaCe LOW_PRIORITY t1 (t1.col1) valueS (123),('12''34')";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (t1.col1) VALUES (123), ('12\\'34')", output);
     sql = "ReplaCe LOW_PRIORITY t1 (col1, t1.col2) VALUE (123,'123\\'4') ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1, t1.col2) VALUES (123, '123\\'4')", output);
     sql = "REPLACE LOW_PRIORITY t1 (col1, t1.col2) select id from t3 ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1, t1.col2) SELECT id FROM t3", output);
     sql = "replace LOW_PRIORITY  intO t1 (col1) ( select id from t3) ";
     lexer = new MySqlLexer(sql);
     parser = new MySqlDmlReplaceParser(lexer, new MySqlExprParser(lexer));
     replace = parser.Replace();
     parser.Match(MySqlToken.Eof);
     output = Output2MySql(replace, sql);
     Assert.AreEqual("REPLACE LOW_PRIORITY INTO t1 (col1) SELECT id FROM t3", output);
 }