Skip to content

Commit f051dea

Browse files
committed
2 parents b728ae1 + 47d76bb commit f051dea

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public abstract class AbstractSQLConfig<T, M extends Map<String, Object>, L exte
190190
DATABASE_LIST.add(DATABASE_QUESTDB);
191191
DATABASE_LIST.add(DATABASE_IOTDB);
192192
DATABASE_LIST.add(DATABASE_SNOWFLAKE);
193+
DATABASE_LIST.add(DATABASE_DATABEND);
193194
DATABASE_LIST.add(DATABASE_DATABRICKS);
194195
DATABASE_LIST.add(DATABASE_REDIS);
195196
DATABASE_LIST.add(DATABASE_MONGODB);
@@ -1252,6 +1253,14 @@ public static boolean isSnowflake(String db) {
12521253
return DATABASE_SNOWFLAKE.equals(db);
12531254
}
12541255

1256+
@Override
1257+
public boolean isDatabend() {
1258+
return isDatabend(gainSQLDatabase());
1259+
}
1260+
public static boolean isDatabend(String db) {
1261+
return DATABASE_DATABEND.equals(db);
1262+
}
1263+
12551264
@Override
12561265
public boolean isDatabricks() {
12571266
return isDatabricks(gainSQLDatabase());
@@ -6322,12 +6331,12 @@ LEFT JOIN ( SELECT count(*) AS count FROM sys.Comment ) AS Comment ON Comment.m
63226331
if (RequestMethod.isHeadMethod(method, true)) {
63236332
List<On> onList = join.getOnList();
63246333
List<String> column = onList == null ? null : new ArrayList<>(onList.size());
6325-
if (column != null) {
6334+
//解决 pg 如果只查询关联键,会报找不到column的错误
6335+
///* SELECT count(*) AS count FROM sys.Moment AS Moment
6336+
// LEFT JOIN ( SELECT * FROM sys.Comment ) AS Comment ON Comment.momentId = Moment.id LIMIT 1 OFFSET 0 */
6337+
if (column != null && joinConfig.isMSQL()) { // 暂时这样兼容 PostgreSQL 等不支持 SELECT 中不包含对应 key 的隐式 ON 关联字段的数据库
63266338
for (On on : onList) {
6327-
//解决 pg 如果只查询关联键,会报找不到column的错误
6328-
///* SELECT count(*) AS count FROM sys.Moment AS Moment
6329-
// LEFT JOIN ( SELECT * FROM sys.Comment ) AS Comment ON Comment.momentId = Moment.id LIMIT 1 OFFSET 0 */
6330-
//column.add(on.getKey());
6339+
column.add(on.getKey()); // TODO PostgreSQL 等需要找到具体的 targetTable 对应 targetKey 来加到 SELECT,比直接 SELECT * 性能更好
63316340
}
63326341
}
63336342

APIJSONORM/src/main/java/apijson/orm/SQLConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public interface SQLConfig<T, M extends Map<String, Object>, L extends List<Obje
3535
String DATABASE_TRINO = "TRINO"; // PrestoSQL https://trino.io
3636
String DATABASE_DORIS = "DORIS"; // https://doris.apache.org
3737
String DATABASE_SNOWFLAKE = "SNOWFLAKE"; // https://www.snowflake.com
38+
String DATABASE_DATABEND = "DATABEND"; // https://www.databend.com
3839
String DATABASE_DATABRICKS = "DATABRICKS"; // https://www.databricks.com
3940
String DATABASE_CASSANDRA = "CASSANDRA"; // https://cassandra.apache.org
4041
String DATABASE_MILVUS = "MILVUS"; // https://milvus.io
@@ -100,6 +101,7 @@ public interface SQLConfig<T, M extends Map<String, Object>, L extends List<Obje
100101
boolean isPresto();
101102
boolean isTrino();
102103
boolean isSnowflake();
104+
boolean isDatabend();
103105
boolean isDatabricks();
104106
boolean isCassandra();
105107
boolean isMilvus();

APIJSONORM/src/main/java/apijson/orm/exception/CommonException.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,9 @@ else if (config.isDoris()) {
253253
else if (config.isSnowflake()) {
254254
db = SQLConfig.DATABASE_SNOWFLAKE + " " + dbVersion;
255255
}
256+
else if (config.isDatabend()) {
257+
db = SQLConfig.DATABASE_DATABEND + " " + dbVersion;
258+
}
256259
else if (config.isDatabricks()) {
257260
db = SQLConfig.DATABASE_DATABRICKS + " " + dbVersion;
258261
}

0 commit comments

Comments
 (0)