Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
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 @@ -102,6 +102,17 @@ void dropNamespaceTranslateSQLException(SQLException e, String namespace)

String tableExistsInternalTableCheckSql(String fullTableName);

default String createIndexSql(
String schema, String table, String indexName, String indexedColumn) {
return "CREATE INDEX "
+ enclose(indexName)
+ " ON "
+ encloseFullTableName(schema, table)
+ " ("
+ enclose(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