Search in sources :

Example 1 with JdbcStatement

use of org.gridgain.internal.h2.jdbc.JdbcStatement in project Lealone-Plugins by lealone.

the class ConcurrentUpdateTest method main.

public static void main(String[] args) throws Exception {
    Connection conn = getConnection(false);
    JdbcStatement stmt = (JdbcStatement) conn.createStatement();
    stmt.executeUpdate("DROP TABLE IF EXISTS ConcurrentUpdateTest");
    stmt.executeUpdate("CREATE TABLE IF NOT EXISTS ConcurrentUpdateTest (f1 int primary key, f2 long)");
    String sql = "INSERT INTO ConcurrentUpdateTest(f1, f2) VALUES(1, 2)";
    stmt.executeUpdate(sql);
    sql = "INSERT INTO ConcurrentUpdateTest(f1, f2) VALUES(2, 2)";
    stmt.executeUpdate(sql);
    sql = "INSERT INTO ConcurrentUpdateTest(f1, f2) VALUES(3, 2)";
    stmt.executeUpdate(sql);
    sql = "INSERT INTO ConcurrentUpdateTest(f1, f2) VALUES(4, 2)";
    stmt.executeUpdate(sql);
    int threadsCount = 2;
    UpdateThread[] updateThreads = new UpdateThread[threadsCount];
    DeleteThread[] deleteThreads = new DeleteThread[threadsCount];
    QueryThread[] queryThreads = new QueryThread[threadsCount];
    for (int i = 0; i < threadsCount; i++) {
        updateThreads[i] = new UpdateThread(i);
    }
    for (int i = 0; i < threadsCount; i++) {
        deleteThreads[i] = new DeleteThread(i);
    }
    for (int i = 0; i < threadsCount; i++) {
        queryThreads[i] = new QueryThread(i);
    }
    for (int i = 0; i < threadsCount; i++) {
        updateThreads[i].start();
        deleteThreads[i].start();
        queryThreads[i].start();
    }
    for (int i = 0; i < threadsCount; i++) {
        updateThreads[i].join();
        deleteThreads[i].join();
        queryThreads[i].join();
    }
    ConcurrentUpdateTest.close(stmt, conn);
}
Also used : JdbcStatement(org.h2.jdbc.JdbcStatement) Connection(java.sql.Connection)

Example 2 with JdbcStatement

use of org.gridgain.internal.h2.jdbc.JdbcStatement in project gridgain by gridgain.

the class JdbcConnection method createStatement.

/**
 * Creates a new statement.
 *
 * @return the new statement
 * @throws SQLException if the connection is closed
 */
@Override
public Statement createStatement() throws SQLException {
    try {
        int id = getNextId(TraceObject.STATEMENT);
        if (isDebugEnabled()) {
            debugCodeAssign("Statement", TraceObject.STATEMENT, id, "createStatement()");
        }
        checkClosed();
        return new JdbcStatement(this, id, ResultSet.TYPE_FORWARD_ONLY, Constants.DEFAULT_RESULT_SET_CONCURRENCY, false);
    } catch (Exception e) {
        throw logAndConvert(e);
    }
}
Also used : Savepoint(java.sql.Savepoint) SQLClientInfoException(java.sql.SQLClientInfoException) SQLException(java.sql.SQLException) DbException(org.gridgain.internal.h2.message.DbException)

Example 3 with JdbcStatement

use of org.gridgain.internal.h2.jdbc.JdbcStatement in project gridgain by gridgain.

the class JdbcConnection method createStatement.

/**
 * Creates a statement with the specified result set type and concurrency.
 *
 * @param resultSetType the result set type (ResultSet.TYPE_*)
 * @param resultSetConcurrency the concurrency (ResultSet.CONCUR_*)
 * @return the statement
 * @throws SQLException if the connection is closed or the result set type
 *             or concurrency are not supported
 */
@Override
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
    try {
        int id = getNextId(TraceObject.STATEMENT);
        if (isDebugEnabled()) {
            debugCodeAssign("Statement", TraceObject.STATEMENT, id, "createStatement(" + resultSetType + ", " + resultSetConcurrency + ")");
        }
        checkTypeConcurrency(resultSetType, resultSetConcurrency);
        checkClosed();
        return new JdbcStatement(this, id, resultSetType, resultSetConcurrency, false);
    } catch (Exception e) {
        throw logAndConvert(e);
    }
}
Also used : Savepoint(java.sql.Savepoint) SQLClientInfoException(java.sql.SQLClientInfoException) SQLException(java.sql.SQLException) DbException(org.gridgain.internal.h2.message.DbException)

