add: 添加了duckdb数据库支持 主要是枚举类型和默认方言配置

This commit is contained in:
pink 2024-12-10 16:51:41 +08:00
parent fa63bce67c
commit 57815d3ec4
5 changed files with 11 additions and 2 deletions

View File

@ -234,6 +234,11 @@ public enum DbType {
*/
TRINO("trino", "trino 数据库"),
/**
* Duckdb
*/
DUCKDB("duckdb", "duckdb 数据库"),
/**
* UNKNOWN DB
*/

View File

@ -161,6 +161,8 @@ public class DbTypeUtil {
return DbType.LEALONE;
} else if (jdbcUrl.contains(":hive2:")) {
return DbType.HIVE;
} else if (jdbcUrl.contains(":duckdb:")) {
return DbType.DUCKDB;
} else {
return DbType.OTHER;
}

View File

@ -152,6 +152,8 @@ public class DialectFactory {
return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.SYBASE);
case TRINO:
return new CommonsDialectImpl(KeywordWrap.NONE, LimitOffsetProcessor.SQLSERVER);
case DUCKDB:
return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.MYSQL);
default:
return new CommonsDialectImpl();
}

View File

@ -54,7 +54,7 @@ public class KeywordWrap {
public static final KeywordWrap BACK_QUOTE = new KeywordWrap("`", "`");
/**
* 双引号反义处理, 适用于 postgresql, sqlite, derby, oracle
* 双引号反义处理, 适用于 postgresql, sqlite, derby, oracle, duckdb
*/
public static final KeywordWrap DOUBLE_QUOTATION = new KeywordWrap("\"", "\"");

View File

@ -57,7 +57,7 @@ public interface LimitOffsetProcessor {
* Postgresql 的处理器
* 适合 {@link DbType#POSTGRE_SQL,DbType#SQLITE,DbType#H2,DbType#HSQL,DbType#KINGBASE_ES,DbType#PHOENIX}
* 适合 {@link DbType#SAP_HANA,DbType#IMPALA,DbType#HIGH_GO,DbType#VERTICA,DbType#REDSHIFT}
* 适合 {@link DbType#OPENGAUSS,DbType#TDENGINE,DbType#UXDB}
* 适合 {@link DbType#OPENGAUSS,DbType#TDENGINE,DbType#UXDB,DbType#DUCKDB}
*/
LimitOffsetProcessor POSTGRESQL = (dialect, sql, queryWrapper, limitRows, limitOffset) -> {
if (limitRows != null && limitOffset != null) {