Compare commits

...

1 Commits

Author SHA1 Message Date
Jan Prochazka
bcede22c36 oracle tests WIP 2024-12-10 15:35:47 +01:00
6 changed files with 38 additions and 11 deletions

View File

@@ -70,3 +70,9 @@ services:
# - cockroachdb
# restart: on-failure
oracle:
image: container-registry.oracle.com/database/express:21.3.0-xe
environment:
ORACLE_PWD: Pwd2020Db
ports:
- 15006:1521

View File

@@ -400,17 +400,35 @@ end;$$`,
dbSnapshotBySeconds: true,
skipChangeColumn: true,
},
{
label: 'Oracle',
connection: {
engine: 'oracle@dbgate-plugin-oracle',
password: 'Pwd2020Db',
user: 'system',
server: 'oracle',
port: 1521,
serviceName: 'xe',
},
local: {
server: 'localhost',
port: 15006,
},
skipOnCI: true,
dbSnapshotBySeconds: true,
},
];
const filterLocal = [
// filter local testing
'MySQL',
'-MySQL',
'-MariaDB',
'-PostgreSQL',
'-SQL Server',
'-SQLite',
'-CockroachDB',
'-ClickHouse',
'Oracle',
];
const enginesPostgre = engines.filter(x => x.label == 'PostgreSQL');

View File

@@ -32,12 +32,14 @@ async function connect(engine, database) {
return conn;
} else {
const conn = await driver.connect(connection);
await driver.query(conn, `CREATE DATABASE ${database}`);
const dmp = driver.createDumper();
dmp.createDatabase(database);
await driver.query(conn, dmp.s);
await driver.close(conn);
const res = await driver.connect({
...connection,
database,
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
});
return res;
}
@@ -55,12 +57,14 @@ async function prepareConnection(engine, database) {
};
} else {
const conn = await driver.connect(connection);
await driver.query(conn, `CREATE DATABASE ${database}`);
const dmp = driver.createDumper();
dmp.createDatabase(database);
await driver.query(conn, dmp.s);
await driver.close(conn);
return {
...connection,
database,
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
isPreparedOnly: true,
};
}

View File

@@ -51,6 +51,7 @@ export interface SqlDialect {
dropReferencesWhenDropTable?: boolean;
requireFromDual?: boolean;
userDatabaseNamePrefix?: string; // c## in Oracle
predefinedDataTypes: string[];

View File

@@ -1,13 +1,10 @@
module.exports = `
select avv.*,
ora_hash("create_sql") as "hash_code"
select avv.*
from (select
view_name as "pure_name",
-- owner as "schema_name",
-- SUBSTR(text_vc, 1, 3900) AS "create_sql"
text as "create_sql"
from all_views av
where owner = '$owner' and text is not null
where owner = 'C##test' and text is not null
) avv
where 'views:' || "pure_name" =OBJECT_ID_CONDITION
where 'views:' || "pure_name" is not null
`;

View File

@@ -20,6 +20,7 @@ const dialect = {
quoteIdentifier(s) {
return '"' + s + '"';
},
userDatabaseNamePrefix: 'c##',
createColumn: true,
dropColumn: true,