Skip to content

Add optional JSON queries and parameters for all three databases - #2

Merged
DoctorRemoteControl merged 5 commits into
mainfrom
public/db-json
Nov 1, 2026
Merged

DoctorRemoteControl merged 5 commits into
mainfrom
public/db-json

Conversation

@DoctorRemoteControl

Copy link
Copy Markdown
Owner

Database clients can now query rows as Jackson JSON nodes and bind JSON values through prepared statements using their existing PostgreSQL, SQLite, or DuckDB transaction connection.

Adds the optional de.drremote.db:json bundle with JsonQueries and immutable JsonValue snapshots, plus the separate de.drremote-db-json Karaf feature. Existing database modules remain unchanged and require no Jackson dependencies. The caller retains connection and transaction ownership; statements and result sets close on success and failure.

The adapter preserves JDBC numeric values, distinguishes SQL NULL from JSON null when binding, recognizes native JSON/JSONB, and supports explicit parsing of text columns. Coverage includes mixed SQLite runtime types, temporal/nested SQL arrays, binary values, invalid JSON trees, and resource cleanup. English documentation and a buildable OSGi JSON settings client show migrations, readiness, reads, and updates. CI builds both examples.

Validation:

  • All 81 tests pass with no skips on Java 17 and 21, including a dedicated PostgreSQL 18 instance and real SQLite/DuckDB drivers.
  • All four Karaf feature descriptors resolve successfully.
  • Both example bundles compile on Java 17.
  • A fresh Karaf 4.4.11 instance runs the JSON client through migration/readiness, insert/update/query, parsed payload, and missing-row checks.
  • Independent review findings reproduced and fixed with regression tests; local documentation links and dependency/manifest boundaries checked.

@DoctorRemoteControl
DoctorRemoteControl merged commit 119d3db into main Nov 1, 2026
2 checks passed
@DoctorRemoteControl
DoctorRemoteControl deleted the public/db-json branch November 1, 2026 10:54
DoctorRemoteControl added a commit that referenced this pull request Nov 2, 2026
Add optional JSON queries and parameters for all three databases
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant