diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 704d289d35..7ce5921b04 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.40.0" + ".": "3.40.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index e4d0febf42..9fed5da30c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://pypi.org/project/google-cloud-spanner/#history +## [3.40.1](https://github.com/googleapis/python-spanner/compare/v3.40.0...v3.40.1) (2023-08-17) + + +### Bug Fixes + +* Fix to reload table when checking if table exists ([#1002](https://github.com/googleapis/python-spanner/issues/1002)) ([53bda62](https://github.com/googleapis/python-spanner/commit/53bda62c4996d622b7a11e860841c16e4097bded)) + ## [3.40.0](https://github.com/googleapis/python-spanner/compare/v3.39.0...v3.40.0) (2023-08-04) diff --git a/google/cloud/spanner_admin_database_v1/gapic_version.py b/google/cloud/spanner_admin_database_v1/gapic_version.py index 948adf5442..4f879f0e40 100644 --- a/google/cloud/spanner_admin_database_v1/gapic_version.py +++ b/google/cloud/spanner_admin_database_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "3.40.0" # {x-release-please-version} +__version__ = "3.40.1" # {x-release-please-version} diff --git a/google/cloud/spanner_admin_instance_v1/gapic_version.py b/google/cloud/spanner_admin_instance_v1/gapic_version.py index 948adf5442..4f879f0e40 100644 --- a/google/cloud/spanner_admin_instance_v1/gapic_version.py +++ b/google/cloud/spanner_admin_instance_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "3.40.0" # {x-release-please-version} +__version__ = "3.40.1" # {x-release-please-version} diff --git a/google/cloud/spanner_v1/gapic_version.py b/google/cloud/spanner_v1/gapic_version.py index 948adf5442..4f879f0e40 100644 --- a/google/cloud/spanner_v1/gapic_version.py +++ b/google/cloud/spanner_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "3.40.0" # {x-release-please-version} +__version__ = "3.40.1" # {x-release-please-version} diff --git a/google/cloud/spanner_v1/table.py b/google/cloud/spanner_v1/table.py index 0f25c41756..38ca798db8 100644 --- a/google/cloud/spanner_v1/table.py +++ b/google/cloud/spanner_v1/table.py @@ -77,6 +77,11 @@ def _exists(self, snapshot): :rtype: bool :returns: True if the table exists, else false. """ + if ( + self._database.database_dialect + == DatabaseDialect.DATABASE_DIALECT_UNSPECIFIED + ): + self._database.reload() if self._database.database_dialect == DatabaseDialect.POSTGRESQL: results = snapshot.execute_sql( _EXISTS_TEMPLATE.format("WHERE TABLE_NAME = $1"), diff --git a/samples/generated_samples/snippet_metadata_google.spanner.admin.database.v1.json b/samples/generated_samples/snippet_metadata_google.spanner.admin.database.v1.json index 2dba67c96a..0ede9fccff 100644 --- a/samples/generated_samples/snippet_metadata_google.spanner.admin.database.v1.json +++ b/samples/generated_samples/snippet_metadata_google.spanner.admin.database.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-spanner-admin-database", - "version": "3.40.0" + "version": "3.40.1" }, "snippets": [ { diff --git a/samples/generated_samples/snippet_metadata_google.spanner.admin.instance.v1.json b/samples/generated_samples/snippet_metadata_google.spanner.admin.instance.v1.json index 666a74a2d0..76f704e8fb 100644 --- a/samples/generated_samples/snippet_metadata_google.spanner.admin.instance.v1.json +++ b/samples/generated_samples/snippet_metadata_google.spanner.admin.instance.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-spanner-admin-instance", - "version": "3.40.0" + "version": "3.40.1" }, "snippets": [ { diff --git a/samples/generated_samples/snippet_metadata_google.spanner.v1.json b/samples/generated_samples/snippet_metadata_google.spanner.v1.json index 0a774835ca..a645b19356 100644 --- a/samples/generated_samples/snippet_metadata_google.spanner.v1.json +++ b/samples/generated_samples/snippet_metadata_google.spanner.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-spanner", - "version": "3.40.0" + "version": "3.40.1" }, "snippets": [ { diff --git a/samples/samples/batch_sample.py b/samples/samples/batch_sample.py index d11dd5f95a..69913ac4b3 100644 --- a/samples/samples/batch_sample.py +++ b/samples/samples/batch_sample.py @@ -50,7 +50,7 @@ def run_batch_query(instance_id, database_id): # A Partition object is serializable and can be used from a different process. # DataBoost option is an optional parameter which can also be used for partition read # and query to execute the request via spanner independent compute resources. - data_boost_enabled=False, + data_boost_enabled=True, ) # Create a pool of workers for the tasks diff --git a/samples/samples/requirements.txt b/samples/samples/requirements.txt index ea28854fbb..4ca3a436c6 100644 --- a/samples/samples/requirements.txt +++ b/samples/samples/requirements.txt @@ -1,2 +1,2 @@ -google-cloud-spanner==3.33.0 +google-cloud-spanner==3.35.1 futures==3.4.0; python_version < "3" diff --git a/tests/system/test_session_api.py b/tests/system/test_session_api.py index 3fd30958b7..7d58324b04 100644 --- a/tests/system/test_session_api.py +++ b/tests/system/test_session_api.py @@ -1890,7 +1890,7 @@ def test_partition_read_w_index(sessions_database, not_emulator): columns, spanner_v1.KeySet(all_=True), index="name", - data_boost_enabled=False, + data_boost_enabled=True, ) for batch in batches: p_results_iter = batch_txn.process(batch) @@ -2507,7 +2507,7 @@ def test_partition_query(sessions_database, not_emulator): all_data_rows = set(_row_data(row_count)) union = set() batch_txn = sessions_database.batch_snapshot(read_timestamp=committed) - for batch in batch_txn.generate_query_batches(sql, data_boost_enabled=False): + for batch in batch_txn.generate_query_batches(sql, data_boost_enabled=True): p_results_iter = batch_txn.process(batch) # Lists aren't hashable so the results need to be converted rows = [tuple(result) for result in p_results_iter] diff --git a/tests/system/test_table_api.py b/tests/system/test_table_api.py index 1385fb953c..7d4da2b363 100644 --- a/tests/system/test_table_api.py +++ b/tests/system/test_table_api.py @@ -29,6 +29,16 @@ def test_table_exists_not_found(shared_database): assert not table.exists() +def test_table_exists_reload_database_dialect( + shared_instance, shared_database, not_emulator +): + database = shared_instance.database(shared_database.database_id) + assert database.database_dialect == DatabaseDialect.DATABASE_DIALECT_UNSPECIFIED + table = database.table("all_types") + assert table.exists() + assert database.database_dialect != DatabaseDialect.DATABASE_DIALECT_UNSPECIFIED + + def test_db_list_tables(shared_database): tables = shared_database.list_tables() table_ids = set(table.table_id for table in tables)