OpenFeign / OpenFeign/querydsl
Re-enable Turso integration tests as the driver matures
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 650
- Forks
- 102
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 47
Description
Background
add-turso-support adds Turso (an in-process, SQLite-compatible database) as a Querydsl SQL backend, mirroring the existing SQLite support: TursoTemplates, Keywords.TURSO, Target.TURSO, SQLTemplatesRegistry wiring (turso product name), Connections.initTurso, and the TursoSuiteTest / TursoLiteralsSuiteTest integration suites (driver tech.turso:turso:0.6.0).
Running the full SQL integration suite against Turso gives 194 pass / 78 fail / 33 skip. The failing tests are excluded for TURSO via @ExcludeIn(TURSO) (and ExportTursoTest is @Disabled) and tracked here so they can be re-enabled as Turso matures. This issue is the single querydsl-side tracker for every disabled Turso feature; we are intentionally not opening new issues on the Turso repo, only linking existing ones.
Note: Turso closes the shared JDBC connection when a statement errors, so AbstractBaseTest reconnects per-test for TURSO to stop a single failure cascading "connection closed" across the suite.
Categorized gaps (Turso 0.6.0)
| Count | Limitation | Existing upstream issue |
|---|---|---|
| 19 | Table-qualified column in DELETE/UPDATE WHERE (delete from SURVEY where SURVEY.NAME ...) rejected as "no such table" |
none |
| 15 | JDBC driver returns Long for DECIMAL columns → Long/Double ClassCastException in aggregates/arithmetic |
turso#5515 (decimal ext) |
| 14 | Missing functions: left, right, lpad, rpad, cot, datediff, date_trunc, some, every |
none |
| 4 | Missing charindex (used by LOCATE/INDEX_OF) |
turso#4704 (instr) |
| 3 | SELECT ... FOR UPDATE syntax unsupported |
none |
| 3 | date/time string → Timestamp conversion |
none |
| 2 | java.time setObject (LocalDate/LocalDateTime) unsupported in driver |
turso#3857 |
| 2 | ANY/ALL subquery syntax |
none |
| 1 | FULL OUTER JOIN |
turso#5908 |
| 1 | random(n) (seeded random) unsupported |
none |
| 14 | Other: generated-keys on insert/merge, statementOptions, misc date funcs |
none |
| — | Schema-export codegen: DatabaseMetaData.getPrimaryKeys() returns null (ExportTursoTest @Disabled) |
none |
How to re-test
./mvnw -pl querydsl-libraries/querydsl-sql -Dtest=TursoSuiteTest \
-Dgroups=com.querydsl.core.testutil.Turso -Dmaven.test.failure.ignore=true test
Remove the @ExcludeIn(TURSO) (or @Disabled) from the relevant test once the corresponding gap is fixed upstream. Exclusions are marked in code with // Turso 0.6.0 gap, see #1812.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the documented TursoSuiteTest Maven command and reviewing the @ExcludeIn(TURSO) markers, AbstractBaseTest, and ExportTursoTest. Choose a specific listed Turso limitation to investigate; done means its upstream gap is fixed and the corresponding exclusion or @Disabled annotation can be removed with the relevant integration test passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100