@@ -31,12 +31,12 @@ import { WrapperProperties } from "../../../common/lib/wrapper_property";
3131import { PluginService } from "../../../common/lib/plugin_service" ;
3232import { MonitoringRdsHostListProvider } from "../../../common/lib/host_list_provider/monitoring/monitoring_host_list_provider" ;
3333
34- export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements TopologyAwareDatabaseDialect {
34+ export class RdsMultiAZClusterPgDatabaseDialect extends PgDatabaseDialect implements TopologyAwareDatabaseDialect {
3535 constructor ( ) {
3636 super ( ) ;
3737 }
3838 private static readonly VERSION = process . env . npm_package_version ;
39- private static readonly TOPOLOGY_QUERY : string = `SELECT id, endpoint, port FROM rds_tools.show_topology('aws_advanced_nodejs_wrapper-"${ RdsMultiAZPgDatabaseDialect . VERSION } "')` ;
39+ private static readonly TOPOLOGY_QUERY : string = `SELECT id, endpoint, port FROM rds_tools.show_topology('aws_advanced_nodejs_wrapper-"${ RdsMultiAZClusterPgDatabaseDialect . VERSION } "')` ;
4040 private static readonly WRITER_HOST_FUNC_EXIST_QUERY : string =
4141 "SELECT 1 AS tmp FROM information_schema.routines WHERE routine_schema='rds_tools' AND routine_name='multi_az_db_cluster_source_dbi_resource_id'" ;
4242 private static readonly FETCH_WRITER_HOST_QUERY : string =
@@ -48,13 +48,18 @@ export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements To
4848 private static readonly IS_READER_QUERY_COLUMN_NAME : string = "is_reader" ;
4949
5050 async isDialect ( targetClient : ClientWrapper ) : Promise < boolean > {
51- const res = await targetClient . query ( RdsMultiAZPgDatabaseDialect . WRITER_HOST_FUNC_EXIST_QUERY ) . catch ( ( ) => false ) ;
51+ const res = await targetClient . query ( RdsMultiAZClusterPgDatabaseDialect . WRITER_HOST_FUNC_EXIST_QUERY ) . catch ( ( ) => false ) ;
5252
5353 if ( ! res ) {
5454 return false ;
5555 }
5656
57- return ! ! ( await targetClient . query ( RdsMultiAZPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ) . catch ( ( ) => false ) ) ;
57+ try {
58+ const res = await targetClient . query ( RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ) ;
59+ return res . rows [ 0 ] [ RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY_COLUMN_NAME ] != null ;
60+ } catch ( e : any ) {
61+ return false ;
62+ }
5863 }
5964
6065 getHostListProvider ( props : Map < string , any > , originalUrl : string , hostListProviderService : HostListProviderService ) : HostListProvider {
@@ -68,14 +73,14 @@ export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements To
6873 try {
6974 let writerHostId : string = await this . executeTopologyRelatedQuery (
7075 targetClient ,
71- RdsMultiAZPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ,
72- RdsMultiAZPgDatabaseDialect . FETCH_WRITER_HOST_QUERY_COLUMN_NAME
76+ RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ,
77+ RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY_COLUMN_NAME
7378 ) ;
7479 if ( ! writerHostId ) {
7580 writerHostId = await this . identifyConnection ( targetClient ) ;
7681 }
7782
78- const res = await targetClient . query ( RdsMultiAZPgDatabaseDialect . TOPOLOGY_QUERY ) ;
83+ const res = await targetClient . query ( RdsMultiAZClusterPgDatabaseDialect . TOPOLOGY_QUERY ) ;
7984 const rows : any [ ] = res . rows ;
8085 return this . processTopologyQueryResults ( hostListProvider , writerHostId , rows ) ;
8186 } catch ( error : any ) {
@@ -133,8 +138,8 @@ export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements To
133138 async getHostRole ( client : ClientWrapper ) : Promise < HostRole > {
134139 return ( await this . executeTopologyRelatedQuery (
135140 client ,
136- RdsMultiAZPgDatabaseDialect . IS_READER_QUERY ,
137- RdsMultiAZPgDatabaseDialect . IS_READER_QUERY_COLUMN_NAME
141+ RdsMultiAZClusterPgDatabaseDialect . IS_READER_QUERY ,
142+ RdsMultiAZClusterPgDatabaseDialect . IS_READER_QUERY_COLUMN_NAME
138143 ) ) === false
139144 ? HostRole . WRITER
140145 : HostRole . READER ;
@@ -144,8 +149,8 @@ export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements To
144149 try {
145150 const writerHostId : string = await this . executeTopologyRelatedQuery (
146151 targetClient ,
147- RdsMultiAZPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ,
148- RdsMultiAZPgDatabaseDialect . FETCH_WRITER_HOST_QUERY_COLUMN_NAME
152+ RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY ,
153+ RdsMultiAZClusterPgDatabaseDialect . FETCH_WRITER_HOST_QUERY_COLUMN_NAME
149154 ) ;
150155 const currentConnection = await this . identifyConnection ( targetClient ) ;
151156
@@ -162,8 +167,8 @@ export class RdsMultiAZPgDatabaseDialect extends PgDatabaseDialect implements To
162167 async identifyConnection ( client : ClientWrapper ) : Promise < string > {
163168 return await this . executeTopologyRelatedQuery (
164169 client ,
165- RdsMultiAZPgDatabaseDialect . HOST_ID_QUERY ,
166- RdsMultiAZPgDatabaseDialect . HOST_ID_QUERY_COLUMN_NAME
170+ RdsMultiAZClusterPgDatabaseDialect . HOST_ID_QUERY ,
171+ RdsMultiAZClusterPgDatabaseDialect . HOST_ID_QUERY_COLUMN_NAME
167172 ) ;
168173 }
169174
0 commit comments