Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
300b87c
feat(pgq): gate quantified path and comma-separated patterns as unsup…
vistart Jul 7, 2026
23be803
fix: use correct fixture names 'postgres_backend' / 'async_postgres_b…
vistart Jul 7, 2026
f146d54
feat: sync bridge files with testsuite rename and add 4 async relatio…
vistart Jul 7, 2026
3d69c84
feat: add bridge files for derived_field, interface feature tests and…
vistart Jul 9, 2026
d5936eb
perf(backend): remove redundant fetchall() in get_server_version()
vistart Jul 12, 2026
bae710e
refactor(postgres): merge composite_pk/derived_field, switch to expre…
vistart Jul 16, 2026
96f7aaa
fix(postgres): move bridge files to subdirectories, add missing conft…
vistart Jul 16, 2026
57aa76f
fix(postgres): fix PROVIDER_KEY_ASYNC and method names in relation co…
vistart Jul 16, 2026
4fda619
fix(postgres): remove non-existent _ensure_user_post_comment_async_sc…
vistart Jul 17, 2026
eccdc3b
fix(postgres): extend cleanup_after_test table lists to ensure no cro…
vistart Jul 17, 2026
24e0b3a
fix(postgres): add DROP TABLE to relation/connection/benchmark cleanu…
vistart Jul 17, 2026
80a507d
refactor(test): add missing _async bridge files (61), fix naming
vistart Jul 18, 2026
d326af5
fix(test): remove conflicting test_derived_field bridges from basic/f…
vistart Jul 19, 2026
f5fe767
fix(test): restore __init__.py under tests/benchmark/packages
vistart Jul 19, 2026
be5daf3
fix(test): resolve cursor pollution, DataType errors, and import-file…
vistart Jul 19, 2026
326cfaa
fix(ci): update benchmark test file names to match testsuite (remove …
vistart Jul 19, 2026
7dcf56e
fix(test): replace FunctionCall('+') with infix BinaryArithmeticExpre…
vistart Jul 19, 2026
22c59b9
fix(test): add GROUP BY to fund_trace_aggregation, fix pre-existing a…
vistart Jul 19, 2026
f75910a
fix(test): track created tables per provider to eliminate xdist race …
vistart Jul 19, 2026
3a9fdb2
feat(postgres): set supports_json_arrow_operators=True
vistart Jul 24, 2026
86648e6
feat(postgres): add ON CONFLICT capability switches
vistart Jul 31, 2026
06f5e4b
test(postgres): add DROP TABLE CASCADE/RESTRICT rendering test
vistart Jul 31, 2026
e0976b4
fix(postgres): add missing supports_on_conflict_clause and supports_m…
vistart Aug 1, 2026
f14064e
fix(postgres): remove sync savepoint test import, only async tests apply
vistart Aug 1, 2026
b05eb68
fix(postgres): pass scenario name to type_adapter_fixtures provider t…
vistart Aug 1, 2026
dc9bb04
fix(postgres): import all testsuite basic fixtures in conftest while …
vistart Aug 1, 2026
f12f97c
fix(postgres): revert conftest override, restore import * to avoid br…
vistart Aug 1, 2026
67f2b2f
fix(postgres): pass scenario name to sync type_adapter_fixtures to av…
vistart Aug 1, 2026
2806f8d
fix(postgres): remove test bridge files accidentally added in protoco…
vistart Aug 1, 2026
fc8b6a6
fix(postgres): remove shadowing fixture import from type_adapter brid…
vistart Aug 1, 2026
5a13ac2
test(postgres): add unit tests for data type formatting and parsing
vistart Aug 1, 2026
191a365
chore: add changelog fragment for PR #49
vistart Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,13 @@ jobs:
--rootdir=. \
--confcutdir=. \
"$TESTSUITE_DIR/benchmark/crud/test_delete_async.py" \
"$TESTSUITE_DIR/benchmark/crud/test_delete_sync.py" \
"$TESTSUITE_DIR/benchmark/crud/test_delete.py" \
"$TESTSUITE_DIR/benchmark/crud/test_insert_async.py" \
"$TESTSUITE_DIR/benchmark/crud/test_insert_sync.py" \
"$TESTSUITE_DIR/benchmark/crud/test_insert.py" \
"$TESTSUITE_DIR/benchmark/crud/test_query_async.py" \
"$TESTSUITE_DIR/benchmark/crud/test_query_sync.py" \
"$TESTSUITE_DIR/benchmark/crud/test_query.py" \
"$TESTSUITE_DIR/benchmark/crud/test_update_async.py" \
"$TESTSUITE_DIR/benchmark/crud/test_update_sync.py" \
"$TESTSUITE_DIR/benchmark/crud/test_update.py" \
"$TESTSUITE_DIR/benchmark/query" \
"$TESTSUITE_DIR/benchmark/transaction" \
"$TESTSUITE_DIR/benchmark/mixin" \
Expand Down
1 change: 1 addition & 0 deletions changelog.d/49.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add PGQ enhancements: fulltext search capability, ON CONFLICT switches, JSON arrow operators, cursor result-set pollution fix, and PostgreSQL 19 compatibility gate for quantified path and comma-separated patterns
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,6 @@ async def get_server_version(self) -> Optional[Tuple[int, int, int]]:
cursor = await self._get_cursor()
await cursor.execute("SELECT version()")
version_row = await cursor.fetchone()
# Defensively consume remaining results to prevent cursor.description pollution
remaining = await cursor.fetchall()
if not version_row or not version_row[0]:
self.log(logging.WARNING, "PostgreSQL version query returned no result")
return None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -347,8 +347,6 @@ def get_server_version(self) -> Optional[Tuple[int, int, int]]:
cursor = self._get_cursor()
cursor.execute("SELECT version()")
result = cursor.fetchone()
# Defensively consume remaining results to prevent cursor.description pollution
cursor.fetchall()
if not result or not result[0]:
self.log(logging.WARNING, "PostgreSQL version query returned no result")
return None
Expand Down
4 changes: 4 additions & 0 deletions src/rhosocial/activerecord/backend/impl/postgres/dialect.py
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,10 @@ def supports_for_update(self) -> bool:
"""
return True

def supports_json_arrow_operators(self) -> bool:
"""PostgreSQL supports -> and ->> operators for JSON/JSONB access."""
return True

def supports_lock_strength(self, strength) -> bool:
"""
Check if a specific lock strength is supported.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,14 @@
'min_version': '9',
'max_version': '18',
},
'pgq/recursive_cte_graph_traversal.py': {
'title': 'Recursive CTE Graph Traversal (PGQ Quantified Path Alternative)',
'dialect_protocols': [],
'priority': 5,
'min_version': '9',
'max_version': '18',
'note': 'Uses recursive CTE + UNION ALL to simulate PGQ quantified path patterns; works on all PG versions',
},
'transaction/basic.py': {
'title': 'Transaction Control',
'dialect_protocols': [],
Expand Down
Loading
Loading