Skip to content

Commit 9039021

Browse files
committed
Fix to specify schema when creating or dropping an index with Db2 engine
1 parent d1fc213 commit 9039021

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

core/src/main/java/com/scalar/db/storage/jdbc/RdbEngineDb2.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,23 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
262262
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
263263
}
264264

265+
@Override
266+
public String createIndexSql(
267+
String schema, String table, String indexName, String indexedColumn) {
268+
return "CREATE INDEX "
269+
+ enclose(schema)
270+
+ "."
271+
+ enclose(indexName)
272+
+ " ON "
273+
+ encloseFullTableName(schema, table)
274+
+ " ("
275+
+ enclose(indexedColumn)
276+
+ ")";
277+
}
278+
265279
@Override
266280
public String dropIndexSql(String schema, String table, String indexName) {
267-
return "DROP INDEX " + enclose(indexName);
281+
return "DROP INDEX " + enclose(schema) + "." + enclose(indexName);
268282
}
269283

270284
@Override

core/src/test/java/com/scalar/db/storage/jdbc/JdbcAdminTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -599,8 +599,8 @@ public void createTableInternal_ForDb2_ShouldCreateTableAndIndexes() throws SQLE
599599
new RdbEngineDb2(config),
600600
"CREATE TABLE \"my_ns\".\"foo_table\"(\"c3\" BOOLEAN NOT NULL,\"c1\" VARCHAR(64) NOT NULL,\"c4\" VARBINARY(64) NOT NULL,\"c2\" BIGINT,\"c5\" INT,\"c6\" DOUBLE,\"c7\" REAL,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3), PRIMARY KEY (\"c3\",\"c1\",\"c4\"))",
601601
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
602-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
603-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
602+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
603+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
604604
}
605605

606606
@Test
@@ -611,8 +611,8 @@ public void createTableInternal_ForDb2_ShouldCreateTableAndIndexes() throws SQLE
611611
RdbEngine.DB2,
612612
"CREATE TABLE \"my_ns\".\"foo_table\"(\"c3\" BOOLEAN NOT NULL,\"c1\" VARCHAR(128) NOT NULL,\"c4\" VARBINARY(128) NOT NULL,\"c2\" BIGINT,\"c5\" INT,\"c6\" DOUBLE,\"c7\" REAL,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3), PRIMARY KEY (\"c3\",\"c1\",\"c4\"))",
613613
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
614-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
615-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
614+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
615+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
616616
}
617617

618618
private void createTableInternal_ForX_CreateTableAndIndexes(
@@ -727,8 +727,8 @@ public void createTableInternal_IfNotExistsForDb2_ShouldCreateTableAndIndexesIfN
727727
RdbEngine.DB2,
728728
"CREATE TABLE IF NOT EXISTS \"my_ns\".\"foo_table\"(\"c3\" BOOLEAN NOT NULL,\"c1\" VARCHAR(128) NOT NULL,\"c4\" VARBINARY(128) NOT NULL,\"c2\" BIGINT,\"c5\" INT,\"c6\" DOUBLE,\"c7\" REAL,\"c8\" DATE,\"c9\" TIMESTAMP(6),\"c10\" TIMESTAMP(3),\"c11\" TIMESTAMP(3), PRIMARY KEY (\"c3\",\"c1\",\"c4\"))",
729729
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
730-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
731-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
730+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
731+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")");
732732
}
733733

734734
private void createTableInternal_IfNotExistsForX_createTableAndIndexesIfNotExists(
@@ -2392,7 +2392,7 @@ public void createIndex_ForColumnTypeWithoutRequiredAlterationForDb2_ShouldCreat
23922392
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
23932393
+ METADATA_SCHEMA
23942394
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
2395-
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
2395+
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
23962396
"UPDATE \""
23972397
+ METADATA_SCHEMA
23982398
+ "\".\"metadata\" SET \"indexed\"=true WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2502,7 +2502,7 @@ private void createIndex_ForColumnTypeWithoutRequiredAlterationForX_ShouldCreate
25022502
+ METADATA_SCHEMA
25032503
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
25042504
"ALTER TABLE \"my_ns\".\"my_tbl\" ALTER COLUMN \"my_column\" SET DATA TYPE VARCHAR(128)",
2505-
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
2505+
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
25062506
"UPDATE \""
25072507
+ METADATA_SCHEMA
25082508
+ "\".\"metadata\" SET \"indexed\"=true WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2631,7 +2631,7 @@ public void dropIndex_forColumnTypeWithoutRequiredAlterationForDb2_ShouldDropInd
26312631
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
26322632
+ METADATA_SCHEMA
26332633
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
2634-
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
2634+
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
26352635
"UPDATE \""
26362636
+ METADATA_SCHEMA
26372637
+ "\".\"metadata\" SET \"indexed\"=false WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2735,7 +2735,7 @@ public void dropIndex_forColumnTypeWithRequiredAlterationForDb2_ShouldDropIndexP
27352735
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
27362736
+ METADATA_SCHEMA
27372737
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
2738-
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
2738+
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
27392739
"ALTER TABLE \"my_ns\".\"my_tbl\" ALTER COLUMN \"my_column\" SET DATA TYPE VARCHAR(32672)",
27402740
"UPDATE \""
27412741
+ METADATA_SCHEMA

0 commit comments

Comments
 (0)