diff --git a/c/driver/postgresql/validation/pyproject.toml b/c/driver/postgresql/validation/pyproject.toml index d992131319..8c3c55839c 100644 --- a/c/driver/postgresql/validation/pyproject.toml +++ b/c/driver/postgresql/validation/pyproject.toml @@ -24,4 +24,4 @@ dependencies = [ ] [tool.uv.sources] -adbc-drivers-validation = { git = "https://github.com/adbc-drivers/validation", rev = "32a647736227f3b020776dd493153aa6eb3bff19" } +adbc-drivers-validation = { git = "https://github.com/adbc-drivers/validation", rev = "551046350f8225c5e115ecefec27f86f71e3a4aa" } diff --git a/c/driver/postgresql/validation/tests/postgresql.py b/c/driver/postgresql/validation/tests/postgresql.py index 571a846726..eab178f42e 100644 --- a/c/driver/postgresql/validation/tests/postgresql.py +++ b/c/driver/postgresql/validation/tests/postgresql.py @@ -41,6 +41,7 @@ class PostgreSQLQuirks(model.DriverQuirks): statement_execute_schema=True, statement_get_parameter_schema=True, statement_rows_affected=True, + statement_rows_affected_ddl=False, current_catalog="postgres", current_schema="public", supported_xdbc_fields=[], diff --git a/c/driver/postgresql/validation/tests/test_statement.py b/c/driver/postgresql/validation/tests/test_statement.py index 594c7c2701..5420e62f98 100644 --- a/c/driver/postgresql/validation/tests/test_statement.py +++ b/c/driver/postgresql/validation/tests/test_statement.py @@ -15,83 +15,13 @@ # specific language governing permissions and limitations # under the License. -from adbc_drivers_validation import model -from adbc_drivers_validation.tests.statement import TestStatement as BaseTestStatement +from adbc_drivers_validation.tests.statement import TestStatement # noqa: F401 from adbc_drivers_validation.tests.statement import ( generate_tests, ) -import adbc_driver_manager - from . import postgresql -class TestStatement(BaseTestStatement): - """PostgreSQL-specific statement tests with overrides.""" - - # TODO(https://github.com/adbc-drivers/validation/issues/140): - # Remove this override once validation framework supports separate - # statement_ddl_rows_affected flag. PostgreSQL returns -1 for DDL - # but exact counts for DML, which doesn't fit the current binary flag. - def test_rows_affected( - self, - driver: model.DriverQuirks, - conn: adbc_driver_manager.dbapi.Connection, - ) -> None: - """Override to accept -1 for CREATE TABLE""" - table_name = "test_rows_affected" - with conn.cursor() as cursor: - cursor.adbc_statement.set_sql_query( - driver.drop_table(table_name="test_rows_affected") - ) - try: - cursor.adbc_statement.execute_update() - except adbc_driver_manager.Error as e: - if not driver.is_table_not_found(table_name=table_name, error=e): - raise - - cursor.adbc_statement.set_sql_query(f"CREATE TABLE {table_name} (id INT)") - rows_affected = cursor.adbc_statement.execute_update() - - # PostgreSQL returns -1 for CREATE TABLE - assert rows_affected == -1 - - cursor.adbc_statement.set_sql_query( - f"INSERT INTO {table_name} (id) VALUES (1)" - ) - rows_affected = cursor.adbc_statement.execute_update() - if driver.features.statement_rows_affected: - assert rows_affected == 1 - else: - assert rows_affected == -1 - - cursor.adbc_statement.set_sql_query( - f"UPDATE {table_name} SET id = id + 1 WHERE id = 1" - ) - rows_affected = cursor.adbc_statement.execute_update() - if driver.features.statement_rows_affected: - assert rows_affected == 1 - else: - assert rows_affected == -1 - - cursor.adbc_statement.set_sql_query( - f"DELETE FROM {table_name} WHERE id = 2" - ) - rows_affected = cursor.adbc_statement.execute_update() - if driver.features.statement_rows_affected: - assert rows_affected == 1 - else: - assert rows_affected == -1 - - cursor.adbc_statement.set_sql_query( - driver.drop_table(table_name="test_rows_affected") - ) - try: - cursor.adbc_statement.execute_update() - except adbc_driver_manager.Error as e: - if not driver.is_table_not_found(table_name=table_name, error=e): - raise - - def pytest_generate_tests(metafunc) -> None: return generate_tests(postgresql.QUIRKS, metafunc) diff --git a/c/driver/postgresql/validation/uv.lock b/c/driver/postgresql/validation/uv.lock index 2e708c8875..31e113ea09 100644 --- a/c/driver/postgresql/validation/uv.lock +++ b/c/driver/postgresql/validation/uv.lock @@ -34,7 +34,7 @@ wheels = [ [[package]] name = "adbc-drivers-validation" version = "0.1" -source = { git = "https://github.com/adbc-drivers/validation#32a647736227f3b020776dd493153aa6eb3bff19" } +source = { git = "https://github.com/adbc-drivers/validation?rev=551046350f8225c5e115ecefec27f86f71e3a4aa#551046350f8225c5e115ecefec27f86f71e3a4aa" } dependencies = [ { name = "adbc-driver-manager" }, { name = "bidict" }, @@ -185,7 +185,7 @@ dependencies = [ ] [package.metadata] -requires-dist = [{ name = "adbc-drivers-validation", git = "https://github.com/adbc-drivers/validation" }] +requires-dist = [{ name = "adbc-drivers-validation", git = "https://github.com/adbc-drivers/validation?rev=551046350f8225c5e115ecefec27f86f71e3a4aa" }] [[package]] name = "pyarrow"