Skip to content

Commit 7b405f9

Browse files
chore: refactor sql queries to be fully qualified (#270)
1 parent cd83101 commit 7b405f9

File tree

8 files changed

+62
-61
lines changed

8 files changed

+62
-61
lines changed

.test/test/pg_database_dialects_test.go

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ func TestPgDatabaseDialect_GetDefaultPort(t *testing.T) {
5252

5353
func TestPgDatabaseDialect_GetHostAlias(t *testing.T) {
5454
testDatabaseDialect := &driver_infrastructure.PgDatabaseDialect{}
55-
expectedHostAliasQuery := "SELECT CONCAT(inet_server_addr(), ':', inet_server_port())"
55+
expectedHostAliasQuery := "SELECT pg_catalog.CONCAT(pg_catalog.inet_server_addr(), ':', pg_catalog.inet_server_port())"
5656
assert.Equal(t, expectedHostAliasQuery, testDatabaseDialect.GetHostAliasQuery())
5757
}
5858

5959
func TestPgDatabaseDialect_GetServerVersion(t *testing.T) {
6060
testDatabaseDialect := &driver_infrastructure.PgDatabaseDialect{}
61-
expectedGetServerVersionQuery := "SELECT 'version', VERSION()"
61+
expectedGetServerVersionQuery := "SELECT 'version', pg_catalog.VERSION()"
6262
assert.Equal(t, expectedGetServerVersionQuery, testDatabaseDialect.GetServerVersionQuery())
6363
}
6464

@@ -79,7 +79,7 @@ func TestPgDatabaseDialect(t *testing.T) {
7979
QueryerContext: mockQueryer,
8080
}
8181

82-
expectedIsDialectQuery := "SELECT 1 FROM pg_proc LIMIT 1"
82+
expectedIsDialectQuery := "SELECT 1 FROM pg_catalog.pg_proc LIMIT 1"
8383

8484
// IsDialect - true
8585
mockQueryer.EXPECT().
@@ -138,13 +138,13 @@ func TestRdsPgDatabaseDialect_GetDefaultPort(t *testing.T) {
138138

139139
func TestRdsPgDatabaseDialect_GetHostAliasQuery(t *testing.T) {
140140
testDatabaseDialect := &driver_infrastructure.RdsPgDatabaseDialect{}
141-
expectedHostAliasQuery := "SELECT CONCAT(inet_server_addr(), ':', inet_server_port())"
141+
expectedHostAliasQuery := "SELECT pg_catalog.CONCAT(pg_catalog.inet_server_addr(), ':', pg_catalog.inet_server_port())"
142142

143143
assert.Equal(t, expectedHostAliasQuery, testDatabaseDialect.GetHostAliasQuery())
144144
}
145145
func TestRdsPgDatabaseDialect_GetServerVersion(t *testing.T) {
146146
testDatabaseDialect := &driver_infrastructure.RdsPgDatabaseDialect{}
147-
expectedGetServerVersionQuery := "SELECT 'version', VERSION()"
147+
expectedGetServerVersionQuery := "SELECT 'version', pg_catalog.VERSION()"
148148

149149
assert.Equal(t, expectedGetServerVersionQuery, testDatabaseDialect.GetServerVersionQuery())
150150
}
@@ -164,10 +164,9 @@ func TestRdsPgDatabaseDialect_IsDialect(t *testing.T) {
164164
Conn: mockConn,
165165
QueryerContext: mockQueryer,
166166
}
167-
expectedPgIsDialectQuery := "SELECT 1 FROM pg_proc LIMIT 1"
167+
expectedPgIsDialectQuery := "SELECT 1 FROM pg_catalog.pg_proc LIMIT 1"
168168
expectedRdsPgIsDialectQuery := "SELECT (setting LIKE '%rds_tools%') AS rds_tools, (setting LIKE '%aurora_stat_utils%') " +
169-
"AS aurora_stat_utils FROM pg_settings " +
170-
"WHERE name='rds.extensions'"
169+
"AS aurora_stat_utils FROM pg_catalog.pg_settings WHERE name OPERATOR(pg_catalog.=) 'rds.extensions'"
171170

172171
// Call to GetFirstRowFromQuery within embedded structure PgDialect.IsDialect.
173172
mockQueryer.EXPECT().
@@ -263,14 +262,14 @@ func TestAuroraRdsPgDatabaseDialect_GetDefaultPort(t *testing.T) {
263262

264263
func TestAuroraRdsPgDatabaseDialect_GetHostAliasQuery(t *testing.T) {
265264
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
266-
expectedHostAliasQuery := "SELECT CONCAT(inet_server_addr(), ':', inet_server_port())"
265+
expectedHostAliasQuery := "SELECT pg_catalog.CONCAT(pg_catalog.inet_server_addr(), ':', pg_catalog.inet_server_port())"
267266

268267
assert.Equal(t, expectedHostAliasQuery, testDatabaseDialect.GetHostAliasQuery())
269268
}
270269

271270
func TestAuroraRdsPgDatabaseDialect_GetServerVersion(t *testing.T) {
272271
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
273-
expectedGetServerVersionQuery := "SELECT 'version', VERSION()"
272+
expectedGetServerVersionQuery := "SELECT 'version', pg_catalog.VERSION()"
274273

275274
assert.Equal(t, expectedGetServerVersionQuery, testDatabaseDialect.GetServerVersionQuery())
276275
}
@@ -290,11 +289,11 @@ func TestAuroraRdsPgDatabaseDialect_IsDialect(t *testing.T) {
290289
Conn: mockConn,
291290
QueryerContext: mockQueryer,
292291
}
293-
expectedPgIsDialectQuery := "SELECT 1 FROM pg_proc LIMIT 1"
292+
expectedPgIsDialectQuery := "SELECT 1 FROM pg_catalog.pg_proc LIMIT 1"
294293
expectedRdsPgIsDialectQuery := "SELECT (setting LIKE '%aurora_stat_utils%') " +
295-
"AS aurora_stat_utils FROM pg_settings WHERE name='rds.extensions'"
294+
"AS aurora_stat_utils FROM pg_catalog.pg_settings WHERE name OPERATOR(pg_catalog.=) 'rds.extensions'"
296295

297-
expectedTopologyQuery := "SELECT 1 FROM aurora_replica_status() LIMIT 1"
296+
expectedTopologyQuery := "SELECT 1 FROM pg_catalog.aurora_replica_status() LIMIT 1"
298297

299298
// Call to GetFirstRowFromQuery within embedded structure PgDialect.IsDialect.
300299
mockQueryer.EXPECT().
@@ -451,7 +450,7 @@ func TestAuroraRdsPgDatabaseDialect_GetHostListProvider(t *testing.T) {
451450
}
452451

453452
func TestAuroraRdsPgDatabaseDialect_GetHostRole(t *testing.T) {
454-
isReaderQuery := "SELECT pg_is_in_recovery()"
453+
isReaderQuery := "SELECT pg_catalog.pg_is_in_recovery()"
455454
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
456455
ctrl := gomock.NewController(t)
457456
defer ctrl.Finish()
@@ -508,12 +507,12 @@ func TestAuroraRdsPgDatabaseDialect_GetHostRole(t *testing.T) {
508507
}
509508

510509
func TestAuroraRdsPgDatabaseDialect_GetTopology(t *testing.T) {
511-
topologyQuery := "SELECT server_id, CASE WHEN SESSION_ID = 'MASTER_SESSION_ID' THEN TRUE ELSE FALSE END AS is_writer, " +
510+
topologyQuery := "SELECT server_id, CASE WHEN SESSION_ID OPERATOR(pg_catalog.=) 'MASTER_SESSION_ID' THEN TRUE ELSE FALSE END AS is_writer, " +
512511
"CPU, COALESCE(REPLICA_LAG_IN_MSEC, 0) AS lag, LAST_UPDATE_TIMESTAMP " +
513-
"FROM aurora_replica_status() " +
512+
"FROM pg_catalog.aurora_replica_status() " +
514513
// Filter out hosts that haven't been updated in the last 5 minutes.
515-
"WHERE EXTRACT(EPOCH FROM(NOW() - LAST_UPDATE_TIMESTAMP)) <= 300 OR SESSION_ID = 'MASTER_SESSION_ID' " +
516-
"OR LAST_UPDATE_TIMESTAMP IS NULL"
514+
"WHERE EXTRACT(EPOCH FROM(pg_catalog.NOW() OPERATOR(pg_catalog.-) LAST_UPDATE_TIMESTAMP)) OPERATOR(pg_catalog.<=) 300 OR SESSION_ID OPERATOR(pg_catalog.=) " +
515+
"'MASTER_SESSION_ID' OR LAST_UPDATE_TIMESTAMP IS NULL"
517516
ctrl := gomock.NewController(t)
518517
defer ctrl.Finish()
519518

@@ -595,7 +594,7 @@ func TestAuroraRdsPgDatabaseDialect_GetTopology(t *testing.T) {
595594

596595
func TestAuroraRdsPgDatabaseDialect_GetHostName(t *testing.T) {
597596
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
598-
hostIdQuery := "SELECT aurora_db_instance_identifier()"
597+
hostIdQuery := "SELECT pg_catalog.aurora_db_instance_identifier()"
599598
instanceId := "myinstance"
600599
ctrl := gomock.NewController(t)
601600
defer ctrl.Finish()
@@ -639,8 +638,8 @@ func TestAuroraRdsPgDatabaseDialect_GetHostName(t *testing.T) {
639638

640639
func TestAuroraRdsPgDatabaseDialect_GetWriterHostName(t *testing.T) {
641640
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
642-
hostIdQuery := "SELECT server_id FROM aurora_replica_status() " +
643-
"WHERE SESSION_ID = 'MASTER_SESSION_ID' AND SERVER_ID = aurora_db_instance_identifier()"
641+
hostIdQuery := "SELECT server_id FROM pg_catalog.aurora_replica_status() " +
642+
"WHERE SESSION_ID OPERATOR(pg_catalog.=) 'MASTER_SESSION_ID' AND SERVER_ID OPERATOR(pg_catalog.=) pg_catalog.aurora_db_instance_identifier()"
644643
instanceId := "myinstance"
645644
ctrl := gomock.NewController(t)
646645
defer ctrl.Finish()
@@ -688,7 +687,7 @@ func TestAuroraRdsPgDatabaseDialect_GetWriterHostName(t *testing.T) {
688687

689688
func TestAuroraRdsPgDatabaseDialect_GetLimitlessRouterEndpointQuery(t *testing.T) {
690689
testDatabaseDialect := &driver_infrastructure.AuroraPgDatabaseDialect{}
691-
expectedLimitlessQuery := "select router_endpoint, load from aurora_limitless_router_endpoints()"
690+
expectedLimitlessQuery := "select router_endpoint, load from pg_catalog.aurora_limitless_router_endpoints()"
692691
assert.Equal(t, expectedLimitlessQuery, testDatabaseDialect.GetLimitlessRouterEndpointQuery())
693692
}
694693

@@ -708,14 +707,14 @@ func TestRdsMultiAzDbClusterPgDialect_GetDefaultPort(t *testing.T) {
708707

709708
func TestRdsMultiAzDbClusterPgDialect_GetHostAliasQuery(t *testing.T) {
710709
testDatabaseDialect := &driver_infrastructure.RdsMultiAzClusterPgDatabaseDialect{}
711-
expectedHostAliasQuery := "SELECT CONCAT(inet_server_addr(), ':', inet_server_port())"
710+
expectedHostAliasQuery := "SELECT pg_catalog.CONCAT(pg_catalog.inet_server_addr(), ':', pg_catalog.inet_server_port())"
712711

713712
assert.Equal(t, expectedHostAliasQuery, testDatabaseDialect.GetHostAliasQuery())
714713
}
715714

716715
func TestRdsMultiAzDbClusterPgDialect_GetServerVersion(t *testing.T) {
717716
testDatabaseDialect := &driver_infrastructure.RdsMultiAzClusterPgDatabaseDialect{}
718-
expectedGetServerVersionQuery := "SELECT 'version', VERSION()"
717+
expectedGetServerVersionQuery := "SELECT 'version', pg_catalog.VERSION()"
719718

720719
assert.Equal(t, expectedGetServerVersionQuery, testDatabaseDialect.GetServerVersionQuery())
721720
}
@@ -747,7 +746,7 @@ func TestRdsMultiAzDbClusterPgDialect_GetHostListProvider(t *testing.T) {
747746
}
748747

749748
func TestRdsMultiAzDbClusterPgDialect_GetHostRole(t *testing.T) {
750-
isReaderQuery := "SELECT pg_is_in_recovery()"
749+
isReaderQuery := "SELECT pg_catalog.pg_is_in_recovery()"
751750
testDatabaseDialect := &driver_infrastructure.RdsMultiAzClusterPgDatabaseDialect{}
752751
ctrl := gomock.NewController(t)
753752
defer ctrl.Finish()
@@ -850,8 +849,8 @@ func TestRdsMultiAzDbClusterPgDialect_GetHostName(t *testing.T) {
850849
func TestRdsMultiAzDbClusterPgDialect_GetWriterHostName(t *testing.T) {
851850
testDatabaseDialect := &driver_infrastructure.RdsMultiAzClusterPgDatabaseDialect{}
852851
hostIdQuery := "SELECT endpoint FROM rds_tools.show_topology('aws-advanced-go-wrapper') as topology " +
853-
"WHERE topology.id = (SELECT multi_az_db_cluster_source_dbi_resource_id FROM rds_tools.multi_az_db_cluster_source_dbi_resource_id()) " +
854-
"AND topology.id = (SELECT dbi_resource_id FROM rds_tools.dbi_resource_id())"
852+
"WHERE topology.id OPERATOR(pg_catalog.=) (SELECT multi_az_db_cluster_source_dbi_resource_id FROM rds_tools.multi_az_db_cluster_source_dbi_resource_id()) " +
853+
"AND topology.id OPERATOR(pg_catalog.=) (SELECT dbi_resource_id FROM rds_tools.dbi_resource_id())"
855854

856855
instanceId := "myinstance"
857856
instanceEndpoint := instanceId + ".com"
@@ -1242,7 +1241,7 @@ func TestAuroraPgDatabaseDialect_GetBlueGreenStatus(t *testing.T) {
12421241
QueryerContext: mockQueryer,
12431242
}
12441243

1245-
expectedQuery := "SELECT version, endpoint, port, role, status FROM get_blue_green_fast_switchover_metadata(" +
1244+
expectedQuery := "SELECT version, endpoint, port, role, status FROM pg_catalog.get_blue_green_fast_switchover_metadata(" +
12461245
"'aws_advanced_go_wrapper-" + driver_info.AWS_ADVANCED_GO_WRAPPER_VERSION + "')"
12471246

12481247
mockQueryer.EXPECT().
@@ -1305,7 +1304,7 @@ func TestAuroraPgDatabaseDialect_GetBlueGreenStatus_QueryError(t *testing.T) {
13051304
QueryerContext: mockQueryer,
13061305
}
13071306

1308-
expectedQuery := "SELECT version, endpoint, port, role, status FROM get_blue_green_fast_switchover_metadata(" +
1307+
expectedQuery := "SELECT version, endpoint, port, role, status FROM pg_catalog.get_blue_green_fast_switchover_metadata(" +
13091308
"'aws_advanced_go_wrapper-" + driver_info.AWS_ADVANCED_GO_WRAPPER_VERSION + "')"
13101309

13111310
mockQueryer.EXPECT().
@@ -1344,7 +1343,7 @@ func TestAuroraPgDatabaseDialect_IsBlueGreenStatusAvailable(t *testing.T) {
13441343
QueryerContext: mockQueryer,
13451344
}
13461345

1347-
expectedQuery := "SELECT 'get_blue_green_fast_switchover_metadata'::regproc"
1346+
expectedQuery := "SELECT 'pg_catalog.get_blue_green_fast_switchover_metadata'::regproc"
13481347

13491348
// Test when function exists (returns true)
13501349
mockQueryer.EXPECT().
@@ -1353,7 +1352,7 @@ func TestAuroraPgDatabaseDialect_IsBlueGreenStatusAvailable(t *testing.T) {
13531352

13541353
mockRows.EXPECT().Columns().Return([]string{"regproc"})
13551354
mockRows.EXPECT().Next(gomock.Any()).DoAndReturn(func(dest []driver.Value) error {
1356-
dest[0] = "get_blue_green_fast_switchover_metadata"
1355+
dest[0] = "pg_catalog.get_blue_green_fast_switchover_metadata"
13571356
return nil
13581357
})
13591358
mockRows.EXPECT().Close().Return(nil)
@@ -1513,7 +1512,7 @@ func TestPgGetBlueGreenStatus_InvalidRowData(t *testing.T) {
15131512
QueryerContext: mockQueryer,
15141513
}
15151514

1516-
expectedQuery := "SELECT version, endpoint, port, role, status FROM get_blue_green_fast_switchover_metadata(" +
1515+
expectedQuery := "SELECT version, endpoint, port, role, status FROM pg_catalog.get_blue_green_fast_switchover_metadata(" +
15171516
"'aws_advanced_go_wrapper-" + driver_info.AWS_ADVANCED_GO_WRAPPER_VERSION + "')"
15181517

15191518
mockQueryer.EXPECT().

.test/test_framework/container/test_utils/aurora_test_utility.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,8 @@ func (a AuroraTestUtility) GetRdsInstanceIds(engine DatabaseEngine, deployment D
494494
case MYSQL:
495495
retrieveTopologySQL = "SELECT SERVER_ID, SESSION_ID FROM information_schema.replica_host_status ORDER BY IF(SESSION_ID = 'MASTER_SESSION_ID', 0, 1)"
496496
case PG:
497-
retrieveTopologySQL = "SELECT SERVER_ID, SESSION_ID FROM aurora_replica_status() ORDER BY CASE WHEN SESSION_ID = 'MASTER_SESSION_ID' THEN 0 ELSE 1 END"
497+
retrieveTopologySQL = "SELECT SERVER_ID, SESSION_ID FROM pg_catalog.aurora_replica_status() ORDER BY CASE WHEN SESSION_ID OPERATOR(pg_catalog.=) " +
498+
"'MASTER_SESSION_ID' THEN 0 ELSE 1 END"
498499
default:
499500
return nil, fmt.Errorf("unsupported database engine: %v", engine)
500501
}

.test/test_framework/container/test_utils/driver_helper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func NewWrapperDriver(engine DatabaseEngine) driver.Driver {
5555
func GetSleepSql(engine DatabaseEngine, seconds int) string {
5656
switch engine {
5757
case PG:
58-
return fmt.Sprintf("select pg_sleep(%d)", seconds)
58+
return fmt.Sprintf("select pg_catalog.pg_sleep(%d)", seconds)
5959
case MYSQL:
6060
return fmt.Sprintf("select sleep(%d)", seconds)
6161
}
@@ -67,7 +67,7 @@ func GetInstanceIdSql(engine DatabaseEngine, deployment DatabaseEngineDeployment
6767
case AURORA, AURORA_LIMITLESS:
6868
switch engine {
6969
case PG:
70-
return "SELECT aurora_db_instance_identifier() as id", nil
70+
return "SELECT pg_catalog.aurora_db_instance_identifier() as id", nil
7171
case MYSQL:
7272
return "SELECT @@aurora_server_id as id", nil
7373
default:

.test/test_framework/container/tests/bg_deployment_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const (
5252
includeWriterAndReaderOnly = false
5353
testClusterId = "test-cluster-id"
5454
mysqlBgStatusQuery = "SELECT role, status FROM mysql.rds_topology"
55-
pgAuroraBgStatusQuery = "SELECT role, status FROM get_blue_green_fast_switchover_metadata('aws_advanced_go_wrapper')"
55+
pgAuroraBgStatusQuery = "SELECT role, status FROM pg_catalog.get_blue_green_fast_switchover_metadata('aws_advanced_go_wrapper')"
5656
pgRdsBgStatusQuery = "SELECT role, status FROM rds_tools.show_topology('aws_advanced_go_wrapper-1.0.0')"
5757
)
5858

@@ -728,7 +728,7 @@ func (suite *BlueGreenTestSuite) wrapperBlueExecutingConnectivityMonitor(hostId,
728728
case test_utils.MYSQL:
729729
sleepQuery = "SELECT SLEEP(5)"
730730
case test_utils.PG:
731-
sleepQuery = "SELECT pg_sleep(5)"
731+
sleepQuery = "SELECT pg_catalog.pg_sleep(5)"
732732
default:
733733
suite.addUnhandledException(fmt.Errorf("unsupported database engine: %v", environment.Info().Request.Engine))
734734
return

0 commit comments

Comments
 (0)