This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new 12fec2755 test(c/driver/postgresql): use statement_rows_affected_ddl
flag and remove test_rows_affected override (#3842)
12fec2755 is described below
commit 12fec2755207fad7175bd36ab85d8b15aadc765f
Author: Mandukhai Alimaa <[email protected]>
AuthorDate: Mon Dec 29 23:47:15 2025 -0600
test(c/driver/postgresql): use statement_rows_affected_ddl flag and remove
test_rows_affected override (#3842)
Use statement_rows_affected_ddl flag and remove unneccessary override
---
c/driver/postgresql/validation/pyproject.toml | 2 +-
c/driver/postgresql/validation/tests/postgresql.py | 1 +
.../postgresql/validation/tests/test_statement.py | 72 +---------------------
c/driver/postgresql/validation/uv.lock | 4 +-
4 files changed, 5 insertions(+), 74 deletions(-)
diff --git a/c/driver/postgresql/validation/pyproject.toml
b/c/driver/postgresql/validation/pyproject.toml
index d99213131..8c3c55839 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 571a84672..eab178f42 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 594c7c270..5420e62f9 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 2e708c887..31e113ea0 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"