unique db name prop

This commit is contained in:
Jan Prochazka
2024-09-19 18:38:30 +02:00
parent 2181eada53
commit 1de163af44
8 changed files with 9 additions and 9 deletions

View File

@@ -63,7 +63,7 @@ describe('Schema tests', () => {
const schemaConnDef = { const schemaConnDef = {
...extractConnection(engine), ...extractConnection(engine),
database: `${conn.__database_name__}::myschema`, database: `${conn.__dbgate_database_name__}::myschema`,
}; };
const schemaConn = await driver.connect(schemaConnDef); const schemaConn = await driver.connect(schemaConnDef);

View File

@@ -24,7 +24,7 @@ class Analyser extends DatabaseAnalyser {
createQuery(resFileName, typeFields, replacements = {}) { createQuery(resFileName, typeFields, replacements = {}) {
let res = sql[resFileName]; let res = sql[resFileName];
res = res.replace('#DATABASE#', this.pool.__database_name__); res = res.replace('#DATABASE#', this.pool.__dbgate_database_name__);
return super.createQuery(res, typeFields, replacements); return super.createQuery(res, typeFields, replacements);
} }
@@ -83,7 +83,7 @@ class Analyser extends DatabaseAnalyser {
const { pureName } = this.singleObjectFilter; const { pureName } = this.singleObjectFilter;
const resId = await this.driver.query( const resId = await this.driver.query(
this.pool, this.pool,
`SELECT uuid as id FROM system.tables WHERE database = '${this.pool.__database_name__}' AND name='${pureName}'` `SELECT uuid as id FROM system.tables WHERE database = '${this.pool.__dbgate_database_name__}' AND name='${pureName}'`
); );
this.singleObjectId = resId.rows[0]?.id; this.singleObjectId = resId.rows[0]?.id;
} }

View File

@@ -19,7 +19,7 @@ const driver = {
database, database,
}); });
client.__database_name__ = database; client.__dbgate_database_name__ = database;
return client; return client;
}, },
// called for retrieve data (eg. browse in data grid) and for update database // called for retrieve data (eg. browse in data grid) and for update database

View File

@@ -85,7 +85,7 @@ const driver = {
: await tediousConnect(conn); : await tediousConnect(conn);
if (result) { if (result) {
result.__database_name__ = conn.database; result.__dbgate_database_name__ = conn.database;
} }
return result; return result;

View File

@@ -68,7 +68,7 @@ class Analyser extends DatabaseAnalyser {
createQuery(resFileName, typeFields, replacements = {}) { createQuery(resFileName, typeFields, replacements = {}) {
let res = sql[resFileName]; let res = sql[resFileName];
res = res.replace('#DATABASE#', this.pool.__database_name__); res = res.replace('#DATABASE#', this.pool.__dbgate_database_name__);
return super.createQuery(res, typeFields, replacements); return super.createQuery(res, typeFields, replacements);
} }

View File

@@ -49,7 +49,7 @@ const drivers = driverBases.map(driverBase => ({
}; };
const connection = mysql2.createConnection(options); const connection = mysql2.createConnection(options);
connection.__database_name__ = database; connection.__dbgate_database_name__ = database;
if (isReadOnly) { if (isReadOnly) {
await this.query(connection, 'SET SESSION TRANSACTION READ ONLY'); await this.query(connection, 'SET SESSION TRANSACTION READ ONLY');
} }

View File

@@ -57,7 +57,7 @@ class Analyser extends DatabaseAnalyser {
createQuery(resFileName, typeFields, replacements = {}) { createQuery(resFileName, typeFields, replacements = {}) {
const query = super.createQuery(sql[resFileName], typeFields, replacements); const query = super.createQuery(sql[resFileName], typeFields, replacements);
const dbname = this.pool.__database_name__; const dbname = this.pool.__dbgate_database_name__;
const schemaCondition = isCompositeDbName(dbname) const schemaCondition = isCompositeDbName(dbname)
? `= '${splitCompositeDbName(dbname).schema}' ` ? `= '${splitCompositeDbName(dbname).schema}' `
: ' IS NOT NULL '; : ' IS NOT NULL ';

View File

@@ -90,7 +90,7 @@ const drivers = driverBases.map(driverBase => ({
await this.query(client, 'SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY'); await this.query(client, 'SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY');
} }
client.__database_name__ = database; client.__dbgate_database_name__ = database;
return client; return client;
}, },
async close(pool) { async close(pool) {