提交 3032a0e6 编写于 作者: G Ganlin Zhao

[TD-11216]<feature>: Time window related keywords

上级 81f89d5d
...@@ -2476,7 +2476,7 @@ int32_t addProjectionExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, t ...@@ -2476,7 +2476,7 @@ int32_t addProjectionExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, t
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2); return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
} }
if (index.columnIndex < 0 || index.columnIndex >= TSDB_MIN_VALID_COLUMN_INDEX) { if (index.columnIndex < 0 && index.columnIndex >= TSDB_MIN_VALID_COLUMN_INDEX) {
if (outerQuery) { if (outerQuery) {
STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex); STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex);
int32_t numOfCols = tscGetNumOfColumns(pTableMetaInfo->pTableMeta); int32_t numOfCols = tscGetNumOfColumns(pTableMetaInfo->pTableMeta);
...@@ -3763,13 +3763,13 @@ static bool isTimeWindowToken(SStrToken* token, int16_t *columnIndex) { ...@@ -3763,13 +3763,13 @@ static bool isTimeWindowToken(SStrToken* token, int16_t *columnIndex) {
SStrToken tableToken = {0}; SStrToken tableToken = {0};
extractTableNameFromToken(&tmpToken, &tableToken); extractTableNameFromToken(&tmpToken, &tableToken);
if (tmpToken.n == strlen(TSQL_TSWIN_START) && strncasecmp(TSQL_TSWIN_START, tmpToken.z, tmpToken.n)) { if (tmpToken.n == strlen(TSQL_TSWIN_START) && strncasecmp(TSQL_TSWIN_START, tmpToken.z, tmpToken.n) == 0) {
*columnIndex = TSDB_TSWIN_START_COLUMN_INDEX; *columnIndex = TSDB_TSWIN_START_COLUMN_INDEX;
return true; return true;
} else if (tmpToken.n == strlen(TSQL_TSWIN_STOP) && strncasecmp(TSQL_TSWIN_STOP, tmpToken.z, tmpToken.n)) { } else if (tmpToken.n == strlen(TSQL_TSWIN_STOP) && strncasecmp(TSQL_TSWIN_STOP, tmpToken.z, tmpToken.n) == 0) {
*columnIndex = TSDB_TSWIN_STOP_COLUMN_INDEX; *columnIndex = TSDB_TSWIN_STOP_COLUMN_INDEX;
return true; return true;
} else if (tmpToken.n == strlen(TSQL_TSWIN_DURATION) && strncasecmp(TSQL_TSWIN_DURATION, tmpToken.z, tmpToken.n)) { } else if (tmpToken.n == strlen(TSQL_TSWIN_DURATION) && strncasecmp(TSQL_TSWIN_DURATION, tmpToken.z, tmpToken.n) == 0) {
*columnIndex = TSDB_TSWIN_DURATION_COLUMN_INDEX; *columnIndex = TSDB_TSWIN_DURATION_COLUMN_INDEX;
return true; return true;
} else { } else {
......
...@@ -2551,6 +2551,12 @@ SExprInfo* tscExprCreate(STableMetaInfo* pTableMetaInfo, int16_t functionId, SCo ...@@ -2551,6 +2551,12 @@ SExprInfo* tscExprCreate(STableMetaInfo* pTableMetaInfo, int16_t functionId, SCo
p->colInfo.colId = TSDB_TBNAME_COLUMN_INDEX; p->colInfo.colId = TSDB_TBNAME_COLUMN_INDEX;
p->colBytes = s->bytes; p->colBytes = s->bytes;
p->colType = s->type; p->colType = s->type;
} else if (pColIndex->columnIndex > TSDB_TBNAME_COLUMN_INDEX &&
pColIndex->columnIndex <= TSDB_TBNAME_COLUMN_INDEX) {
SSchema* s = tGetTimeWindowColumnSchema(pColIndex->columnIndex);
p->colInfo.colId = s->colId;
p->colBytes = s->bytes;
p->colType = s->type;
} else if (pColIndex->columnIndex <= TSDB_UD_COLUMN_INDEX) { } else if (pColIndex->columnIndex <= TSDB_UD_COLUMN_INDEX) {
p->colInfo.colId = pColIndex->columnIndex; p->colInfo.colId = pColIndex->columnIndex;
p->colBytes = size; p->colBytes = size;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册