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);
}
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);
}
}
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);
}
}
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();
}
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();
}
Aggregations