Example 4 with JdbcStatement

use of org.gridgain.internal.h2.jdbc.JdbcStatement in project h2database by h2database.

the class TestStatement method testIdentifiers.

private void testIdentifiers() throws SQLException {
    Connection conn = getConnection("statement");
    JdbcStatement stat = (JdbcStatement) conn.createStatement();
    assertEquals("SOME_ID", stat.enquoteIdentifier("SOME_ID", false));
    assertEquals("\"SOME ID\"", stat.enquoteIdentifier("SOME ID", false));
    assertEquals("\"SOME_ID\"", stat.enquoteIdentifier("SOME_ID", true));
    assertEquals("\"FROM\"", stat.enquoteIdentifier("FROM", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("Test", false));
    assertEquals("\"test\"", stat.enquoteIdentifier("test", false));
    assertEquals("\"TOP\"", stat.enquoteIdentifier("TOP", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("\"Test\"", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("\"Test\"", true));
    assertEquals("\"\"\"Test\"", stat.enquoteIdentifier("\"\"\"Test\"", true));
    assertEquals("\"\"", stat.enquoteIdentifier("", false));
    assertEquals("\"\"", stat.enquoteIdentifier("", true));
    assertEquals("U&\"\"", stat.enquoteIdentifier("U&\"\"", false));
    assertEquals("U&\"\"", stat.enquoteIdentifier("U&\"\"", true));
    assertEquals("U&\"\0100\"", stat.enquoteIdentifier("U&\"\0100\"", false));
    assertEquals("U&\"\0100\"", stat.enquoteIdentifier("U&\"\0100\"", true));
    assertThrows(NullPointerException.class, () -> stat.enquoteIdentifier(null, false));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("\"Test", true));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("\"a\"a\"", true));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("U&\"a\"a\"", true));
    assertThrows(ErrorCode.STRING_FORMAT_ERROR_1, () -> stat.enquoteIdentifier("U&\"\\111\"", true));
    assertEquals("U&\"\\02b0\"", stat.enquoteIdentifier("\u02B0", false));
    assertTrue(stat.isSimpleIdentifier("SOME_ID_1"));
    assertFalse(stat.isSimpleIdentifier("SOME ID"));
    assertFalse(stat.isSimpleIdentifier("FROM"));
    assertFalse(stat.isSimpleIdentifier("Test"));
    assertFalse(stat.isSimpleIdentifier("test"));
    assertFalse(stat.isSimpleIdentifier("TOP"));
    assertFalse(stat.isSimpleIdentifier("_"));
    assertFalse(stat.isSimpleIdentifier("_1"));
    assertFalse(stat.isSimpleIdentifier("\u02B0"));
    conn.close();
    deleteDb("statement");
    conn = getConnection("statement;DATABASE_TO_LOWER=TRUE");
    JdbcStatement stat2 = (JdbcStatement) conn.createStatement();
    assertEquals("some_id", stat2.enquoteIdentifier("some_id", false));
    assertEquals("\"some id\"", stat2.enquoteIdentifier("some id", false));
    assertEquals("\"some_id\"", stat2.enquoteIdentifier("some_id", true));
    assertEquals("\"from\"", stat2.enquoteIdentifier("from", false));
    assertEquals("\"Test\"", stat2.enquoteIdentifier("Test", false));
    assertEquals("\"TEST\"", stat2.enquoteIdentifier("TEST", false));
    assertEquals("\"top\"", stat2.enquoteIdentifier("top", false));
    assertTrue(stat2.isSimpleIdentifier("some_id"));
    assertFalse(stat2.isSimpleIdentifier("some id"));
    assertFalse(stat2.isSimpleIdentifier("from"));
    assertFalse(stat2.isSimpleIdentifier("Test"));
    assertFalse(stat2.isSimpleIdentifier("TEST"));
    assertFalse(stat2.isSimpleIdentifier("top"));
    conn.close();
    deleteDb("statement");
    conn = getConnection("statement;DATABASE_TO_UPPER=FALSE");
    JdbcStatement stat3 = (JdbcStatement) conn.createStatement();
    assertEquals("SOME_ID", stat3.enquoteIdentifier("SOME_ID", false));
    assertEquals("some_id", stat3.enquoteIdentifier("some_id", false));
    assertEquals("\"SOME ID\"", stat3.enquoteIdentifier("SOME ID", false));
    assertEquals("\"some id\"", stat3.enquoteIdentifier("some id", false));
    assertEquals("\"SOME_ID\"", stat3.enquoteIdentifier("SOME_ID", true));
    assertEquals("\"some_id\"", stat3.enquoteIdentifier("some_id", true));
    assertEquals("\"FROM\"", stat3.enquoteIdentifier("FROM", false));
    assertEquals("\"from\"", stat3.enquoteIdentifier("from", false));
    assertEquals("Test", stat3.enquoteIdentifier("Test", false));
    assertEquals("\"TOP\"", stat3.enquoteIdentifier("TOP", false));
    assertEquals("\"top\"", stat3.enquoteIdentifier("top", false));
    assertTrue(stat3.isSimpleIdentifier("SOME_ID"));
    assertTrue(stat3.isSimpleIdentifier("some_id"));
    assertFalse(stat3.isSimpleIdentifier("SOME ID"));
    assertFalse(stat3.isSimpleIdentifier("some id"));
    assertFalse(stat3.isSimpleIdentifier("FROM"));
    assertFalse(stat3.isSimpleIdentifier("from"));
    assertTrue(stat3.isSimpleIdentifier("Test"));
    assertFalse(stat3.isSimpleIdentifier("TOP"));
    assertFalse(stat3.isSimpleIdentifier("top"));
    assertThrows(NullPointerException.class, () -> stat3.isSimpleIdentifier(null));
    conn.close();
}
Also used : JdbcStatement(org.h2.jdbc.JdbcStatement) Connection(java.sql.Connection)

