OpenFeign / OpenFeign/querydsl

Re-enable Turso integration tests as the driver matures

Open
#1,812 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement java keep-open
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.