Skip to content

Commit e978e66

Browse files
committed
Merge branch 'DBTOOLS-1792_fix_docker_test_ms_table_type' into 'master'
DBTOOLS-1792 fixed docker test ms_table_type See merge request codekeeper/pgcodekeeper-core!103
2 parents 20c4634 + 2e75c3b commit e978e66

File tree

6 files changed

+59
-18
lines changed

6 files changed

+59
-18
lines changed

src/test/java/org/pgcodekeeper/core/it/jdbc/base/JdbcLoaderTest.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,15 @@ public abstract class JdbcLoaderTest {
3939

4040
protected void jdbcLoaderTest(String dumpFileName, String ignoreListName, String url, AbstractJdbcConnector connector,
4141
CoreSettings settings, SupportedPgVersion version, Class<?> clazz)
42+
throws PgCodekeeperException, SQLException, IOException, URISyntaxException, InterruptedException{
43+
settings.setAddTransaction(true);
44+
jdbcLoaderTest(dumpFileName, ignoreListName, url, connector, settings, version, clazz, false);
45+
}
46+
47+
protected void jdbcLoaderTest(String dumpFileName, String ignoreListName, String url, AbstractJdbcConnector connector,
48+
CoreSettings settings, SupportedPgVersion version, Class<?> clazz, boolean isMemoryOptimized)
4249
throws PgCodekeeperException, SQLException, IOException, URISyntaxException, InterruptedException {
4350
settings.setEnableFunctionBodiesDependencies(true);
44-
settings.setAddTransaction(true);
4551
var df = new DatabaseFactory(settings);
4652
List<String> ignoreLists = new ArrayList<>() ;
4753
ignoreLists.add(TestUtils.getFilePath(ignoreListName, clazz));
@@ -50,13 +56,19 @@ protected void jdbcLoaderTest(String dumpFileName, String ignoreListName, String
5056
if (null != version) {
5157
dumpDb.setVersion(version);
5258
}
59+
var script = Files.readString(TestUtils.getPathToResource(dumpFileName, clazz));
5360

5461
ScriptParser parser = new ScriptParser(dumpFileName,
5562
Files.readString(TestUtils.getPathToResource(dumpFileName, clazz)), settings);
5663

5764
var startConfDb = df.loadFromJdbc(url);
5865
try {
59-
new JdbcRunner(new NullMonitor()).runBatches(connector, parser.batch(), null);
66+
var runner = new JdbcRunner(new NullMonitor());
67+
if (isMemoryOptimized) {
68+
runner.run(connector, script);
69+
} else {
70+
runner.runBatches(connector, parser.batch(), null);
71+
}
6072
var remoteDb = df.loadFromJdbc(url);
6173
var actual = PgCodeKeeperApi.diff(settings, dumpDb, remoteDb, ignoreLists);
6274
Assertions.assertEquals("", actual, "Incorrect run dump %s on Database".formatted(dumpFileName));

src/test/java/org/pgcodekeeper/core/it/jdbc/ms/MsJdbcLoaderTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,15 @@ void msJdbcLoaderTest(String fileName) throws PgCodekeeperException, IOException
5050
jdbcLoaderTest(fileName + FILES_POSTFIX.SQL, "ms.pgcodekeeperignore",
5151
TestContainer.MS_URL, new MsJdbcConnector(TestContainer.MS_URL), settings, null, getClass());
5252
}
53+
54+
@ParameterizedTest
55+
@CsvSource({
56+
"ms_table_type",
57+
})
58+
void msJdbcLoaderWithMemomyOptimizedTest(String fileName) throws PgCodekeeperException, IOException, InterruptedException, SQLException, URISyntaxException {
59+
var settings = new CoreSettings();
60+
settings.setDbType(DatabaseType.MS);
61+
jdbcLoaderTest(fileName + "_memory_optimized" + FILES_POSTFIX.SQL, "ms.pgcodekeeperignore",
62+
TestContainer.MS_URL_MEMORY_OPTIMIZED, new MsJdbcConnector(TestContainer.MS_URL_MEMORY_OPTIMIZED), settings, null, getClass(), true);
63+
}
5364
}

src/test/java/org/pgcodekeeper/core/loader/TestContainer.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public final class TestContainer {
3131

3232
public static final String PG_URL;
3333
public static final String MS_URL;
34+
public static final String MS_URL_MEMORY_OPTIMIZED;
3435
public static final String CH_URL;
3536

3637
public static final Integer PG_PORT;
@@ -55,7 +56,8 @@ public final class TestContainer {
5556
CH_PORT = CH_DB.getFirstMappedPort();
5657

5758
PG_URL = "jdbc:postgresql://localhost:" + PG_PORT + "/test" + PG_CH_URL_POSTFIX;
58-
MS_URL = "jdbc:sqlserver://localhost:" + MS_PORT + ";databaseName=test_db;user=sa;password=A_Str0ng_Required_Password";
59+
MS_URL = buildMsConnectionUrl("test_db");
60+
MS_URL_MEMORY_OPTIMIZED = buildMsConnectionUrl("test_db_memory_optimized");
5961
CH_URL = "jdbc:clickhouse://localhost:" + CH_PORT + "/default" + PG_CH_URL_POSTFIX;
6062

6163
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
@@ -70,6 +72,12 @@ private static String getInitScriptPath(String fileName) {
7072
return TestContainer.class.getPackage().getName().replace('.', '/') + '/' + fileName;
7173
}
7274

75+
private static String buildMsConnectionUrl(String databaseName) {
76+
return "jdbc:sqlserver://localhost:" + MS_PORT +
77+
";databaseName=" + databaseName +
78+
";user=sa;password=A_Str0ng_Required_Password";
79+
}
80+
7381
private TestContainer() {
7482
}
7583
}

src/test/resources/org/pgcodekeeper/core/it/jdbc/ms/ms_table_type.sql

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
1-
--CREATE TYPE [dbo].[type1] AS TABLE(
2-
--[c1] [int] NOT NULL,
3-
--[c2] [int] NOT NULL,
4-
--INDEX [q] NONCLUSTERED HASH (
5-
-- [c1]
6-
--) WITH ( BUCKET_COUNT = 2),
7-
--PRIMARY KEY NONCLUSTERED HASH
8-
--(
9-
-- [c2]
10-
--) WITH ( BUCKET_COUNT = 2),
11-
--CHECK ((c1 > 0))
12-
--) WITH (MEMORY_OPTIMIZED = ON)
13-
--GO
14-
151
CREATE TYPE [dbo].[type2] AS TABLE (
162
[col1] [int] NOT NULL,
173
UNIQUE CLUSTERED ([col1] DESC))
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CREATE TYPE [dbo].[type1] AS TABLE(
2+
[c1] [int] NOT NULL,
3+
[c2] [int] NOT NULL,
4+
INDEX [q] NONCLUSTERED HASH
5+
(
6+
[c1]
7+
) WITH ( BUCKET_COUNT = 2),
8+
PRIMARY KEY NONCLUSTERED HASH ([c2]) WITH (BUCKET_COUNT = 2),
9+
CHECK (([c1]>(0)))
10+
)
11+
WITH ( MEMORY_OPTIMIZED = ON )

src/test/resources/org/pgcodekeeper/core/loader/init_ms_db.sql

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,17 @@ CREATE DATABASE test_db;
22

33
ALTER DATABASE test_db
44
SET CHANGE_TRACKING = ON
5-
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON);
5+
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON);
6+
7+
CREATE DATABASE test_db_memory_optimized;
8+
9+
ALTER DATABASE test_db_memory_optimized
10+
ADD FILEGROUP memory_optimized_fg
11+
CONTAINS MEMORY_OPTIMIZED_DATA;
12+
13+
ALTER DATABASE test_db_memory_optimized
14+
ADD FILE (
15+
NAME = memory_optimized_container,
16+
FILENAME = '/var/opt/mssql/data/test_db_mopt'
17+
)
18+
TO FILEGROUP memory_optimized_fg;

0 commit comments

Comments
 (0)