ldbc
ldbc copied to clipboard
Creating a MySQL connector project written in pure Scala3.
Implementation Details
Creating a MySQL connector project written in pure Scala3.
JVM, JS and Native platforms are all supported.
Related pull requests
- [x] https://github.com/takapi327/ldbc/pull/128
- [x] https://github.com/takapi327/ldbc/pull/134
- [x] https://github.com/takapi327/ldbc/pull/146
- [x] https://github.com/takapi327/ldbc/pull/157
- [x] https://github.com/takapi327/ldbc/pull/158
- [x] https://github.com/takapi327/ldbc/pull/159
- [x] https://github.com/takapi327/ldbc/pull/167
- [x] https://github.com/takapi327/ldbc/pull/173
- [x] https://github.com/takapi327/ldbc/pull/177
- [x] https://github.com/takapi327/ldbc/pull/180
- [x] https://github.com/takapi327/ldbc/pull/181
- [x] https://github.com/takapi327/ldbc/pull/182
- [x] https://github.com/takapi327/ldbc/pull/183
- [x] https://github.com/takapi327/ldbc/pull/184
- [x] https://github.com/takapi327/ldbc/pull/186
Supported Platforms
| Module / Platform | JVM | Scala Native | Scala.js |
|---|---|---|---|
ldbc-connector |
✅ | ✅ | ✅ |
Function Development
- [x] Implementation of Authentication Function
- [x] mysql_native_password support
- [x] sha256_password support
- [x] caching_sha2_password support
- [x] SSL/TLS support
- [x] RSA authentication method support
- [x] Establish connection specifying database
- [x] Codec
- [x] Encoder
- [x] Decoder
- [x] Execute query
- [x] Statement
- [x] Read query execution
- [x] Execute write query
- [x] Decode acquisition records
- [x] PreparedStatement in Client
- [x] Building a query
- [x] Encoding of sent values
- [x] Read query execution
- [x] Execute write query
- [x] Decode acquisition records
- [x] PreparedStatement in Server
- [x] Encoding of sent values
- [x] Read query execution
- [x] Execute write query
- [x] Decode acquisition records
- [x] Statement
- [x] Transaction function implementation
- [x] Read Only setting function
- [x] Auto Commit setting function
- [x] Transaction isolation level setting function
- [x] Commit function
- [x] Rollback function
- [x] Savepoint function
- [x] Utility Commands
- [x] COM_QUIT
- [x] COM_INIT_DB
- [x] COM_STATISTICS ~- [ ] COM_DEBUG~
- [x] COM_PING
- [x] COM_CHANGE_USER
- [x] COM_RESET_CONNECTION
- [x] COM_SET_OPTION
- [x] Batch commands
- [ ] Connection pooling implementation
Supported DetaType
| DataType | Support |
|---|---|
BIT |
✅ |
TINYINT |
✅ |
SMALLINT |
✅ |
MEDIUMINT |
✅ |
INT |
✅ |
BIGINT |
✅ |
DECIMAL |
✅ |
FLOAT |
✅ |
DOUBLE |
✅ |
CHAR |
✅ |
VARCHAR |
✅ |
BINARY |
✅ |
VARBINARY |
✅ |
TINYBLOB |
✅ |
BLOB |
✅ |
MEDIUMBLOB |
✅ |
LONGBLOB |
✅ |
TINYTEXT |
✅ |
TEXT |
✅ |
MEDIUMTEXT |
✅ |
LONGTEXT |
✅ |
ENUM |
✅ |
SET |
✅ |
JSON |
✅ |
DATE |
✅ |
DATETIME |
✅ |
TIMESTAMP |
✅ |
TIME |
✅ |
YEAR |
✅ |
BOOLEAN |
✅ |
GEOMETRY |
❌ |
POINT |
❌ |
LINESTRING |
❌ |
POLYGON |
❌ |
MULTIPOINT |
❌ |
MULTILINESTRING |
❌ |
MULTIPOLYGON |
❌ |
GEOMETRYCOLLECTION |
❌ |
Other
- [x] Documentation Creation
- [x] https://github.com/takapi327/ldbc/pull/317
- [x] Performance Verification
- [x] Comparison with JDBC
- [x] Comparison with other MySQL Scala libraries
- [ ] Verification of operation in AWS and other infrastructure environments
References
Porting of the following repository functions. https://github.com/takapi327/scala-jvm-js-native-example