Skip to content

Re-enable Turso integration tests as the driver matures #1812

Description

@velo

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestjavaPull requests that update java codekeep-open

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions