Skip to content

Commit a1caa25

Browse files
committed
新增支持 QuestDB 并支持 ~ ASOF JOIN,SAMPLE BY, LATEST ON, PARTITION BY, FILL(LINEAR) 等关键词及与语法
1 parent 632c806 commit a1caa25

File tree

9 files changed

+461
-30
lines changed

9 files changed

+461
-30
lines changed

APIJSONORM/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.github.Tencent</groupId>
77
<artifactId>APIJSON</artifactId>
8-
<version>7.8.0</version>
8+
<version>7.9.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>APIJSONORM</name>

APIJSONORM/src/main/java/apijson/JSONObject.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ public JSONObject setUserIdIn(List<Object> list) {
151151
public static final String KEY_GROUP = "@group"; //分组方式
152152
public static final String KEY_HAVING = "@having"; //聚合函数条件,一般和@group一起用
153153
public static final String KEY_HAVING_AND = "@having&"; //聚合函数条件,一般和@group一起用
154+
public static final String KEY_SAMPLE = "@sample"; //取样方式
155+
public static final String KEY_LATEST = "@latest"; //最近方式
156+
public static final String KEY_PARTITION = "@partition"; //分区方式
157+
public static final String KEY_FILL = "@fill"; //填充方式
154158
public static final String KEY_ORDER = "@order"; //排序方式
155159
public static final String KEY_KEY = "@key"; // key 映射,year:left(date,4);name_tag:(name,tag)
156160
public static final String KEY_RAW = "@raw"; // 自定义原始 SQL 片段
@@ -185,6 +189,10 @@ public JSONObject setUserIdIn(List<Object> list) {
185189
TABLE_KEY_LIST.add(KEY_GROUP);
186190
TABLE_KEY_LIST.add(KEY_HAVING);
187191
TABLE_KEY_LIST.add(KEY_HAVING_AND);
192+
TABLE_KEY_LIST.add(KEY_SAMPLE);
193+
TABLE_KEY_LIST.add(KEY_LATEST);
194+
TABLE_KEY_LIST.add(KEY_PARTITION);
195+
TABLE_KEY_LIST.add(KEY_FILL);
188196
TABLE_KEY_LIST.add(KEY_ORDER);
189197
TABLE_KEY_LIST.add(KEY_KEY);
190198
TABLE_KEY_LIST.add(KEY_RAW);
@@ -410,6 +418,66 @@ public JSONObject setHaving(String keys, boolean isAnd) {
410418
return puts(isAnd ? KEY_HAVING_AND : KEY_HAVING, keys);
411419
}
412420

421+
/**set keys for sample by
422+
* @param keys key0, key1, key2 ...
423+
* @return {@link #setSample(String)}
424+
*/
425+
public JSONObject setSample(String... keys) {
426+
return setSample(StringUtil.getString(keys, true));
427+
}
428+
/**set keys for sample by
429+
* @param keys "key0,key1,key2..."
430+
* @return
431+
*/
432+
public JSONObject setSample(String keys) {
433+
return puts(KEY_SAMPLE, keys);
434+
}
435+
436+
/**set keys for latest on
437+
* @param keys key0, key1, key2 ...
438+
* @return {@link #setLatest(String)}
439+
*/
440+
public JSONObject setLatest(String... keys) {
441+
return setLatest(StringUtil.getString(keys, true));
442+
}
443+
/**set keys for latest on
444+
* @param keys "key0,key1,key2..."
445+
* @return
446+
*/
447+
public JSONObject setLatest(String keys) {
448+
return puts(KEY_LATEST, keys);
449+
}
450+
451+
/**set keys for partition by
452+
* @param keys key0, key1, key2 ...
453+
* @return {@link #setPartition(String)}
454+
*/
455+
public JSONObject setPartition(String... keys) {
456+
return setPartition(StringUtil.getString(keys, true));
457+
}
458+
/**set keys for partition by
459+
* @param keys key0, key1, key2 ...
460+
* @return
461+
*/
462+
public JSONObject setPartition(String keys) {
463+
return puts(KEY_PARTITION, keys);
464+
}
465+
466+
/**set keys for fill(key): fill(null), fill(linear), fill(prev)
467+
* @param keys key0, key1, key2 ...
468+
* @return {@link #setFill(String)}
469+
*/
470+
public JSONObject setFill(String... keys) {
471+
return setFill(StringUtil.getString(keys, true));
472+
}
473+
/**set keys for fill(key): fill(null), fill(linear), fill(prev)
474+
* @param keys key0, key1, key2 ...
475+
* @return
476+
*/
477+
public JSONObject setFill(String keys) {
478+
return puts(KEY_FILL, keys);
479+
}
480+
413481
/**set keys for order by
414482
* @param keys key0, key1+, key2- ...
415483
* @return {@link #setOrder(String)}

APIJSONORM/src/main/java/apijson/Log.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class Log {
1414

1515
public static boolean DEBUG = true;
1616

17-
public static final String VERSION = "7.8.0";
17+
public static final String VERSION = "7.9.0";
1818
public static final String KEY_SYSTEM_INFO_DIVIDER = "\n---|-----APIJSON SYSTEM INFO-----|---\n";
1919

2020
public static final String OS_NAME;

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,6 +1501,10 @@ else if (childKeys.length == 1 && JSONRequest.isTableKey(childKeys[0])) { //
15011501
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_GROUP);
15021502
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_HAVING);
15031503
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_HAVING_AND);
1504+
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_SAMPLE);
1505+
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_LATEST);
1506+
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_PARTITION);
1507+
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_FILL);
15041508
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_ORDER);
15051509
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_KEY);
15061510
JOIN_COPY_KEY_LIST.add(JSONRequest.KEY_RAW);

0 commit comments

Comments
 (0)