Skip to content

Commit 94146f7

Browse files
feeblefakieKodaiD
andauthored
Backport to branch(3.16) : Fix to specify schema when creating or dropping an index with Db2 engine (#2935)
Co-authored-by: Kodai Doki <[email protected]>
1 parent 27ba0bc commit 94146f7

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
@@ -257,9 +257,23 @@ public String tableExistsInternalTableCheckSql(String fullTableName) {
257257
return "SELECT 1 FROM " + fullTableName + " LIMIT 1";
258258
}
259259

260+
@Override
261+
public String createIndexSql(
262+
String schema, String table, String indexName, String indexedColumn) {
263+
return "CREATE INDEX "
264+
+ enclose(schema)
265+
+ "."
266+
+ enclose(indexName)
267+
+ " ON "
268+
+ encloseFullTableName(schema, table)
269+
+ " ("
270+
+ enclose(indexedColumn)
271+
+ ")";
272+
}
273+
260274
@Override
261275
public String dropIndexSql(String schema, String table, String indexName) {
262-
return "DROP INDEX " + enclose(indexName);
276+
return "DROP INDEX " + enclose(schema) + "." + enclose(indexName);
263277
}
264278

265279
@Override

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -735,8 +735,8 @@ public void createTable_forDb2_shouldExecuteCreateTableStatement()
735735
+ "\"ordinal_position\" INTEGER NOT NULL,"
736736
+ "PRIMARY KEY (\"full_table_name\", \"column_name\"))",
737737
"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, PRIMARY KEY (\"c3\",\"c1\",\"c4\"))",
738-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
739-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
738+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
739+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
740740
"INSERT INTO \""
741741
+ tableMetadataSchemaName
742742
+ "\".\"metadata\" VALUES ('my_ns.foo_table','c3','BOOLEAN','PARTITION',NULL,false,1)",
@@ -779,8 +779,8 @@ public void createTable_forDb2WithModifiedKeyColumnSize_shouldExecuteCreateTable
779779
+ "\"ordinal_position\" INTEGER NOT NULL,"
780780
+ "PRIMARY KEY (\"full_table_name\", \"column_name\"))",
781781
"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, PRIMARY KEY (\"c3\",\"c1\",\"c4\"))",
782-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
783-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
782+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
783+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
784784
"INSERT INTO \""
785785
+ tableMetadataSchemaName
786786
+ "\".\"metadata\" VALUES ('my_ns.foo_table','c3','BOOLEAN','PARTITION',NULL,false,1)",
@@ -1144,8 +1144,8 @@ public void createTable_WithClusteringOrderForDb2_shouldExecuteCreateTableStatem
11441144
+ "PRIMARY KEY (\"full_table_name\", \"column_name\"))",
11451145
"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\"))",
11461146
"CREATE UNIQUE INDEX \"my_ns.foo_table_clustering_order_idx\" ON \"my_ns\".\"foo_table\" (\"c3\" ASC,\"c1\" DESC,\"c4\" ASC)",
1147-
"CREATE INDEX \"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
1148-
"CREATE INDEX \"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
1147+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c4\" ON \"my_ns\".\"foo_table\" (\"c4\")",
1148+
"CREATE INDEX \"my_ns\".\"index_my_ns_foo_table_c1\" ON \"my_ns\".\"foo_table\" (\"c1\")",
11491149
"INSERT INTO \""
11501150
+ tableMetadataSchemaName
11511151
+ "\".\"metadata\" VALUES ('my_ns.foo_table','c3','BOOLEAN','PARTITION',NULL,false,1)",
@@ -1898,7 +1898,7 @@ public void createIndex_ForColumnTypeWithoutRequiredAlterationForDb2_ShouldCreat
18981898
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
18991899
+ tableMetadataSchemaName
19001900
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
1901-
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
1901+
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
19021902
"UPDATE \""
19031903
+ tableMetadataSchemaName
19041904
+ "\".\"metadata\" SET \"indexed\"=true WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2010,7 +2010,7 @@ private void createIndex_ForColumnTypeWithoutRequiredAlterationForX_ShouldCreate
20102010
+ tableMetadataSchemaName
20112011
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
20122012
"ALTER TABLE \"my_ns\".\"my_tbl\" ALTER COLUMN \"my_column\" SET DATA TYPE VARCHAR(128)",
2013-
"CREATE INDEX \"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
2013+
"CREATE INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\" ON \"my_ns\".\"my_tbl\" (\"my_column\")",
20142014
"UPDATE \""
20152015
+ tableMetadataSchemaName
20162016
+ "\".\"metadata\" SET \"indexed\"=true WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2141,7 +2141,7 @@ public void dropIndex_forColumnTypeWithoutRequiredAlterationForDb2_ShouldDropInd
21412141
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
21422142
+ tableMetadataSchemaName
21432143
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
2144-
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
2144+
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
21452145
"UPDATE \""
21462146
+ tableMetadataSchemaName
21472147
+ "\".\"metadata\" SET \"indexed\"=false WHERE \"full_table_name\"='my_ns.my_tbl' AND \"column_name\"='my_column'");
@@ -2247,7 +2247,7 @@ public void dropIndex_forColumnTypeWithRequiredAlterationForDb2_ShouldDropIndexP
22472247
"SELECT \"column_name\",\"data_type\",\"key_type\",\"clustering_order\",\"indexed\" FROM \""
22482248
+ tableMetadataSchemaName
22492249
+ "\".\"metadata\" WHERE \"full_table_name\"=? ORDER BY \"ordinal_position\" ASC",
2250-
"DROP INDEX \"index_my_ns_my_tbl_my_column\"",
2250+
"DROP INDEX \"my_ns\".\"index_my_ns_my_tbl_my_column\"",
22512251
"ALTER TABLE \"my_ns\".\"my_tbl\" ALTER COLUMN \"my_column\" SET DATA TYPE VARCHAR(32672)",
22522252
"UPDATE \""
22532253
+ tableMetadataSchemaName

0 commit comments

Comments
 (0)