Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions core/src/main/java/com/scalar/db/storage/jdbc/JdbcAdmin.java
Original file line number Diff line number Diff line change
Expand Up @@ -894,14 +894,7 @@ void createIndex(
Connection connection, String schema, String table, String indexedColumn, boolean ifNotExists)
throws SQLException {
String indexName = getIndexName(schema, table, indexedColumn);
String createIndexStatement =
"CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
String createIndexStatement = rdbEngine.createIndexSql(schema, table, indexName, indexedColumn);
if (ifNotExists) {
createIndexStatement = rdbEngine.tryAddIfNotExistsToCreateIndexSql(createIndexStatement);
}
Expand Down
12 changes: 12 additions & 0 deletions core/src/main/java/com/scalar/db/storage/jdbc/RdbEngineDb2.java
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,18 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(indexName);
Expand Down
12 changes: 12 additions & 0 deletions core/src/main/java/com/scalar/db/storage/jdbc/RdbEngineMysql.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,18 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(indexName) + " ON " + encloseFullTableName(schema, table);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,23 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT 1 FROM " + fullTableName + " FETCH FIRST 1 ROWS ONLY";
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(schema)
+ "."
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(indexName);
return "DROP INDEX " + enclose(schema) + "." + enclose(indexName);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,18 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(schema) + "." + enclose(indexName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,18 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT TOP 1 1 FROM " + fullTableName;
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(indexName) + " ON " + encloseFullTableName(schema, table);
Expand Down
12 changes: 12 additions & 0 deletions core/src/main/java/com/scalar/db/storage/jdbc/RdbEngineSqlite.java
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,18 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
}

@Override
public String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(indexedColumn)
+ ")";
}

@Override
public String dropIndexSql(String schema, String table, String indexName) {
return "DROP INDEX " + enclose(indexName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ void dropNamespaceTranslateSQLException(SQLException e, String namespace)

String tableExistsInternalTableCheckSql(String fullTableName);

String createIndexSql(String schema, String table, String indexName, String indexedColumn);

String dropIndexSql(String schema, String table, String indexName);

/**
Expand Down
20 changes: 10 additions & 10 deletions core/src/test/java/com/scalar/db/storage/jdbc/JdbcAdminTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -565,8 +565,8 @@ public void createTableInternal_ForOracle_ShouldCreateTableAndIndexes() throws S
"CREATE TABLE \"my_ns\".\"foo_table\"(\"c3\" NUMBER(1),\"c1\" VARCHAR2(128),\"c4\" RAW(128),\"c2\" NUMBER(16),\"c5\" NUMBER(10),\"c6\" BINARY_DOUBLE,\"c7\" BINARY_FLOAT,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3) WITH TIME ZONE, PRIMARY KEY (\"c3\",\"c1\",\"c4\")) ROWDEPENDENCIES",
"ALTER TABLE \"my_ns\".\"foo_table\" INITRANS 3 MAXTRANS 255",
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
}

@Test
Expand All @@ -579,8 +579,8 @@ public void createTableInternal_ForOracle_ShouldCreateTableAndIndexes() throws S
"CREATE TABLE \"my_ns\".\"foo_table\"(\"c3\" NUMBER(1),\"c1\" VARCHAR2(64),\"c4\" RAW(64),\"c2\" NUMBER(16),\"c5\" NUMBER(10),\"c6\" BINARY_DOUBLE,\"c7\" BINARY_FLOAT,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3) WITH TIME ZONE, PRIMARY KEY (\"c3\",\"c1\",\"c4\")) ROWDEPENDENCIES",
"ALTER TABLE \"my_ns\".\"foo_table\" INITRANS 3 MAXTRANS 255",
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
}

@Test
Expand Down Expand Up @@ -706,8 +706,8 @@ public void createTableInternal_IfNotExistsForOracle_ShouldCreateTableAndIndexes
"CREATE TABLE \"my_ns\".\"foo_table\"(\"c3\" NUMBER(1),\"c1\" VARCHAR2(128),\"c4\" RAW(128),\"c2\" NUMBER(16),\"c5\" NUMBER(10),\"c6\" BINARY_DOUBLE,\"c7\" BINARY_FLOAT,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3) WITH TIME ZONE, PRIMARY KEY (\"c3\",\"c1\",\"c4\")) ROWDEPENDENCIES",
"ALTER TABLE \"my_ns\".\"foo_table\" INITRANS 3 MAXTRANS 255",
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
}

@Test
Expand Down Expand Up @@ -2363,7 +2363,7 @@ public void createIndex_ForColumnTypeWithoutRequiredAlterationForMysql_ShouldCre
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
+ METADATA_SCHEMA
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
"UPDATE \""
+ METADATA_SCHEMA
+ "\".\"metadata\" SET \"indexed\"=1 WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
Expand Down Expand Up @@ -2480,7 +2480,7 @@ private void createIndex_ForColumnTypeWithoutRequiredAlterationForX_ShouldCreate
+ METADATA_SCHEMA
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
"ALTER TABLE \"my_ns\".\"my_tbl\" MODIFY ( \"my_column\" VARCHAR2(128) )",
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
"UPDATE \""
+ METADATA_SCHEMA
+ "\".\"metadata\" SET \"indexed\"=1 WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
Expand Down Expand Up @@ -2603,7 +2603,7 @@ public void dropIndex_forColumnTypeWithoutRequiredAlterationForOracle_ShouldDrop
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
+ METADATA_SCHEMA
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
"UPDATE \""
+ METADATA_SCHEMA
+ "\".\"metadata\" SET \"indexed\"=0 WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
Expand Down Expand Up @@ -2715,7 +2715,7 @@ public void dropIndex_forColumnTypeWithRequiredAlterationForOracle_ShouldDropInd
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
+ METADATA_SCHEMA
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
"ALTER TABLE \"my_ns\".\"my_tbl\" MODIFY ( \"my_column\" VARCHAR2(4000) )",
"UPDATE \""
+ METADATA_SCHEMA
Expand Down