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.
Background
add-turso-supportadds Turso (an in-process, SQLite-compatible database) as a Querydsl SQL backend, mirroring the existing SQLite support:TursoTemplates,Keywords.TURSO,Target.TURSO,SQLTemplatesRegistrywiring (tursoproduct name),Connections.initTurso, and theTursoSuiteTest/TursoLiteralsSuiteTestintegration suites (drivertech.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
TURSOvia@ExcludeIn(TURSO)(andExportTursoTestis@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
AbstractBaseTestreconnects per-test forTURSOto stop a single failure cascading "connection closed" across the suite.Categorized gaps (Turso 0.6.0)
DELETE/UPDATEWHERE (delete from SURVEY where SURVEY.NAME ...) rejected as "no such table"LongforDECIMALcolumns →Long/DoubleClassCastExceptionin aggregates/arithmeticleft,right,lpad,rpad,cot,datediff,date_trunc,some,everycharindex(used byLOCATE/INDEX_OF)SELECT ... FOR UPDATEsyntax unsupportedTimestampconversionjava.timesetObject(LocalDate/LocalDateTime) unsupported in driverANY/ALLsubquery syntaxFULL OUTER JOINrandom(n)(seeded random) unsupportedstatementOptions, misc date funcsDatabaseMetaData.getPrimaryKeys()returnsnull(ExportTursoTest@Disabled)How to re-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.