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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestjavaPull requests that update java codekeep-open

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions