Search in sources :

Example 16 with SQLParsingEngine

use of io.shardingjdbc.core.parsing.SQLParsingEngine in project sharding-jdbc by shardingjdbc.

the class DeleteStatementParserTest method parseWithSpecialSyntax.

private void parseWithSpecialSyntax(final DatabaseType dbType, final String actualSQL) {
    ShardingRule shardingRule = createShardingRule();
    DMLStatement deleteStatement = (DMLStatement) new SQLParsingEngine(dbType, actualSQL, shardingRule).parse();
    assertThat(deleteStatement.getTables().find("TABLE_XXX").get().getName(), is("TABLE_XXX"));
    assertFalse(deleteStatement.getTables().find("TABLE_XXX").get().getAlias().isPresent());
    Condition condition = deleteStatement.getConditions().find(new Column("field1", "TABLE_XXX")).get();
    assertThat(condition.getOperator(), is(ShardingOperator.EQUAL));
    assertThat(((ListShardingValue<? extends Comparable>) condition.getShardingValue(Collections.emptyList())).getValues().iterator().next(), is((Comparable) 1));
}
Also used : Condition(io.shardingjdbc.core.parsing.parser.context.condition.Condition) Column(io.shardingjdbc.core.parsing.parser.context.condition.Column) ShardingRule(io.shardingjdbc.core.rule.ShardingRule) DMLStatement(io.shardingjdbc.core.parsing.parser.sql.dml.DMLStatement) SQLParsingEngine(io.shardingjdbc.core.parsing.SQLParsingEngine)

Example 17 with SQLParsingEngine

use of io.shardingjdbc.core.parsing.SQLParsingEngine in project sharding-jdbc by shardingjdbc.

the class DeleteStatementParserTest method parseStatementWithDeleteMultipleTableWithUsing.

@Test(expected = UnsupportedOperationException.class)
public void parseStatementWithDeleteMultipleTableWithUsing() {
    ShardingRule shardingRule = createShardingRule();
    new SQLParsingEngine(DatabaseType.MySQL, "DELETE FROM TABLE_XXX1, TABLE_xxx2 USING TABLE_XXX1 JOIN TABLE_XXX2", shardingRule).parse();
}
Also used : ShardingRule(io.shardingjdbc.core.rule.ShardingRule) SQLParsingEngine(io.shardingjdbc.core.parsing.SQLParsingEngine) Test(org.junit.Test)

Example 18 with SQLParsingEngine

use of io.shardingjdbc.core.parsing.SQLParsingEngine in project sharding-jdbc by shardingjdbc.

the class InsertStatementParserTest method assertParseWithGenerateKeyColumnsWithoutParameter.

@Test
public void assertParseWithGenerateKeyColumnsWithoutParameter() {
    ShardingRule shardingRule = createShardingRuleWithGenerateKeyColumns();
    SQLParsingEngine statementParser = new SQLParsingEngine(DatabaseType.MySQL, "INSERT INTO `TABLE_XXX` (`field1`) VALUES (10)", shardingRule);
    InsertStatement insertStatement = (InsertStatement) statementParser.parse();
    assertInsertStatementWithoutParameter(insertStatement);
}
Also used : ShardingRule(io.shardingjdbc.core.rule.ShardingRule) SQLParsingEngine(io.shardingjdbc.core.parsing.SQLParsingEngine) InsertStatement(io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement) Test(org.junit.Test)

Example 19 with SQLParsingEngine

use of io.shardingjdbc.core.parsing.SQLParsingEngine in project sharding-jdbc by shardingjdbc.

the class InsertStatementParserTest method parseInsertAllForOracle.

@Test(expected = SQLParsingUnsupportedException.class)
public void parseInsertAllForOracle() {
    ShardingRule shardingRule = createShardingRule();
    new SQLParsingEngine(DatabaseType.Oracle, "INSERT ALL INTO TABLE_XXX (field1) VALUES (field1) SELECT field1 FROM TABLE_XXX2", shardingRule).parse();
}
Also used : ShardingRule(io.shardingjdbc.core.rule.ShardingRule) SQLParsingEngine(io.shardingjdbc.core.parsing.SQLParsingEngine) Test(org.junit.Test)

Example 20 with SQLParsingEngine

use of io.shardingjdbc.core.parsing.SQLParsingEngine in project sharding-jdbc by shardingjdbc.

the class InsertStatementParserTest method parseMultipleInsertForMySQL.

@Test
public // TODO assert
void parseMultipleInsertForMySQL() {
    ShardingRule shardingRule = createShardingRule();
    new SQLParsingEngine(DatabaseType.MySQL, "INSERT INTO TABLE_XXX (`field1`, `field2`) VALUES (1, 'value_char'), (2, 'value_char')", shardingRule).parse();
}
Also used : ShardingRule(io.shardingjdbc.core.rule.ShardingRule) SQLParsingEngine(io.shardingjdbc.core.parsing.SQLParsingEngine) Test(org.junit.Test)

Aggregations

SQLParsingEngine (io.shardingjdbc.core.parsing.SQLParsingEngine)23 ShardingRule (io.shardingjdbc.core.rule.ShardingRule)19 Test (org.junit.Test)17 DMLStatement (io.shardingjdbc.core.parsing.parser.sql.dml.DMLStatement)8 InsertStatement (io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement)6 Column (io.shardingjdbc.core.parsing.parser.context.condition.Column)3 Condition (io.shardingjdbc.core.parsing.parser.context.condition.Condition)3 SQLStatement (io.shardingjdbc.core.parsing.parser.sql.SQLStatement)2 LinkedList (java.util.LinkedList)2 QueryResult (io.shardingjdbc.core.merger.QueryResult)1 MemoryQueryResultRow (io.shardingjdbc.core.merger.dql.common.MemoryQueryResultRow)1 SQLStatementAssert (io.shardingjdbc.core.parsing.integrate.asserts.SQLStatementAssert)1 TableRule (io.shardingjdbc.core.rule.TableRule)1 DatabaseProtocolPacket (io.shardingjdbc.proxy.transport.common.packet.DatabaseProtocolPacket)1 ColumnDefinition41Packet (io.shardingjdbc.proxy.transport.mysql.packet.command.text.query.ColumnDefinition41Packet)1 EofPacket (io.shardingjdbc.proxy.transport.mysql.packet.generic.EofPacket)1