@@ -216,6 +216,7 @@ public abstract class AbstractSQLConfig<T extends Object> implements SQLConfig<T
216216 DATABASE_LIST .add (DATABASE_MILVUS );
217217 DATABASE_LIST .add (DATABASE_INFLUXDB );
218218 DATABASE_LIST .add (DATABASE_TDENGINE );
219+ DATABASE_LIST .add (DATABASE_IOTDB );
219220 DATABASE_LIST .add (DATABASE_SNOWFLAKE );
220221 DATABASE_LIST .add (DATABASE_DATABRICKS );
221222 DATABASE_LIST .add (DATABASE_REDIS );
@@ -224,6 +225,7 @@ public abstract class AbstractSQLConfig<T extends Object> implements SQLConfig<T
224225 DATABASE_LIST .add (DATABASE_KAFKA );
225226 DATABASE_LIST .add (DATABASE_MQ );
226227
228+
227229 RAW_MAP = new LinkedHashMap <>(); // 保证顺序,避免配置冲突等意外情况
228230
229231 RAW_MAP .put ("+" , "" );
@@ -820,6 +822,18 @@ public abstract class AbstractSQLConfig<T extends Object> implements SQLConfig<T
820822 SQL_FUNCTION_MAP .put ("len" , "" );
821823 SQL_FUNCTION_MAP .put ("datalength" , "" );
822824
825+ // Milvus 相关 SQL 函数
826+ SQL_FUNCTION_MAP .put ("vMatch" , "" );
827+ SQL_FUNCTION_MAP .put ("consistencyLevel" , "" );
828+ SQL_FUNCTION_MAP .put ("partitionBy" , "" );
829+ SQL_FUNCTION_MAP .put ("gracefulTime" , "" );
830+ SQL_FUNCTION_MAP .put ("guaranteeTimestamp" , "" );
831+ SQL_FUNCTION_MAP .put ("roundDecimal" , "" );
832+ SQL_FUNCTION_MAP .put ("travelTimestamp" , "" );
833+ SQL_FUNCTION_MAP .put ("nProbe" , "" );
834+ SQL_FUNCTION_MAP .put ("ef" , "" );
835+ SQL_FUNCTION_MAP .put ("searchK" , "" );
836+
823837 }
824838
825839 private Parser <T > parser ;
@@ -1011,7 +1025,7 @@ public AbstractSQLConfig setMethod(RequestMethod method) {
10111025 }
10121026 @ Override
10131027 public boolean isPrepared () {
1014- return prepared ;
1028+ return prepared && ! isMongoDB (); // MongoDB JDBC 还不支持预编译 ;
10151029 }
10161030 @ Override
10171031 public AbstractSQLConfig setPrepared (boolean prepared ) {
@@ -1269,6 +1283,15 @@ public static boolean isTDengine(String db) {
12691283 return DATABASE_TDENGINE .equals (db );
12701284 }
12711285
1286+
1287+ public boolean isIoTDB () {
1288+ return isIoTDB (getDatabase ());
1289+ }
1290+ public static boolean isIoTDB (String db ) {
1291+ return DATABASE_IOTDB .equals (db );
1292+ }
1293+
1294+
12721295 @ Override
12731296 public boolean isRedis () {
12741297 return isRedis (getSQLDatabase ());
@@ -1310,8 +1333,8 @@ public static boolean isSQLite(String db) {
13101333 }
13111334
13121335 @ Override
1313- public String getQuote () {
1314- if (isElasticsearch ()) {
1336+ public String getQuote () { // MongoDB 同时支持 `tbl` 反引号 和 "col" 双引号
1337+ if (isElasticsearch () || isIoTDB () ) {
13151338 return "" ;
13161339 }
13171340 return isMySQL () || isMariaDB () || isTiDB () || isClickHouse () || isTDengine () || isMilvus () ? "`" : "\" " ;
0 commit comments