feat: dialect support hive sql

This commit is contained in:
开源海哥 2023-08-21 18:40:04 +08:00
parent 94bce8f1fb
commit 22dea1b9c7
3 changed files with 53 additions and 1 deletions

View File

@ -22,102 +22,127 @@ public enum DbType {
* MYSQL * MYSQL
*/ */
MYSQL("mysql", "MySql 数据库"), MYSQL("mysql", "MySql 数据库"),
/** /**
* MARIADB * MARIADB
*/ */
MARIADB("mariadb", "MariaDB 数据库"), MARIADB("mariadb", "MariaDB 数据库"),
/** /**
* ORACLE * ORACLE
*/ */
ORACLE("oracle", "Oracle11g 及以下数据库"), ORACLE("oracle", "Oracle11g 及以下数据库"),
/** /**
* oracle12c * oracle12c
*/ */
ORACLE_12C("oracle12c", "Oracle12c 及以上数据库"), ORACLE_12C("oracle12c", "Oracle12c 及以上数据库"),
/** /**
* DB2 * DB2
*/ */
DB2("db2", "DB2 数据库"), DB2("db2", "DB2 数据库"),
/** /**
* H2 * H2
*/ */
H2("h2", "H2 数据库"), H2("h2", "H2 数据库"),
/** /**
* HSQL * HSQL
*/ */
HSQL("hsql", "HSQL 数据库"), HSQL("hsql", "HSQL 数据库"),
/** /**
* SQLITE * SQLITE
*/ */
SQLITE("sqlite", "SQLite 数据库"), SQLITE("sqlite", "SQLite 数据库"),
/** /**
* POSTGRE * POSTGRE
*/ */
POSTGRE_SQL("postgresql", "PostgreSQL 数据库"), POSTGRE_SQL("postgresql", "PostgreSQL 数据库"),
/** /**
* SQLSERVER * SQLSERVER
*/ */
SQLSERVER("sqlserver", "SQLServer 数据库"), SQLSERVER("sqlserver", "SQLServer 数据库"),
/** /**
* SqlServer 2005 数据库 * SqlServer 2005 数据库
*/ */
SQLSERVER_2005("sqlserver_2005", "SQLServer 数据库"), SQLSERVER_2005("sqlserver_2005", "SQLServer 数据库"),
/** /**
* DM * DM
*/ */
DM("dm", "达梦数据库"), DM("dm", "达梦数据库"),
/** /**
* xugu * xugu
*/ */
XUGU("xugu", "虚谷数据库"), XUGU("xugu", "虚谷数据库"),
/** /**
* Kingbase * Kingbase
*/ */
KINGBASE_ES("kingbasees", "人大金仓数据库"), KINGBASE_ES("kingbasees", "人大金仓数据库"),
/** /**
* Phoenix * Phoenix
*/ */
PHOENIX("phoenix", "Phoenix HBase 数据库"), PHOENIX("phoenix", "Phoenix HBase 数据库"),
/** /**
* Gauss * Gauss
*/ */
GAUSS("gauss", "Gauss 数据库"), GAUSS("gauss", "Gauss 数据库"),
/** /**
* ClickHouse * ClickHouse
*/ */
CLICK_HOUSE("clickhouse", "clickhouse 数据库"), CLICK_HOUSE("clickhouse", "clickhouse 数据库"),
/** /**
* GBase * GBase
*/ */
GBASE("gbase", "南大通用(华库)数据库"), GBASE("gbase", "南大通用(华库)数据库"),
/** /**
* GBase-8s * GBase-8s
*/ */
GBASE_8S("gbase-8s", "南大通用数据库 GBase 8s"), GBASE_8S("gbase-8s", "南大通用数据库 GBase 8s"),
/** /**
* Oscar * Oscar
*/ */
OSCAR("oscar", "神通数据库"), OSCAR("oscar", "神通数据库"),
/** /**
* Sybase * Sybase
*/ */
SYBASE("sybase", "Sybase ASE 数据库"), SYBASE("sybase", "Sybase ASE 数据库"),
/** /**
* OceanBase * OceanBase
*/ */
OCEAN_BASE("oceanbase", "OceanBase 数据库"), OCEAN_BASE("oceanbase", "OceanBase 数据库"),
/** /**
* Firebird * Firebird
*/ */
FIREBIRD("Firebird", "Firebird 数据库"), FIREBIRD("Firebird", "Firebird 数据库"),
/** /**
* derby * derby
*/ */
DERBY("derby", "Derby 数据库"), DERBY("derby", "Derby 数据库"),
/** /**
* HighGo * HighGo
*/ */
HIGH_GO("highgo", "瀚高数据库"), HIGH_GO("highgo", "瀚高数据库"),
/** /**
* CUBRID * CUBRID
*/ */
@ -127,50 +152,62 @@ public enum DbType {
* GOLDILOCKS * GOLDILOCKS
*/ */
GOLDILOCKS("goldilocks", "GOLDILOCKS 数据库"), GOLDILOCKS("goldilocks", "GOLDILOCKS 数据库"),
/** /**
* CSIIDB * CSIIDB
*/ */
CSIIDB("csiidb", "CSIIDB 数据库"), CSIIDB("csiidb", "CSIIDB 数据库"),
/** /**
* CSIIDB * CSIIDB
*/ */
SAP_HANA("hana", "SAP_HANA 数据库"), SAP_HANA("hana", "SAP_HANA 数据库"),
/** /**
* Impala * Impala
*/ */
IMPALA("impala", "impala 数据库"), IMPALA("impala", "impala 数据库"),
/** /**
* Vertica * Vertica
*/ */
VERTICA("vertica", "vertica数据库"), VERTICA("vertica", "vertica数据库"),
/** /**
* 东方国信 xcloud * 东方国信 xcloud
*/ */
XCloud("xcloud", "行云数据库"), XCloud("xcloud", "行云数据库"),
/** /**
* redshift * redshift
*/ */
REDSHIFT("redshift", "亚马逊 redshift 数据库"), REDSHIFT("redshift", "亚马逊 redshift 数据库"),
/** /**
* openGauss * openGauss
*/ */
OPENGAUSS("openGauss", "华为 openGauss 数据库"), OPENGAUSS("openGauss", "华为 openGauss 数据库"),
/** /**
* TDengine * TDengine
*/ */
TDENGINE("TDengine", "TDengine 数据库"), TDENGINE("TDengine", "TDengine 数据库"),
/** /**
* Informix * Informix
*/ */
INFORMIX("informix", "Informix 数据库"), INFORMIX("informix", "Informix 数据库"),
/** /**
* sinodb * sinodb
*/ */
SINODB("sinodb", "SinoDB 数据库"), SINODB("sinodb", "SinoDB 数据库"),
/** /**
* uxdb * uxdb
*/ */
UXDB("uxdb", "优炫数据库"), UXDB("uxdb", "优炫数据库"),
/** /**
* greenplum * greenplum
*/ */
@ -180,6 +217,17 @@ public enum DbType {
* lealone * lealone
*/ */
LEALONE("lealone", "lealone 数据库"), LEALONE("lealone", "lealone 数据库"),
/**
* Hive SQL
*/
HIVE("Hive", "Hive SQL"),
/**
* Doris 兼容 Mysql使用 MySql 驱动和协议
*/
DORIS("doris", "doris 数据库"),
/** /**
* UNKNOWN DB * UNKNOWN DB
*/ */

View File

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

View File

@ -107,6 +107,8 @@ public class DialectFactory {
case CUBRID: case CUBRID:
case GOLDILOCKS: case GOLDILOCKS:
case CSIIDB: case CSIIDB:
case HIVE:
case DORIS:
return new CommonsDialectImpl(KeywordWrap.BACK_QUOTE, LimitOffsetProcessor.MYSQL); return new CommonsDialectImpl(KeywordWrap.BACK_QUOTE, LimitOffsetProcessor.MYSQL);
case CLICK_HOUSE: case CLICK_HOUSE:
return new CommonsDialectImpl(KeywordWrap.NONE, LimitOffsetProcessor.MYSQL); return new CommonsDialectImpl(KeywordWrap.NONE, LimitOffsetProcessor.MYSQL);