20
20
import java .util .Map ;
21
21
import java .util .Properties ;
22
22
import org .junit .jupiter .api .*;
23
+ import org .junit .jupiter .api .condition .DisabledInNativeImage ;
24
+ import org .junit .jupiter .params .ParameterizedTest ;
25
+ import org .junit .jupiter .params .provider .ValueSource ;
23
26
24
27
/** These tests are designed to stress Statements on memory databases. */
25
28
public class DBMetaDataTest {
@@ -417,18 +420,13 @@ public void getColumns() throws SQLException {
417
420
assertThat (rs .next ()).isFalse ();
418
421
419
422
rs = meta .getColumns (null , null , "%" , "%" );
420
- // SYSTEM TABLE "sqlite_schema"
421
- assertThat (rs .next ()).isTrue ();
422
- assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("sqlite_schema" );
423
- assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("type" );
424
- assertThat (rs .next ()).isTrue ();
425
- assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("name" );
426
- assertThat (rs .next ()).isTrue ();
427
- assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("tbl_name" );
428
- assertThat (rs .next ()).isTrue ();
429
- assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("rootpage" );
430
- assertThat (rs .next ()).isTrue ();
431
- assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("sql" );
423
+
424
+ // SYSTEM TABLE "sqlite_schema" for main
425
+ assertSystemSchema (rs );
426
+
427
+ // SYSTEM TABLE "sqlite_schema" for temp
428
+ assertSystemSchema (rs );
429
+
432
430
// TABLE "test"
433
431
assertThat (rs .next ()).isTrue ();
434
432
assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("test" );
@@ -2041,8 +2039,9 @@ public void getColumnsForAttachedDatabaseTables() throws SQLException {
2041
2039
assertThat (rs .next ()).isFalse ();
2042
2040
rs .close ();
2043
2041
2044
-
2045
2042
rs = meta .getColumns (null , "db2" , "%" , "%" );
2043
+ assertSystemSchema (rs );
2044
+
2046
2045
// TABLE "test2"
2047
2046
assertThat (rs .next ()).isTrue ();
2048
2047
assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("test2" );
@@ -2077,14 +2076,18 @@ public void getColumnsForAttachedDatabaseTables() throws SQLException {
2077
2076
2078
2077
2079
2078
rs = meta .getColumns (null , null , "%" , "%" );
2080
- assertReadsAllColumns (rs );
2079
+ assertReadsAllColumns (rs , 3 );
2081
2080
rs = meta .getColumns (null , "%" , "%" , "%" );
2082
- assertReadsAllColumns (rs );
2081
+ assertReadsAllColumns (rs , 3 );
2083
2082
rs = meta .getColumns (null , "\\ %" , "%" , "%" );
2084
2083
assertThat (rs .next ()).isFalse ();
2085
2084
}
2086
2085
2087
- private void assertReadsAllColumns (ResultSet rs ) throws SQLException {
2086
+ private void assertReadsAllColumns (ResultSet rs , int schemasNumber ) throws SQLException {
2087
+ for (int i = 0 ; i < schemasNumber ; i ++) {
2088
+ // When full pattern used we acquire system table for each individual schema
2089
+ assertSystemSchema (rs );
2090
+ }
2088
2091
// TABLE "test"
2089
2092
assertThat (rs .next ()).isTrue ();
2090
2093
assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("test" );
@@ -2097,6 +2100,8 @@ private void assertReadsAllColumns(ResultSet rs) throws SQLException {
2097
2100
assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("intvalue" );
2098
2101
assertThat (rs .next ()).isTrue ();
2099
2102
assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("realvalue" );
2103
+ assertThat (rs .next ()).isTrue ();
2104
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("charvalue" );
2100
2105
// TABLE "test2"
2101
2106
assertThat (rs .next ()).isTrue ();
2102
2107
assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("test2" );
@@ -2121,6 +2126,8 @@ private void assertReadsAllColumns(ResultSet rs) throws SQLException {
2121
2126
assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("intvalue" );
2122
2127
assertThat (rs .next ()).isTrue ();
2123
2128
assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("realvalue" );
2129
+ assertThat (rs .next ()).isTrue ();
2130
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("charvalue" );
2124
2131
// VIEW "testView2"
2125
2132
assertThat (rs .next ()).isTrue ();
2126
2133
assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("testView2" );
@@ -2241,4 +2248,18 @@ public void exit() throws SQLException {
2241
2248
testDB .deleteOnExit ();
2242
2249
}
2243
2250
}
2251
+
2252
+ private void assertSystemSchema (ResultSet rs ) throws SQLException {
2253
+ assertThat (rs .next ()).isTrue ();
2254
+ assertThat (rs .getString ("TABLE_NAME" )).isEqualTo ("sqlite_schema" );
2255
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("type" );
2256
+ assertThat (rs .next ()).isTrue ();
2257
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("name" );
2258
+ assertThat (rs .next ()).isTrue ();
2259
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("tbl_name" );
2260
+ assertThat (rs .next ()).isTrue ();
2261
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("rootpage" );
2262
+ assertThat (rs .next ()).isTrue ();
2263
+ assertThat (rs .getString ("COLUMN_NAME" )).isEqualTo ("sql" );
2264
+ }
2244
2265
}
0 commit comments