Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ed9e07d
add basic funcs without debug
fotonchicc Mar 22, 2026
4be79ba
change project structure
fotonchicc Mar 24, 2026
1dc2d1d
change description
fotonchicc Mar 29, 2026
a659b3b
edit tests and connection
fotonchicc Apr 9, 2026
a6c484b
fix connection error
fotonchicc Apr 12, 2026
7127119
fix connection error 2
fotonchicc Apr 12, 2026
221eedb
fix connection error 3
fotonchicc Apr 12, 2026
204f956
passed all tests
fotonchicc Apr 13, 2026
494000a
add ddl, types and test
fotonchicc Apr 16, 2026
391d147
add retry and tests
fotonchicc Apr 17, 2026
549586a
add many-to-many
fotonchicc Apr 18, 2026
87d6cc8
add dao, keyset, improve indexes
fotonchicc Apr 18, 2026
f74466e
add demo, tests, update description
fotonchicc Apr 19, 2026
ae9a454
change ci
fotonchicc Apr 19, 2026
2d538f9
change ci
fotonchicc Apr 19, 2026
6f47601
edit core files, tests, documentaion
fotonchicc Apr 20, 2026
1bd7710
edit documentation and format
fotonchicc Apr 20, 2026
7b107ba
edit readme
fotonchicc Apr 21, 2026
5ca51fa
change directory for demo
fotonchicc Apr 22, 2026
3443459
edit main readme and pom.xml
fotonchicc Apr 23, 2026
82aa856
fix some pull requests comments
fotonchicc Apr 23, 2026
4376883
fix ci tests
fotonchicc Apr 23, 2026
951c047
fixes after fork comparison
fotonchicc Apr 24, 2026
8d69045
fixes after code review
fotonchicc May 10, 2026
76d1c31
update text types and make properties internal
fotonchicc May 11, 2026
b5f2286
update text types
fotonchicc May 11, 2026
9e206f9
rework retry/transaction api, drop optimistic-locking and keyset pagi…
KirillKurdyukov May 12, 2026
4abb01c
edit code after review
fotonchicc May 14, 2026
d47ca43
big refactoring
KirillKurdyukov May 18, 2026
bd6a949
big refactoring
KirillKurdyukov May 18, 2026
a9ccec0
big refactoring
KirillKurdyukov May 18, 2026
819dce5
fix issues copilot
KirillKurdyukov May 18, 2026
764847c
fix issues copilot
KirillKurdyukov May 18, 2026
f87cf7d
added docs
KirillKurdyukov May 19, 2026
cd7bb24
remove YdbTable.kt
KirillKurdyukov May 19, 2026
10702bc
return YdbTable.kt...
KirillKurdyukov May 19, 2026
be1be71
sync .md files
KirillKurdyukov May 19, 2026
a0c4287
add spring integration
fotonchicc May 19, 2026
642382c
refactoring
KirillKurdyukov May 19, 2026
9632e6d
refactoring
KirillKurdyukov May 19, 2026
eecbc3c
refactoring
KirillKurdyukov May 19, 2026
6b32b91
sync branches
fotonchicc May 19, 2026
e2ad610
partly rework dialect
fotonchicc May 20, 2026
00ff183
sync versions repo
fotonchicc May 20, 2026
1494d10
fix errors in starter
fotonchicc May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 19 additions & 17 deletions kotlin-exposed-dialect/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
## 0.9.0
## 0.9.0

Initial release of the Kotlin Exposed dialect for YDB.

### Added

- YDB `VendorDialect` for Exposed JDBC; `registerYdbDialect(enableSignedDatetimes = …)` for setup.
- `ydbTransaction { ... }` — retryable transactions with `readOnly` and `YdbRetryConfig`
(exponential backoff with full/equal jitter; retries classified by JDBC `SQLException` vendor codes).
- Native `UPSERT` / `REPLACE` rendering — wired into Exposed's standard `Table.upsert` and
`Table.replace` DSL.
- `YdbTable` — YQL `CREATE TABLE` with table-level `PRIMARY KEY (…)`, inline secondary indexes
(`secondaryIndex`), and optional row TTL (`ttl` / `YdbTtlColumnMode`); prefer over plain Exposed
`Table` when DDL must be valid on YDB.
- Post-create indexes via Exposed `Table.index()` on any table → `ALTER TABLE … ADD INDEX … GLOBAL`.
- JDBC metadata for reading existing indexes.
- Temporal columns: unsigned (`ydbDate`, …) and signed (`ydbDate32`, …) extensions with
JDBC vendor codes; DDL `sqlType()` derived from the code. No connection-level temporal flag.
- Custom column types for `Decimal`, `Interval`, `Json`, `JsonDocument`, native `Uuid`,
unsigned integers, `Uint64`, plus a `ydbDecimalLiteral` helper for update expressions.
- `Serial` / `BigSerial` via Exposed `autoIncrement()` on `Table`.
- Explicit rejection of ANSI `MERGE` (`UPSERT` covers the use case).
- YDB `VendorDialect` for Exposed JDBC and `registerYdbDialect(enableSignedDatetimes = …)` for setup.
- `ydbDatabaseConfig()` and `ydbJdbcUrl(...)` helpers for recommended Exposed and JDBC configuration.
- `ydbTransaction { ... }` with retry classification based on JDBC `SQLException` vendor codes.
- Native YDB `UPSERT` / `REPLACE` rendering wired into Exposed `Table.upsert` and `Table.replace`.
- `createYdbStatement()` for YDB-compatible `CREATE TABLE` rendering with a table-level `PRIMARY KEY (...)`.
- Post-create indexes through Exposed `Table.index()` в†’ `ALTER TABLE ... ADD INDEX ... GLOBAL`.
- JDBC metadata support for reading existing indexes from YDB.
- Temporal column extensions (`ydbDate`, `ydbDate32`, `ydbDatetime`, `ydbDatetime64`, `ydbTimestamp`, `ydbTimestamp64`) with JDBC vendor bindings.
- Custom YDB column types for `Decimal`, `Interval`, `Json`, `JsonDocument`, native `Uuid`, and unsigned values.
- `ydbDecimalLiteral` for decimal update expressions.
- `Serial` / `BigSerial` support via Exposed `autoIncrement()`.
- Explicit rejection of ANSI `MERGE`.

### Notes

- Exposed 1.3.0 does not provide a dialect hook for rendering a single-column PK inside `CREATE TABLE`, so schema generation for YDB is implemented through a `createStatement()` override and `createYdbStatement()`.
- Production schema management is expected to use external versioned migrations; the repository includes validation coverage for externally created schemas through YDB-compatible Exposed drift checks for missing columns and secondary indexes.

Loading
Loading