migrating to typescript
This commit is contained in:
parent
9bc81ef6b3
commit
8ffb9444a5
|
@ -43,7 +43,7 @@ export default async function (conversion: Conversion): Promise<Conversion> {
|
|||
|
||||
if (result.error) {
|
||||
// No need to continue if no 'bytea' or 'geometry' columns found.
|
||||
dbAccess.releasePgClient(<PoolClient>result.client);
|
||||
dbAccess.releaseDbClient(<PoolClient>result.client);
|
||||
return conversion;
|
||||
}
|
||||
|
||||
|
|
|
@ -112,17 +112,25 @@ export default class DBAccess {
|
|||
}
|
||||
|
||||
/**
|
||||
* Releases MySQL connection back to the pool.
|
||||
* Releases MySQL or PostgreSQL connection back to appropriate pool.
|
||||
*/
|
||||
public releaseMysqlClient(connection: PoolConnection): void {
|
||||
connection.release();
|
||||
public releaseDbClient(dbClient?: PoolConnection|PoolClient): void {
|
||||
try {
|
||||
(<PoolConnection|PoolClient>dbClient).release();
|
||||
dbClient = undefined;
|
||||
} catch (error) {
|
||||
generateError(this._conversion, `\t--[DBAccess::releaseDbClient] ${ error }`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Releases PostgreSQL connection back to the pool.
|
||||
* Checks if there are no more queries to be sent using current client.
|
||||
* In such case the client should be released.
|
||||
*/
|
||||
public releasePgClient(pgClient: PoolClient): void {
|
||||
pgClient.release();
|
||||
private _releaseDbClientIfNecessary(client: PoolConnection|PoolClient, shouldHoldClient: boolean): void {
|
||||
if (!shouldHoldClient) {
|
||||
this.releaseDbClient(client);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -168,16 +176,9 @@ export default class DBAccess {
|
|||
): Promise<DBAccessQueryResult> {
|
||||
return new Promise<DBAccessQueryResult>((resolve, reject) => {
|
||||
(<PoolConnection>client).query(sql, (error: MysqlError|null, data: any) => {
|
||||
// Checks if there are more queries to be sent using current client.
|
||||
if (!shouldReturnClient) {
|
||||
// No more queries to be sent using current client.
|
||||
// The client must be released.
|
||||
this.releaseMysqlClient((<PoolConnection>client));
|
||||
client = undefined;
|
||||
}
|
||||
this._releaseDbClientIfNecessary((<PoolConnection>client), shouldReturnClient);
|
||||
|
||||
if (error) {
|
||||
// An error occurred during DB querying.
|
||||
generateError(this._conversion, `\t--[${ caller }] ${ error }`, sql);
|
||||
return processExitOnError ? process.exit() : reject({ client: client, data: undefined, error: error });
|
||||
}
|
||||
|
@ -200,18 +201,10 @@ export default class DBAccess {
|
|||
): Promise<DBAccessQueryResult> {
|
||||
try {
|
||||
const data: any = Array.isArray(bindings) ? await (<PoolClient>client).query(sql, bindings) : await (<PoolClient>client).query(sql);
|
||||
|
||||
// Checks if there are more queries to be sent using current client.
|
||||
if (!shouldReturnClient) {
|
||||
// No more queries to be sent using current client.
|
||||
// The client must be released.
|
||||
this.releasePgClient((<PoolClient>client));
|
||||
client = undefined;
|
||||
}
|
||||
|
||||
this._releaseDbClientIfNecessary((<PoolClient>client), shouldReturnClient); // Sets the client undefined.
|
||||
return { client: client, data: data, error: undefined };
|
||||
} catch (error) {
|
||||
// An error occurred during DB querying.
|
||||
this._releaseDbClientIfNecessary((<PoolClient>client), shouldReturnClient); // Sets the client undefined.
|
||||
generateError(this._conversion, `\t--[${ caller }] ${ error }`, sql);
|
||||
return processExitOnError ? process.exit() : { client: client, data: undefined, error: error };
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ async function deleteChunk(conv: Conversion, dataPoolId: number, client: PoolCli
|
|||
} catch (error) {
|
||||
generateError(conv, `\t--[DataLoader::deleteChunk] ${ error }`, sql);
|
||||
} finally {
|
||||
dbAccess.releasePgClient(client);
|
||||
dbAccess.releaseDbClient(client);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ export async function createSequence(conversion: Conversion, tableName: string):
|
|||
const createSequenceResult: DBAccessQueryResult = await dbAccess.query(logTitle, sqlCreateSequence, DBVendors.PG, false, true);
|
||||
|
||||
if (createSequenceResult.error) {
|
||||
dbAccess.releasePgClient(<PoolClient>createSequenceResult.client);
|
||||
dbAccess.releaseDbClient(<PoolClient>createSequenceResult.client);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ export async function createSequence(conversion: Conversion, tableName: string):
|
|||
const setNextValResult: DBAccessQueryResult = await dbAccess.query(logTitle, sqlSetNextVal, DBVendors.PG, false, true, createSequenceResult.client);
|
||||
|
||||
if (setNextValResult.error) {
|
||||
dbAccess.releasePgClient(<PoolClient>setNextValResult.client);
|
||||
dbAccess.releaseDbClient(<PoolClient>setNextValResult.client);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ export async function createSequence(conversion: Conversion, tableName: string):
|
|||
const setSequenceOwnerResult: DBAccessQueryResult = await dbAccess.query(logTitle, sqlSetSequenceOwner, DBVendors.PG, false, true, setNextValResult.client);
|
||||
|
||||
if (setSequenceOwnerResult.error) {
|
||||
dbAccess.releasePgClient(<PoolClient>setSequenceOwnerResult.client);
|
||||
dbAccess.releaseDbClient(<PoolClient>setSequenceOwnerResult.client);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue