From 4e097285c81c5aaabd11a85159f96213cc42a920 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Mon, 5 Sep 2022 11:18:40 +0400 Subject: [PATCH 1/3] fix: don't introspect internal UNIQUE constraints --- google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py index 012e6d61..bd57daab 100644 --- a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py +++ b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py @@ -873,7 +873,12 @@ def get_unique_constraints(self, connection, table_name, schema=None, **kw): FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu ON ccu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME -WHERE tc.TABLE_NAME="{table_name}" AND tc.CONSTRAINT_TYPE = "UNIQUE" +LEFT JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS rc + on tc.CONSTRAINT_NAME = rc.CONSTRAINT_NAME +WHERE + tc.TABLE_NAME="{table_name}" + AND tc.CONSTRAINT_TYPE = "UNIQUE" + AND rc.CONSTRAINT_NAME IS NOT NULL """.format( table_name=table_name ) From fc5b7af1a6355a690131598379b8c90d2e3c9863 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Tue, 13 Sep 2022 12:04:27 +0400 Subject: [PATCH 2/3] Switch region for testing. --- create_test_database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create_test_database.py b/create_test_database.py index 0e5a4bf2..e811bce2 100644 --- a/create_test_database.py +++ b/create_test_database.py @@ -70,7 +70,7 @@ def create_test_instance(): configs = list(CLIENT.list_instance_configs()) if not USE_EMULATOR: # Filter out non "us" locations - configs = [config for config in configs if "-us-" in config.name] + configs = [config for config in configs if "regional-us-west2" in config.name] instance_config = configs[0].name create_time = str(int(time.time())) From a0cdc92bb9bed14cdc3bb88b1d27a9f6a0190d81 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Mon, 19 Sep 2022 09:37:58 +0400 Subject: [PATCH 3/3] change region for tests --- create_test_database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create_test_database.py b/create_test_database.py index e811bce2..d5d5978b 100644 --- a/create_test_database.py +++ b/create_test_database.py @@ -70,7 +70,7 @@ def create_test_instance(): configs = list(CLIENT.list_instance_configs()) if not USE_EMULATOR: # Filter out non "us" locations - configs = [config for config in configs if "regional-us-west2" in config.name] + configs = [config for config in configs if "europe-north1" in config.name] instance_config = configs[0].name create_time = str(int(time.time()))