Example 5 with JdbcStatement

use of org.gridgain.internal.h2.jdbc.JdbcStatement in project SpringStudy by myounghaklee.

the class TestStatement method testIdentifiers.

private void testIdentifiers() throws SQLException {
    Connection conn = getConnection("statement");
    JdbcStatement stat = (JdbcStatement) conn.createStatement();
    assertEquals("SOME_ID", stat.enquoteIdentifier("SOME_ID", false));
    assertEquals("\"SOME ID\"", stat.enquoteIdentifier("SOME ID", false));
    assertEquals("\"SOME_ID\"", stat.enquoteIdentifier("SOME_ID", true));
    assertEquals("\"FROM\"", stat.enquoteIdentifier("FROM", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("Test", false));
    assertEquals("\"test\"", stat.enquoteIdentifier("test", false));
    assertEquals("\"TOP\"", stat.enquoteIdentifier("TOP", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("\"Test\"", false));
    assertEquals("\"Test\"", stat.enquoteIdentifier("\"Test\"", true));
    assertEquals("\"\"\"Test\"", stat.enquoteIdentifier("\"\"\"Test\"", true));
    assertEquals("\"\"", stat.enquoteIdentifier("", false));
    assertEquals("\"\"", stat.enquoteIdentifier("", true));
    assertEquals("U&\"\"", stat.enquoteIdentifier("U&\"\"", false));
    assertEquals("U&\"\"", stat.enquoteIdentifier("U&\"\"", true));
    assertEquals("U&\"\0100\"", stat.enquoteIdentifier("U&\"\0100\"", false));
    assertEquals("U&\"\0100\"", stat.enquoteIdentifier("U&\"\0100\"", true));
    assertThrows(NullPointerException.class, () -> stat.enquoteIdentifier(null, false));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("\"Test", true));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("\"a\"a\"", true));
    assertThrows(ErrorCode.INVALID_NAME_1, () -> stat.enquoteIdentifier("U&\"a\"a\"", true));
    assertThrows(ErrorCode.STRING_FORMAT_ERROR_1, () -> stat.enquoteIdentifier("U&\"\\111\"", true));
    assertEquals("U&\"\\02b0\"", stat.enquoteIdentifier("\u02B0", false));
    assertTrue(stat.isSimpleIdentifier("SOME_ID_1"));
    assertFalse(stat.isSimpleIdentifier("SOME ID"));
    assertFalse(stat.isSimpleIdentifier("FROM"));
    assertFalse(stat.isSimpleIdentifier("Test"));
    assertFalse(stat.isSimpleIdentifier("test"));
    assertFalse(stat.isSimpleIdentifier("TOP"));
    assertFalse(stat.isSimpleIdentifier("_"));
    assertFalse(stat.isSimpleIdentifier("_1"));
    assertFalse(stat.isSimpleIdentifier("\u02B0"));
    conn.close();
    deleteDb("statement");
    conn = getConnection("statement;DATABASE_TO_LOWER=TRUE");
    JdbcStatement stat2 = (JdbcStatement) conn.createStatement();
    assertEquals("some_id", stat2.enquoteIdentifier("some_id", false));
    assertEquals("\"some id\"", stat2.enquoteIdentifier("some id", false));
    assertEquals("\"some_id\"", stat2.enquoteIdentifier("some_id", true));
    assertEquals("\"from\"", stat2.enquoteIdentifier("from", false));
    assertEquals("\"Test\"", stat2.enquoteIdentifier("Test", false));
    assertEquals("\"TEST\"", stat2.enquoteIdentifier("TEST", false));
    assertEquals("\"top\"", stat2.enquoteIdentifier("top", false));
    assertTrue(stat2.isSimpleIdentifier("some_id"));
    assertFalse(stat2.isSimpleIdentifier("some id"));
    assertFalse(stat2.isSimpleIdentifier("from"));
    assertFalse(stat2.isSimpleIdentifier("Test"));
    assertFalse(stat2.isSimpleIdentifier("TEST"));
    assertFalse(stat2.isSimpleIdentifier("top"));
    conn.close();
    deleteDb("statement");
    conn = getConnection("statement;DATABASE_TO_UPPER=FALSE");
    JdbcStatement stat3 = (JdbcStatement) conn.createStatement();
    assertEquals("SOME_ID", stat3.enquoteIdentifier("SOME_ID", false));
    assertEquals("some_id", stat3.enquoteIdentifier("some_id", false));
    assertEquals("\"SOME ID\"", stat3.enquoteIdentifier("SOME ID", false));
    assertEquals("\"some id\"", stat3.enquoteIdentifier("some id", false));
    assertEquals("\"SOME_ID\"", stat3.enquoteIdentifier("SOME_ID", true));
    assertEquals("\"some_id\"", stat3.enquoteIdentifier("some_id", true));
    assertEquals("\"FROM\"", stat3.enquoteIdentifier("FROM", false));
    assertEquals("\"from\"", stat3.enquoteIdentifier("from", false));
    assertEquals("Test", stat3.enquoteIdentifier("Test", false));
    assertEquals("\"TOP\"", stat3.enquoteIdentifier("TOP", false));
    assertEquals("\"top\"", stat3.enquoteIdentifier("top", false));
    assertTrue(stat3.isSimpleIdentifier("SOME_ID"));
    assertTrue(stat3.isSimpleIdentifier("some_id"));
    assertFalse(stat3.isSimpleIdentifier("SOME ID"));
    assertFalse(stat3.isSimpleIdentifier("some id"));
    assertFalse(stat3.isSimpleIdentifier("FROM"));
    assertFalse(stat3.isSimpleIdentifier("from"));
    assertTrue(stat3.isSimpleIdentifier("Test"));
    assertFalse(stat3.isSimpleIdentifier("TOP"));
    assertFalse(stat3.isSimpleIdentifier("top"));
    assertThrows(NullPointerException.class, () -> stat3.isSimpleIdentifier(null));
    conn.close();
}
Also used : JdbcStatement(org.h2.jdbc.JdbcStatement) Connection(java.sql.Connection)

Aggregations

JdbcStatement (org.gridgain.internal.h2.jdbc.JdbcStatement)7 ResultSet (java.sql.ResultSet)6 Connection (java.sql.Connection)4 SQLException (java.sql.SQLException)4 Savepoint (java.sql.Savepoint)3 DbException (org.gridgain.internal.h2.message.DbException)3 JdbcStatement (org.h2.jdbc.JdbcStatement)3 PreparedStatement (java.sql.PreparedStatement)2 SQLClientInfoException (java.sql.SQLClientInfoException)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 DataInputStream (java.io.DataInputStream)1 EOFException (java.io.EOFException)1 IOException (java.io.IOException)1 StringReader (java.io.StringReader)1 ParameterMetaData (java.sql.ParameterMetaData)1 ResultSetMetaData (java.sql.ResultSetMetaData)1 Statement (java.sql.Statement)1 Properties (java.util.Properties)1 ConnectionInfo (org.gridgain.internal.h2.engine.ConnectionInfo)1 SysProperties (org.gridgain.internal.h2.engine.SysProperties)1