Merge branch '3.0' of https://github.com/taosdata/TDengine into 3.0
This commit is contained in:
commit
468161c4ab
|
@ -262,6 +262,63 @@ The following types may be returned:
|
||||||
- "INT UNSIGNED"
|
- "INT UNSIGNED"
|
||||||
- "BIGINT UNSIGNED"
|
- "BIGINT UNSIGNED"
|
||||||
- "JSON"
|
- "JSON"
|
||||||
|
- "VARBINARY"
|
||||||
|
- "GEOMETRY"
|
||||||
|
|
||||||
|
`VARBINARY` and `GEOMETRY` types return data as Hex string, example:
|
||||||
|
|
||||||
|
Prepare data
|
||||||
|
|
||||||
|
```bash
|
||||||
|
create database demo
|
||||||
|
use demo
|
||||||
|
create table t(ts timestamp,c1 varbinary(20),c2 geometry(100))
|
||||||
|
insert into t values(now,'\x7f8290','point(100 100)')
|
||||||
|
```
|
||||||
|
|
||||||
|
Execute query
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl --location 'http://<fqdn>:<port>/rest/sql' \
|
||||||
|
--header 'Content-Type: text/plain' \
|
||||||
|
--header 'Authorization: Basic cm9vdDp0YW9zZGF0YQ==' \
|
||||||
|
--data 'select * from demo.t'
|
||||||
|
```
|
||||||
|
|
||||||
|
Return results
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"column_meta": [
|
||||||
|
[
|
||||||
|
"ts",
|
||||||
|
"TIMESTAMP",
|
||||||
|
8
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c1",
|
||||||
|
"VARBINARY",
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c2",
|
||||||
|
"GEOMETRY",
|
||||||
|
100
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
[
|
||||||
|
"2023-11-01T06:28:15.210Z",
|
||||||
|
"7f8290",
|
||||||
|
"010100000000000000000059400000000000005940"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `010100000000000000000059400000000000005940` is [Well-Known Binary (WKB)](https://libgeos.org/specifications/wkb/) format for `point(100 100)`
|
||||||
|
|
||||||
#### Errors
|
#### Errors
|
||||||
|
|
||||||
|
|
|
@ -257,6 +257,63 @@ curl -L -u username:password -d "<SQL>" <ip>:<PORT>/rest/sql/[db_name][?tz=timez
|
||||||
- "INT UNSIGNED"
|
- "INT UNSIGNED"
|
||||||
- "BIGINT UNSIGNED"
|
- "BIGINT UNSIGNED"
|
||||||
- "JSON"
|
- "JSON"
|
||||||
|
- "VARBINARY"
|
||||||
|
- "GEOMETRY"
|
||||||
|
|
||||||
|
`VARBINARY` 和 `GEOMETRY` 类型返回数据为 Hex 字符串,样例:
|
||||||
|
|
||||||
|
准备数据
|
||||||
|
|
||||||
|
```bash
|
||||||
|
create database demo
|
||||||
|
use demo
|
||||||
|
create table t(ts timestamp,c1 varbinary(20),c2 geometry(100))
|
||||||
|
insert into t values(now,'\x7f8290','point(100 100)')
|
||||||
|
```
|
||||||
|
|
||||||
|
执行查询
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl --location 'http://<fqdn>:<port>/rest/sql' \
|
||||||
|
--header 'Content-Type: text/plain' \
|
||||||
|
--header 'Authorization: Basic cm9vdDp0YW9zZGF0YQ==' \
|
||||||
|
--data 'select * from demo.t'
|
||||||
|
```
|
||||||
|
|
||||||
|
返回结果
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"column_meta": [
|
||||||
|
[
|
||||||
|
"ts",
|
||||||
|
"TIMESTAMP",
|
||||||
|
8
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c1",
|
||||||
|
"VARBINARY",
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c2",
|
||||||
|
"GEOMETRY",
|
||||||
|
100
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
[
|
||||||
|
"2023-11-01T06:28:15.210Z",
|
||||||
|
"7f8290",
|
||||||
|
"010100000000000000000059400000000000005940"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `010100000000000000000059400000000000005940` 为 `point(100 100)` 的 [Well-Known Binary (WKB)](https://libgeos.org/specifications/wkb/) 格式
|
||||||
|
|
||||||
#### 错误
|
#### 错误
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ int32_t updateEventWindowInfo(SStreamAggSupporter* pAggSup, SEventWindowInfo* pW
|
||||||
|
|
||||||
for (int32_t i = start; i < rows; ++i) {
|
for (int32_t i = start; i < rows; ++i) {
|
||||||
if (pTsData[i] >= maxTs) {
|
if (pTsData[i] >= maxTs) {
|
||||||
return i - 1 - start;
|
return i - start;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pWin->skey > pTsData[i]) {
|
if (pWin->skey > pTsData[i]) {
|
||||||
|
|
|
@ -634,9 +634,6 @@ static void addRetriveWindow(SArray* wins, SStreamIntervalOperatorInfo* pInfo, i
|
||||||
for (int32_t i = 0; i < size; i++) {
|
for (int32_t i = 0; i < size; i++) {
|
||||||
SWinKey* winKey = taosArrayGet(wins, i);
|
SWinKey* winKey = taosArrayGet(wins, i);
|
||||||
STimeWindow nextWin = getFinalTimeWindow(winKey->ts, &pInfo->interval);
|
STimeWindow nextWin = getFinalTimeWindow(winKey->ts, &pInfo->interval);
|
||||||
if (isOverdue(nextWin.ekey, &pInfo->twAggSup) && pInfo->ignoreExpiredData) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
void* chIds = taosHashGet(pInfo->pPullDataMap, winKey, sizeof(SWinKey));
|
void* chIds = taosHashGet(pInfo->pPullDataMap, winKey, sizeof(SWinKey));
|
||||||
if (!chIds) {
|
if (!chIds) {
|
||||||
SPullWindowInfo pull = {
|
SPullWindowInfo pull = {
|
||||||
|
@ -801,7 +798,7 @@ static void doStreamIntervalAggImpl(SOperatorInfo* pOperator, SSDataBlock* pSDat
|
||||||
}
|
}
|
||||||
while (1) {
|
while (1) {
|
||||||
bool isClosed = isCloseWindow(&nextWin, &pInfo->twAggSup);
|
bool isClosed = isCloseWindow(&nextWin, &pInfo->twAggSup);
|
||||||
if ((!IS_FINAL_INTERVAL_OP(pOperator) && pInfo->ignoreExpiredData &&
|
if ((!IS_FINAL_INTERVAL_OP(pOperator) && pInfo->ignoreExpiredData && pSDataBlock->info.type != STREAM_PULL_DATA &&
|
||||||
checkExpiredData(&pInfo->stateStore, pInfo->pUpdateInfo, &pInfo->twAggSup, pSDataBlock->info.id.uid,
|
checkExpiredData(&pInfo->stateStore, pInfo->pUpdateInfo, &pInfo->twAggSup, pSDataBlock->info.id.uid,
|
||||||
nextWin.ekey)) ||
|
nextWin.ekey)) ||
|
||||||
!inSlidingWindow(&pInfo->interval, &nextWin, &pSDataBlock->info)) {
|
!inSlidingWindow(&pInfo->interval, &nextWin, &pSDataBlock->info)) {
|
||||||
|
|
Loading…
Reference in New Issue