fix: error log and union issue

This commit is contained in:
dapan1121 2024-03-22 08:47:07 +08:00
parent 65c57e88cd
commit 3835a5b349
23 changed files with 1127 additions and 62 deletions

View File

@ -767,6 +767,7 @@ int32_t* taosGetErrno();
#define TSDB_CODE_PAR_INVALID_WJOIN_HAVING_EXPR TAOS_DEF_ERROR_CODE(0, 0x2672)
#define TSDB_CODE_PAR_INVALID_WIN_OFFSET_UNIT TAOS_DEF_ERROR_CODE(0, 0x2673)
#define TSDB_CODE_PAR_VALID_PRIM_TS_REQUIRED TAOS_DEF_ERROR_CODE(0, 0x2674)
#define TSDB_CODE_PAR_ORDERBY_UNKNOWN_EXPR TAOS_DEF_ERROR_CODE(0, 0x2675)
#define TSDB_CODE_PAR_INTERNAL_ERROR TAOS_DEF_ERROR_CODE(0, 0x26FF)
//planner

View File

@ -2821,7 +2821,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) {
CTG_ERR_RET((*gCtgAsyncFps[pTask->type].launchFp)(pTask));
pTask = taosArrayGet(pJob->pTasks, i);
pTask->status = CTG_TASK_LAUNCHED;
atomic_val_compare_exchange_32((int32_t*)&pTask->status, 0, CTG_TASK_LAUNCHED);
}
if (taskNum <= 0) {

View File

@ -56,6 +56,7 @@ extern "C" {
#define EXPLAIN_ON_CONDITIONS_FORMAT "Join Cond: "
#define EXPLAIN_TIMERANGE_FORMAT "Time Range: [%" PRId64 ", %" PRId64 "]"
#define EXPLAIN_OUTPUT_FORMAT "Output: "
#define EXPLAIN_JOIN_PARAM_FORMAT "Join Param: "
#define EXPLAIN_TIME_WINDOWS_FORMAT "Time Window: interval=%" PRId64 "%c offset=%" PRId64 "%c sliding=%" PRId64 "%c"
#define EXPLAIN_WINDOW_FORMAT "Window: gap=%" PRId64
#define EXPLAIN_RATIO_TIME_FORMAT "Ratio: %f"
@ -93,7 +94,6 @@ extern "C" {
#define EXPLAIN_SCAN_MODE_FORMAT "mode=%s"
#define EXPLAIN_SCAN_DATA_LOAD_FORMAT "data_load=%s"
#define EXPLAIN_GROUPS_FORMAT "groups=%d"
#define EXPLAIN_WIDTH_FORMAT "width=%d"
#define EXPLAIN_INTERVAL_VALUE_FORMAT "interval=%" PRId64 "%c"
#define EXPLAIN_FUNCTIONS_FORMAT "functions=%d"
#define EXPLAIN_EXECINFO_FORMAT "cost=%.3f..%.3f rows=%" PRIu64
@ -112,6 +112,11 @@ extern "C" {
#define EXPLAIN_SRC_SCAN_FORMAT "src_scan=%d,%d"
#define EXPLAIN_PLAN_BLOCKING "blocking=%d"
#define EXPLAIN_MERGE_MODE_FORMAT "mode=%s"
#define EXPLAIN_ASOF_OP_FORMAT "asof_op='%s'"
#define EXPLAIN_WIN_OFFSET_FORMAT "window_offset=(%s, %s)"
#define EXPLAIN_JLIMIT_FORMAT "jlimit=%" PRId64
#define EXPLAIN_SEQ_WIN_GRP_FORMAT "seq_win_grp=%d"
#define EXPLAIN_GRP_JOIN_FORMAT "group_join=%d"
#define COMMAND_RESET_LOG "resetLog"
#define COMMAND_SCHEDULE_POLICY "schedulePolicy"

View File

@ -22,6 +22,14 @@
#include "systable.h"
#include "functionMgt.h"
char *gJoinTypeStr[JOIN_TYPE_MAX_VALUE][JOIN_STYPE_MAX_VALUE] = {
/* NONE OUTER SEMI ANTI ASOF WINDOW */
/*INNER*/ {"Inner Join", NULL, NULL, NULL, NULL, NULL},
/*LEFT*/ {"Left Join", "Left Join", "Left Semi Join", "Left Anti Join", "Left ASOF Join", "Left Window Join"},
/*RIGHT*/ {"Right Join", "Right Join", "Right Semi Join", "Right Anti Join", "Right ASOF Join", "Right Window Join"},
/*FULL*/ {"Full Join", "Full Join", NULL, NULL, NULL, NULL},
};
int32_t qExplainGenerateResNode(SPhysiNode *pNode, SExplainGroup *group, SExplainResNode **pRes);
int32_t qExplainAppendGroupResRows(void *pCtx, int32_t groupId, int32_t level, bool singleChannel);
@ -36,6 +44,24 @@ char *qExplainGetDynQryCtrlType(EDynQueryType type) {
return "unknown task";
}
char* qExplainGetAsofOpStr(int32_t opType) {
switch (opType) {
case OP_TYPE_GREATER_THAN:
return ">";
case OP_TYPE_GREATER_EQUAL:
return ">=";
case OP_TYPE_LOWER_THAN:
return "<";
case OP_TYPE_LOWER_EQUAL:
return "<=";
case OP_TYPE_EQUAL:
return "=";
default:
return "UNKNOWN";
}
}
void qExplainFreeResNode(SExplainResNode *resNode) {
if (NULL == resNode) {
return;
@ -593,7 +619,7 @@ int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, i
}
case QUERY_NODE_PHYSICAL_PLAN_MERGE_JOIN: {
SSortMergeJoinPhysiNode *pJoinNode = (SSortMergeJoinPhysiNode *)pNode;
EXPLAIN_ROW_NEW(level, EXPLAIN_JOIN_FORMAT, EXPLAIN_JOIN_STRING(pJoinNode->joinType));
EXPLAIN_ROW_NEW(level, EXPLAIN_JOIN_FORMAT, gJoinTypeStr[pJoinNode->joinType][pJoinNode->subType]);
EXPLAIN_ROW_APPEND(EXPLAIN_LEFT_PARENTHESIS_FORMAT);
if (pResNode->pExecInfo) {
QRY_ERR_RET(qExplainBufAppendExecInfo(pResNode->pExecInfo, tbuf, &tlen));
@ -620,6 +646,36 @@ int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, i
EXPLAIN_ROW_END();
QRY_ERR_RET(qExplainResAppendRow(ctx, tbuf, tlen, level + 1));
if (IS_ASOF_JOIN(pJoinNode->subType) || IS_WINDOW_JOIN(pJoinNode->subType)) {
EXPLAIN_ROW_NEW(level + 1, EXPLAIN_JOIN_PARAM_FORMAT);
if (IS_ASOF_JOIN(pJoinNode->subType)) {
EXPLAIN_ROW_APPEND(EXPLAIN_ASOF_OP_FORMAT, qExplainGetAsofOpStr(pJoinNode->asofOpType));
EXPLAIN_ROW_APPEND(EXPLAIN_BLANK_FORMAT);
}
if (NULL != pJoinNode->pWindowOffset) {
SWindowOffsetNode* pWinOffset = (SWindowOffsetNode*)pJoinNode->pWindowOffset;
SValueNode* pStart = (SValueNode*)pWinOffset->pStartOffset;
SValueNode* pEnd = (SValueNode*)pWinOffset->pEndOffset;
EXPLAIN_ROW_APPEND(EXPLAIN_WIN_OFFSET_FORMAT, pStart->literal, pEnd->literal);
EXPLAIN_ROW_APPEND(EXPLAIN_BLANK_FORMAT);
}
if (NULL != pJoinNode->pJLimit) {
SLimitNode* pJLimit = (SLimitNode*)pJoinNode->pJLimit;
EXPLAIN_ROW_APPEND(EXPLAIN_JLIMIT_FORMAT, pJLimit->limit);
EXPLAIN_ROW_APPEND(EXPLAIN_BLANK_FORMAT);
}
if (IS_WINDOW_JOIN(pJoinNode->subType)) {
EXPLAIN_ROW_APPEND(EXPLAIN_SEQ_WIN_GRP_FORMAT, pJoinNode->seqWinGroup);
EXPLAIN_ROW_APPEND(EXPLAIN_BLANK_FORMAT);
}
EXPLAIN_ROW_APPEND(EXPLAIN_GRP_JOIN_FORMAT, pJoinNode->grpJoin);
EXPLAIN_ROW_APPEND(EXPLAIN_BLANK_FORMAT);
EXPLAIN_ROW_END();
QRY_ERR_RET(qExplainResAppendRow(ctx, tbuf, tlen, level + 1));
}
if (pJoinNode->node.pConditions) {
EXPLAIN_ROW_NEW(level + 1, EXPLAIN_FILTER_FORMAT);
QRY_ERR_RET(nodesNodeToSQL(pJoinNode->node.pConditions, tbuf + VARSTR_HEADER_SIZE,
@ -1580,7 +1636,7 @@ int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, i
}
case QUERY_NODE_PHYSICAL_PLAN_HASH_JOIN:{
SHashJoinPhysiNode *pJoinNode = (SHashJoinPhysiNode *)pNode;
EXPLAIN_ROW_NEW(level, EXPLAIN_JOIN_FORMAT, EXPLAIN_JOIN_STRING(pJoinNode->joinType));
EXPLAIN_ROW_NEW(level, EXPLAIN_JOIN_FORMAT, gJoinTypeStr[pJoinNode->joinType][pJoinNode->subType]);
EXPLAIN_ROW_APPEND(EXPLAIN_LEFT_PARENTHESIS_FORMAT);
if (pResNode->pExecInfo) {
QRY_ERR_RET(qExplainBufAppendExecInfo(pResNode->pExecInfo, tbuf, &tlen));

View File

@ -19,8 +19,8 @@
extern "C" {
#endif
#if 0
#define MJOIN_DEFAULT_BLK_ROWS_NUM 2 //4096
#if 1
#define MJOIN_DEFAULT_BLK_ROWS_NUM 3 //4096
#define MJOIN_HJOIN_CART_THRESHOLD 10
#define MJOIN_BLK_SIZE_LIMIT 0 //10485760
#define MJOIN_ROW_BITMAP_SIZE (2 * 1048576)

View File

@ -48,7 +48,7 @@ static void destroyStbJoinTableList(SStbJoinTableList* pListHead) {
}
static void destroyStbJoinDynCtrlInfo(SStbJoinDynCtrlInfo* pStbJoin) {
qError("dynQueryCtrl exec info, prevBlk:%" PRId64 ", prevRows:%" PRId64 ", postBlk:%" PRId64 ", postRows:%" PRId64 ", leftCacheNum:%" PRId64 ", rightCacheNum:%" PRId64,
qDebug("dynQueryCtrl exec info, prevBlk:%" PRId64 ", prevRows:%" PRId64 ", postBlk:%" PRId64 ", postRows:%" PRId64 ", leftCacheNum:%" PRId64 ", rightCacheNum:%" PRId64,
pStbJoin->execInfo.prevBlkNum, pStbJoin->execInfo.prevBlkRows, pStbJoin->execInfo.postBlkNum,
pStbJoin->execInfo.postBlkRows, pStbJoin->execInfo.leftCacheNum, pStbJoin->execInfo.rightCacheNum);
@ -432,7 +432,7 @@ static int32_t buildSeqStbJoinOperatorParam(SDynQueryCtrlOperatorInfo* pInfo, SS
int64_t* rightUid = pPrev->pListHead->pRightUid + rowIdx;
int32_t code = TSDB_CODE_SUCCESS;
qError("start %" PRId64 ":%" PRId64 "th stbJoin, left:%d,%" PRIu64 " - right:%d,%" PRIu64,
qDebug("start %" PRId64 ":%" PRId64 "th stbJoin, left:%d,%" PRIu64 " - right:%d,%" PRIu64,
rowIdx, pPrev->tableNum, *leftVg, *leftUid, *rightVg, *rightUid);
updatePostJoinCurrTableInfo(&pInfo->stbJoin);
@ -524,7 +524,7 @@ static int32_t notifySeqJoinTableCacheEnd(SOperatorInfo* pOperator, SStbJoinPost
int32_t vgId = leftTable ? pPost->leftVgId : pPost->rightVgId;
int64_t uid = leftTable ? pPost->leftCurrUid : pPost->rightCurrUid;
qError("notify table %" PRIu64 " in vgId %d downstreamId %d cache end", uid, vgId, downstreamId);
qDebug("notify table %" PRIu64 " in vgId %d downstreamId %d cache end", uid, vgId, downstreamId);
int32_t code = buildGroupCacheNotifyOperatorParam(&pGcParam, downstreamId, vgId, uid);
if (TSDB_CODE_SUCCESS != code) {
@ -758,7 +758,7 @@ static void postProcessStbJoinTableHash(SOperatorInfo* pOperator) {
}
pStbJoin->execInfo.leftCacheNum = tSimpleHashGetSize(pStbJoin->ctx.prev.leftCache);
qError("more than 1 ref build table num %" PRId64, (int64_t)tSimpleHashGetSize(pStbJoin->ctx.prev.leftCache));
qDebug("more than 1 ref build table num %" PRId64, (int64_t)tSimpleHashGetSize(pStbJoin->ctx.prev.leftCache));
// debug only
iter = 0;

View File

@ -1143,7 +1143,7 @@ int32_t getTableList(void* pVnode, SScanPhysiNode* pScanNode, SNode* pTagCond, S
if (code != 0 || status == SFLT_NOT_INDEX) { // temporarily disable it for performance sake
qDebug("failed to get tableIds from index, suid:%" PRIu64, pScanNode->uid);
} else {
qInfo("succ to get filter result, table num: %d", (int)taosArrayGetSize(pUidList));
qDebug("succ to get filter result, table num: %d", (int)taosArrayGetSize(pUidList));
}
}
}

View File

@ -348,7 +348,7 @@ static int32_t addBlkToDirtyBufList(SGroupCacheOperatorInfo* pGCache, SGcDownstr
taosWLockLatch(&pCache->dirtyLock);
pCache->blkCacheSize += pBufInfo->basic.bufSize;
qError("group cache total dirty block num:%d size:%" PRId64 , taosHashGetSize(pCache->pDirtyBlk), pCache->blkCacheSize);
qDebug("group cache total dirty block num:%d size:%" PRId64 , taosHashGetSize(pCache->pDirtyBlk), pCache->blkCacheSize);
if (NULL == pCache->pDirtyHead) {
pCache->pDirtyHead = pBufInfo;
@ -664,7 +664,7 @@ static FORCE_INLINE int32_t getBlkFromDownstreamOperator(struct SOperatorInfo* p
}
if (pBlock) {
qError("%s blk retrieved from group %" PRIu64, GET_TASKID(pOperator->pTaskInfo), pBlock->info.id.groupId);
qDebug("%s blk retrieved from group %" PRIu64, GET_TASKID(pOperator->pTaskInfo), pBlock->info.id.groupId);
pGCache->execInfo.pDownstreamBlkNum[downstreamIdx]++;
if (NULL == pGCache->pDownstreams[downstreamIdx].pBaseBlock) {
@ -803,7 +803,7 @@ static int32_t addNewGroupData(struct SOperatorInfo* pOperator, SOperatorParam*
}
initNewGroupData(pCtx, *ppGrp, pParam->downstreamIdx, vgId, pGCache->batchFetch, pGcParam->needCache);
qError("new group %" PRIu64 " initialized, downstreamIdx:%d, vgId:%d, needCache:%d", uid, pParam->downstreamIdx, vgId, pGcParam->needCache);
qDebug("new group %" PRIu64 " initialized, downstreamIdx:%d, vgId:%d, needCache:%d", uid, pParam->downstreamIdx, vgId, pGcParam->needCache);
if (pParam->pChildren) {
SGcNewGroupInfo newGroup;
@ -832,7 +832,7 @@ static int32_t addBlkToGroupCache(bool batchFetch, SGroupCacheData* pGroup, SGcB
*pIdx = taosArrayGetSize(pGroup->blkList.pList) - 1;
taosWUnLockLatch(&pGroup->blkList.lock);
qError("block added to group cache, total block num:%" PRId64, *pIdx + 1);
qDebug("block added to group cache, total block num:%" PRId64, *pIdx + 1);
return TSDB_CODE_SUCCESS;
}
@ -870,7 +870,7 @@ static int32_t handleGroupCacheRetrievedBlk(struct SOperatorInfo* pOperator, SSD
}
if (pGroup->needCache) {
qError("add block to group cache");
qDebug("add block to group cache");
SGcBlkBufInfo newBlkBuf;
code = addBlkToBufCache(pOperator, pBlock, pCtx, pGroup, &newBlkBuf);
@ -883,7 +883,7 @@ static int32_t handleGroupCacheRetrievedBlk(struct SOperatorInfo* pOperator, SSD
return code;
}
} else {
qError("no need to add block to group cache");
qDebug("no need to add block to group cache");
pGroup->pBlock = pBlock;
}
@ -1176,11 +1176,11 @@ static int32_t getBlkFromGroupCache(struct SOperatorInfo* pOperator, SSDataBlock
code = getBlkFromSessionCache(pOperator, pGcParam->sessionId, pSession, ppRes);
if (NULL == *ppRes) {
qError("session %" PRId64 " in downstream %d total got %" PRId64 " rows", pGcParam->sessionId, pCtx->id, pSession->resRows);
qDebug("session %" PRId64 " in downstream %d total got %" PRId64 " rows", pGcParam->sessionId, pCtx->id, pSession->resRows);
taosHashRemove(pCtx->pSessions, &pGcParam->sessionId, sizeof(pGcParam->sessionId));
} else {
pSession->resRows += (*ppRes)->info.rows;
qError("session %" PRId64 " in downstream %d got %" PRId64 " rows in one block", pGcParam->sessionId, pCtx->id, (*ppRes)->info.rows);
qDebug("session %" PRId64 " in downstream %d got %" PRId64 " rows in one block", pGcParam->sessionId, pCtx->id, (*ppRes)->info.rows);
}
return code;

View File

@ -299,7 +299,7 @@ static void destroyHJoinKeyHash(SSHashObj** ppHash) {
static void destroyHashJoinOperator(void* param) {
SHJoinOperatorInfo* pJoinOperator = (SHJoinOperatorInfo*)param;
qError("hashJoin exec info, buildBlk:%" PRId64 ", buildRows:%" PRId64 ", probeBlk:%" PRId64 ", probeRows:%" PRId64 ", resRows:%" PRId64,
qDebug("hashJoin exec info, buildBlk:%" PRId64 ", buildRows:%" PRId64 ", probeBlk:%" PRId64 ", probeRows:%" PRId64 ", resRows:%" PRId64,
pJoinOperator->execInfo.buildBlkNum, pJoinOperator->execInfo.buildBlkRows, pJoinOperator->execInfo.probeBlkNum,
pJoinOperator->execInfo.probeBlkRows, pJoinOperator->execInfo.resRows);
@ -756,7 +756,7 @@ static void setHJoinDone(struct SOperatorInfo* pOperator) {
SHJoinOperatorInfo* pInfo = pOperator->info;
destroyHJoinKeyHash(&pInfo->pKeyHash);
qError("hash Join done");
qDebug("hash Join done");
}
static SSDataBlock* doHashJoin(struct SOperatorInfo* pOperator) {
@ -916,7 +916,7 @@ SOperatorInfo* createHashJoinOperatorInfo(SOperatorInfo** pDownstream, int32_t n
pOperator->fpSet = createOperatorFpSet(optrDummyOpenFn, doHashJoin, NULL, destroyHashJoinOperator, optrDefaultBufFn, NULL, optrDefaultGetNextExtFn, NULL);
qError("create hash Join operator done");
qDebug("create hash Join operator done");
return pOperator;

View File

@ -2632,12 +2632,13 @@ static FORCE_INLINE void mWinJoinPopFrontGroup(SMJoinWindowCtx* pCtx, SMJoinGrpR
static int32_t mWinJoinCloneCacheBlk(SMJoinWindowCtx* pCtx) {
SMJoinWinCache* pCache = &pCtx->cache;
int32_t grpNum = taosArrayGetSize(pCache->grps);
SArray* pGrpArray = (NULL != pCache->grps) ? pCache->grps : pCache->grpsQueue;
int32_t grpNum = taosArrayGetSize(pGrpArray);
if (grpNum <= 0) {
return TSDB_CODE_SUCCESS;
}
SMJoinGrpRows* pGrp = (SMJoinGrpRows*)taosArrayGetLast(pCache->grps);
SMJoinGrpRows* pGrp = (SMJoinGrpRows*)taosArrayGetLast(pGrpArray);
if (!pGrp->clonedBlk) {
if (0 == pGrp->beginIdx) {
pGrp->blk = createOneDataBlock(pGrp->blk, true);

View File

@ -929,7 +929,7 @@ static int32_t createTableListInfoFromParam(SOperatorInfo* pOperator) {
return TSDB_CODE_INVALID_PARA;
}
qError("vgId:%d add total %d dynamic tables to scan, tableSeq:%d, exist num:%" PRId64 ", operator status:%d",
qDebug("vgId:%d add total %d dynamic tables to scan, tableSeq:%d, exist num:%" PRId64 ", operator status:%d",
pTaskInfo->id.vgId, num, pParam->tableSeq, (int64_t)taosArrayGetSize(pListInfo->pTableList), pOperator->status);
if (pParam->tableSeq) {
@ -963,7 +963,7 @@ static int32_t createTableListInfoFromParam(SOperatorInfo* pOperator) {
}
tableIdx++;
qError("add dynamic table scan uid:%" PRIu64 ", %s", info.uid, GET_TASKID(pTaskInfo));
qDebug("add dynamic table scan uid:%" PRIu64 ", %s", info.uid, GET_TASKID(pTaskInfo));
}
return code;

View File

@ -868,7 +868,8 @@ SSDataBlock* createDummyBlock(int32_t blkId) {
p->info.id.blockId = blkId;
p->info.type = STREAM_INVALID;
p->info.calWin = (STimeWindow){.skey = INT64_MIN, .ekey = INT64_MAX};
p->info.calWin.skey = INT64_MIN;
p->info.calWin.ekey = INT64_MAX;
p->info.watermark = INT64_MIN;
for (int32_t i = 0; i < MAX_SLOT_NUM; ++i) {
@ -2442,15 +2443,18 @@ void joinTestReplaceRetrieveFp() {
AddrAny any;
std::map<std::string, void *> result;
any.get_func_addr("getNextBlockFromDownstreamRemain", result);
for (const auto &f : result) {
stub.set(f.second, getDummyInputBlock);
}
#endif
#ifdef LINUX
AddrAny any("libexecutor.so");
std::map<std::string, void *> result;
any.get_global_func_addr_dynsym("^getNextBlockFromDownstreamRemain$", result);
#endif
for (const auto &f : result) {
stub.set(f.second, getDummyInputBlock);
}
#endif
}
}
@ -2858,7 +2862,7 @@ void runSingleTest(char* caseName, SJoinTestParam* param) {
bool contLoop = true;
SSortMergeJoinPhysiNode* pNode = createDummySortMergeJoinPhysiNode(param);
createDummyBlkList(10, 10, 10, 10, 3);
createDummyBlkList(20, 20, 20, 20, 3);
while (contLoop) {
rerunBlockedHere();

View File

@ -720,6 +720,28 @@ static int32_t initTranslateContext(SParseContext* pParseCxt, SParseMetaCache* p
return TSDB_CODE_SUCCESS;
}
static int32_t resetHighLevelTranslateNamespace(STranslateContext* pCxt) {
if (NULL != pCxt->pNsLevel) {
size_t size = taosArrayGetSize(pCxt->pNsLevel);
int32_t levelNum = size - pCxt->currLevel;
if (levelNum <= 0) {
return TSDB_CODE_SUCCESS;
}
for (int32_t i = size - 1; i >= pCxt->currLevel; --i) {
taosArrayDestroy(taosArrayGetP(pCxt->pNsLevel, i));
}
taosArrayPopTailBatch(pCxt->pNsLevel, levelNum);
return TSDB_CODE_SUCCESS;
}
pCxt->pNsLevel = taosArrayInit(TARRAY_MIN_SIZE, POINTER_BYTES);
if (NULL == pCxt->pNsLevel) {
return TSDB_CODE_OUT_OF_MEMORY;
}
return TSDB_CODE_SUCCESS;
}
static int32_t resetTranslateNamespace(STranslateContext* pCxt) {
if (NULL != pCxt->pNsLevel) {
size_t size = taosArrayGetSize(pCxt->pNsLevel);
@ -5384,6 +5406,8 @@ static int32_t appendTsForImplicitTsFunc(STranslateContext* pCxt, SSelectStmt* p
typedef struct SReplaceOrderByAliasCxt {
STranslateContext* pTranslateCxt;
SNodeList* pProjectionList;
bool nameMatch;
bool notFound;
} SReplaceOrderByAliasCxt;
static EDealRes replaceOrderByAliasImpl(SNode** pNode, void* pContext) {
@ -5393,8 +5417,8 @@ static EDealRes replaceOrderByAliasImpl(SNode** pNode, void* pContext) {
if (QUERY_NODE_COLUMN == nodeType(*pNode)) {
FOREACH(pProject, pProjectionList) {
SExprNode* pExpr = (SExprNode*)pProject;
if (0 == strcmp(((SColumnRefNode*)*pNode)->colName, pExpr->userAlias) && nodeType(*pNode) == nodeType(pProject)) {
if (QUERY_NODE_COLUMN == nodeType(pProject) && !nodesEqualNode(*pNode, pProject)) {
if (0 == strcmp(((SColumnNode*)*pNode)->colName, pExpr->userAlias)) {
if (!pCxt->nameMatch && (nodeType(*pNode) != nodeType(pProject) || (QUERY_NODE_COLUMN == nodeType(pProject) && !nodesEqualNode(*pNode, pProject)))) {
continue;
}
SNode* pNew = nodesCloneNode(pProject);
@ -5408,6 +5432,8 @@ static EDealRes replaceOrderByAliasImpl(SNode** pNode, void* pContext) {
return DEAL_RES_CONTINUE;
}
}
pCxt->notFound = true;
} else if (QUERY_NODE_ORDER_BY_EXPR == nodeType(*pNode)) {
STranslateContext* pTransCxt = pCxt->pTranslateCxt;
SNode* pExpr = ((SOrderByExprNode*)*pNode)->pExpr;
@ -5434,12 +5460,16 @@ static EDealRes replaceOrderByAliasImpl(SNode** pNode, void* pContext) {
return DEAL_RES_CONTINUE;
}
static int32_t replaceOrderByAlias(STranslateContext* pCxt, SNodeList* pProjectionList, SNodeList* pOrderByList) {
static int32_t replaceOrderByAlias(STranslateContext* pCxt, SNodeList* pProjectionList, SNodeList* pOrderByList, bool checkExists, bool nameMatch) {
if (NULL == pOrderByList) {
return TSDB_CODE_SUCCESS;
}
SReplaceOrderByAliasCxt cxt = {.pTranslateCxt = pCxt, .pProjectionList = pProjectionList};
SReplaceOrderByAliasCxt cxt = {.pTranslateCxt = pCxt, .pProjectionList = pProjectionList, .nameMatch = nameMatch, .notFound = false};
nodesRewriteExprsPostOrder(pOrderByList, replaceOrderByAliasImpl, &cxt);
if (checkExists && cxt.notFound) {
return TSDB_CODE_PAR_ORDERBY_UNKNOWN_EXPR;
}
return pCxt->errCode;
}
@ -5458,7 +5488,7 @@ static void resetResultTimeline(SSelectStmt* pSelect) {
}
static int32_t replaceOrderByAliasForSelect(STranslateContext* pCxt, SSelectStmt* pSelect) {
int32_t code = replaceOrderByAlias(pCxt, pSelect->pProjectionList, pSelect->pOrderByList);
int32_t code = replaceOrderByAlias(pCxt, pSelect->pProjectionList, pSelect->pOrderByList, false, false);
if (TSDB_CODE_SUCCESS == pCxt->errCode) {
resetResultTimeline(pSelect);
}
@ -5599,10 +5629,16 @@ static int32_t translateSetOperProject(STranslateContext* pCxt, SSetOperator* pS
}
snprintf(pRightExpr->aliasName, sizeof(pRightExpr->aliasName), "%s", pLeftExpr->aliasName);
SNode* pProj = createSetOperProject(pSetOperator->stmtName, pLeft);
if (QUERY_NODE_COLUMN == nodeType(pLeft) && QUERY_NODE_COLUMN == nodeType(pRight) &&
((SColumnNode*)pLeft)->colId == PRIMARYKEY_TIMESTAMP_COL_ID &&
((SColumnNode*)pRight)->colId == PRIMARYKEY_TIMESTAMP_COL_ID) {
((SColumnNode*)pProj)->colId = PRIMARYKEY_TIMESTAMP_COL_ID;
if (QUERY_NODE_COLUMN == nodeType(pLeft) && QUERY_NODE_COLUMN == nodeType(pRight)) {
SColumnNode* pLCol = (SColumnNode*)pLeft;
SColumnNode* pRCol = (SColumnNode*)pRight;
SColumnNode* pFCol = (SColumnNode*)pProj;
if (pLCol->colId == PRIMARYKEY_TIMESTAMP_COL_ID && pRCol->colId == PRIMARYKEY_TIMESTAMP_COL_ID) {
pFCol->colId = PRIMARYKEY_TIMESTAMP_COL_ID;
if (pLCol->isPrimTs && pRCol->isPrimTs) {
pFCol->isPrimTs = true;
}
}
}
if (TSDB_CODE_SUCCESS != nodesListMakeStrictAppend(&pSetOperator->pProjectionList, pProj)) {
return TSDB_CODE_OUT_OF_MEMORY;
@ -5622,6 +5658,7 @@ static int32_t translateSetOperOrderBy(STranslateContext* pCxt, SSetOperator* pS
bool other;
int32_t code = translateOrderByPosition(pCxt, pSetOperator->pProjectionList, pSetOperator->pOrderByList, &other);
/*
if (TSDB_CODE_SUCCESS == code) {
if (other) {
pCxt->currClause = SQL_CLAUSE_ORDER_BY;
@ -5629,8 +5666,9 @@ static int32_t translateSetOperOrderBy(STranslateContext* pCxt, SSetOperator* pS
code = translateExprList(pCxt, pSetOperator->pOrderByList);
}
}
*/
if (TSDB_CODE_SUCCESS == code) {
code = replaceOrderByAlias(pCxt, pSetOperator->pProjectionList, pSetOperator->pOrderByList);
code = replaceOrderByAlias(pCxt, pSetOperator->pProjectionList, pSetOperator->pOrderByList, true, true);
}
if (TSDB_CODE_SUCCESS == code) {
SNode* pOrder = ((SOrderByExprNode*)nodesListGetNode(pSetOperator->pOrderByList, 0))->pExpr;
@ -5653,7 +5691,7 @@ static int32_t checkSetOperLimit(STranslateContext* pCxt, SLimitNode* pLimit) {
static int32_t translateSetOperator(STranslateContext* pCxt, SSetOperator* pSetOperator) {
int32_t code = translateQuery(pCxt, pSetOperator->pLeft);
if (TSDB_CODE_SUCCESS == code) {
code = resetTranslateNamespace(pCxt);
code = resetHighLevelTranslateNamespace(pCxt);
}
if (TSDB_CODE_SUCCESS == code) {
code = translateQuery(pCxt, pSetOperator->pRight);

View File

@ -1334,7 +1334,7 @@ static int32_t pdcDealJoin(SOptimizeContext* pCxt, SJoinLogicNode* pJoin) {
}
}
if (TSDB_CODE_SUCCESS == code && NULL != pJoin->pFullOnCond && !IS_WINDOW_JOIN(pJoin->subType)) {
if (TSDB_CODE_SUCCESS == code && NULL != pJoin->pFullOnCond && !IS_WINDOW_JOIN(pJoin->subType) && NULL == pJoin->addPrimEqCond) {
code = pdcJoinSplitPrimEqCond(pCxt, pJoin);
}

View File

@ -1569,7 +1569,13 @@ static int32_t unionSplitSubplan(SSplitContext* pCxt, SLogicSubplan* pUnionSubpl
++(pCxt->groupId);
}
if (TSDB_CODE_SUCCESS == code) {
nodesDestroyList(pSubplanChildren);
if (NULL != pSubplanChildren) {
if (pSubplanChildren->length > 0) {
nodesListMakeStrictAppendList(&pUnionSubplan->pChildren, pSubplanChildren);
} else {
nodesDestroyList(pSubplanChildren);
}
}
NODES_DESTORY_LIST(pSplitNode->pChildren);
}
return code;

View File

@ -234,7 +234,7 @@ int32_t schUpdateHbConnection(SQueryNodeEpId *epId, SSchTrans *trans) {
hb = taosHashGet(schMgmt.hbConnections, epId, sizeof(SQueryNodeEpId));
if (NULL == hb) {
SCH_UNLOCK(SCH_READ, &schMgmt.hbLock);
qInfo("taosHashGet hb connection not exists, nodeId:%d, fqdn:%s, port:%d", epId->nodeId, epId->ep.fqdn,
qDebug("taosHashGet hb connection not exists, nodeId:%d, fqdn:%s, port:%d", epId->nodeId, epId->ep.fqdn,
epId->ep.port);
SCH_ERR_RET(TSDB_CODE_APP_ERROR);
}

View File

@ -631,6 +631,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INVALID_WJOIN_HAVING_EXPR, "Invalid window join
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_GRP_WINDOW_NOT_ALLOWED, "GROUP BY/PARTITION BY/WINDOW-clause can't be used in WINDOW join")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INVALID_WIN_OFFSET_UNIT, "Invalid window offset unit")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_VALID_PRIM_TS_REQUIRED, "Valid primary timestamp required")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_ORDERBY_UNKNOWN_EXPR, "Unknown expr in order by clause")
//planner
TAOS_DEFINE_ERROR(TSDB_CODE_PLAN_INTERNAL_ERROR, "Planner internal error")

View File

@ -185,3 +185,13 @@ if $data11 != @23-11-17 16:29:04.000@ then
return -1
endi
sql select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
if $rows != 6 then
return -1
endi
sql select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
if $rows != 144 then
return -1
endi

View File

@ -73,6 +73,7 @@ run tsim/join/join_scalar.sim
run tsim/join/join_timeline.sim
run tsim/join/join_nested.sim
run tsim/join/join_boundary.sim
run tsim/join/join_explain.sim
print ================== restart server to commit data into disk
system sh/exec.sh -n dnode1 -s stop -x SIGINT
@ -95,5 +96,6 @@ run tsim/join/join_scalar.sim
run tsim/join/join_timeline.sim
run tsim/join/join_nested.sim
run tsim/join/join_boundary.sim
run tsim/join/join_explain.sim
system sh/exec.sh -n dnode1 -s stop -x SIGINT

View File

@ -44,6 +44,18 @@ sql select b.col1 from sta a ,sta b where a.ts=b.ts and a.col1 + 1 = b.col1 orde
sql select b.col1 from sta a join sta b join sta c where a.ts=b.ts and b.ts = c.ts order by a.ts;
sql select b.col1 from (select ts from sta) a join (select ts, col1 from sta) b join sta c where a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a join sta b join sta c where a.ts=b.ts and a.ts = b.ts order by a.ts;
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by col1;
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by col1;
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by 1;
sql (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts)) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) d on c.ts = d.ts;
sql select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql select a.ts from test0.sta a ,testb.stb1 b where a.ts=b.ts;
#left join
@ -67,6 +79,18 @@ sql select b.col1 from (select ts from sta) a left join (select ts, col1 from st
sql_error select b.col1 from (select ts from sta) a left join (select ts, col1 from sta) b left join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a left join sta b left join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a left join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts)) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left semi join
sql_error select a.ts from sta a left semi join sta b;
@ -90,6 +114,18 @@ sql select b.col1 from (select ts from sta) a left semi join (select ts, col1 fr
sql_error select b.col1 from (select ts from sta) a left semi join (select ts, col1 from sta) b left semi join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a left semi join sta b left semi join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a left semi join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts)) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left anti join
sql_error select a.ts from sta a left anti join sta b;
@ -113,6 +149,20 @@ sql select b.col1 from (select ts from sta) a left anti join (select ts, col1 fr
sql_error select b.col1 from (select ts from sta) a left anti join (select ts, col1 from sta) b left anti join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a left anti join sta b left anti join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a left anti join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts)) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left asof join
sql select a.ts from sta a left asof join sta b;
@ -121,6 +171,7 @@ sql_error select a.ts from sta a left asof join sta b on a.ts = b.ts and a.ts =
sql_error select a.ts from sta a left asof join sta b on a.ts = b.ts or a.col1 = b.col1;
sql select a.ts from sta a left asof join sta b on a.ts = b.ts and a.col1 = b.col1;
sql select a.ts from sta a left asof join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql select a.col1 from sta a left asof join sta b on a.col1=b.col1 and a.t1 = b.t1;
sql select a.ts from sta a left asof join sta b where a.ts = b.ts;
sql select a.ts from sta a left asof join sta b where a.ts = b.ts or a.ts = b.ts;
sql select a.ts from sta a left asof join sta b on a.col1 = b.col1;
@ -146,6 +197,18 @@ sql_error select b.col1 from (select ts from sta) a left asof join (select ts, c
sql_error select b.col1 from (select ts from sta) a left asof join (select ts, col1 from sta) b left asof join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a left asof join sta b left asof join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a left asof join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts)) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left window join
sql_error select a.ts from sta a left window join sta b;
@ -233,27 +296,302 @@ sql select diff(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s)
sql select csum(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s);
sql_error select interp(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s) RANGE(now -1d, now) every(1s) fill(null);
sql_error select a.col1, b.col1, count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where count(a.col1) > 0;
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts);
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts);
sql_error (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by a.ts;
sql_error (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by a.ts;
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by col1;
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by col1;
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by 1;
sql (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by 1;
sql_error select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s))) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
#right join
sql_error select a.ts from sta a right join sta b;
sql_error select a.ts from sta a right join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right join sta b on a.col1 = b.col1;
sql_error select a.ts from sta a right join sta b on a.col1 is not NULL;
sql_error select a.ts from sta a right join sta b on a.ts + 1 = b.col1;
sql_error select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error select a.ts from sta a right join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error select a.ts from sta a right join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error select a.ts from sta a right join sta b where a.ts = b.ts;
sql_error select b.col1 from sta a right join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from sta a right join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from (select ts from sta) a right join (select ts, col1 from sta) b on a.ts = b.ts order by a.ts;
sql_error select b.col1 from (select ts from sta) a right join (select ts, col1 from sta) b right join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a right join sta b right join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a right join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts)) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right semi join
sql_error select a.ts from sta a right semi join sta b;
sql_error select a.ts from sta a right semi join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right semi join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right semi join sta b on a.col1 = b.col1;
sql_error select a.ts from sta a right semi join sta b on a.col1 like '1';
sql_error select a.ts from sta a right semi join sta b on a.col1 is null;
sql_error select a.ts from sta a right semi join sta b on a.ts + 1 = b.col1;
sql_error select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error select a.ts from sta a right semi join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error select a.ts from sta a right semi join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error select a.ts from sta a right semi join sta b where a.ts = b.ts;
sql_error select b.col1 from sta a right semi join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from sta a right semi join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from (select ts from sta) a right semi join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error select b.col1 from (select ts from sta) a right semi join (select ts, col1 from sta) b right semi join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a right semi join sta b right semi join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a right semi join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts)) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right anti join
sql_error select a.ts from sta a right anti join sta b;
sql_error select a.ts from sta a right anti join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right anti join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right anti join sta b on a.col1 = b.col1;
sql_error select a.ts from sta a right anti join sta b on a.col1 / 1;
sql_error select a.ts from sta a right anti join sta b on a.col1 is null;
sql_error select a.ts from sta a right anti join sta b on a.ts + 1 = b.col1;
sql_error select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error select a.ts from sta a right anti join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error select a.ts from sta a right anti join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error select a.ts from sta a right anti join sta b where a.ts = b.ts;
sql_error select b.col1 from sta a right anti join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from sta a right anti join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from (select ts from sta) a right anti join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error select b.col1 from (select ts from sta) a right anti join (select ts, col1 from sta) b right anti join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a right anti join sta b right anti join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a right anti join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts)) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right asof join
sql select a.ts from sta a right asof join sta b;
sql_error select a.ts from sta a right asof join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right asof join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error select a.ts from sta a right asof join sta b on a.ts = b.ts or a.col1 = b.col1;
sql select a.ts from sta a right asof join sta b on a.ts = b.ts and a.col1 = b.col1;
sql select a.ts from sta a right asof join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql select a.col1 from sta a right asof join sta b on a.col1 = b.col1 and a.t1 = b.t1;
sql select a.ts from sta a right asof join sta b where a.ts = b.ts;
sql select a.ts from sta a right asof join sta b where a.ts = b.ts or a.ts = b.ts;
sql select a.ts from sta a right asof join sta b on a.col1 = b.col1;
sql_error select a.ts from sta a right asof join sta b on a.ts != b.ts;
sql_error select a.ts from sta a right asof join sta b on a.ts is null;
sql_error select a.ts from sta a right asof join sta b on a.ts + 1 = b.col1;
sql select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 0;
sql select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1024;
sql_error select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1025;
sql_error select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit -1;
sql_error select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts;
sql select a.ts from sta a right asof join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql select a.ts from sta a right asof join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql select a.ts from sta a right asof join sta b where a.ts = b.ts;
sql select b.col1 from sta a right asof join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error select b.col1 from sta a right asof join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error select b.col1 from sta a right asof join sta b on a.ts = b.ts and 1 = 2 order by a.ts;
sql_error select b.col1 from (select ts from sta) a right asof join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error select b.col1 from (select ts from sta) a right asof join (select ts, col1 from sta) b right asof join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a right asof join sta b right asof join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a right asof join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts)) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right window join
sql_error select a.ts from sta a right window join sta b;
sql_error select a.ts from sta a right window join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b on a.ts = b.ts or a.col1 = b.col1;
sql_error select a.ts from sta a right window join sta b on a.ts = b.ts and a.col1 = b.col1;
sql_error select a.ts from sta a right window join sta b on a.ts = b.ts and a.col1 = b.col1 window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b on a.col1 = b.col1 and a.ts = b.ts window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b where a.ts = b.ts;
sql select a.ts from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b where a.ts = b.ts or a.ts = b.ts;
sql select a.ts from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b on a.col1 = b.col1;
sql select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s);
sql select a.ts from sta a right window join sta b on a.t1 = b.t1 window_offset(-1s,1s);
sql select a.ts from sta a right window join sta b on a.t1 = b.t1 and a.col1 = b.col1 window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on a.t1 = b.t1 or a.col1 = b.col1 window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on a.ts != b.ts;
sql_error select a.ts from sta a right window join sta b on a.ts != b.ts window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on a.ts is null;
sql_error select a.ts from sta a right window join sta b on a.ts is null window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on a.ts + 1 = b.col1;
sql_error select a.ts from sta a right window join sta b on a.ts + 1 = b.col1 window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) > b.ts window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts + 1 window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 0;
sql select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1024;
sql_error select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1025;
sql_error select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit -1;
sql select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s, 1s) jlimit 1;
sql_error select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error select a.ts from sta a right window join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1;
sql select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.ts = b.ts;
sql_error select a.ts from sta a right window join sta b where a.ts = b.ts;
sql_error select b.col1 from sta a right window join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error select b.col1 from sta a right window join sta b on a.ts = b.ts window_offset(-1s,1s) order by a.ts;
sql_error select b.col1 from sta a right window join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 window_offset(-1s,1s) order by a.ts;
sql_error select b.col1 from sta a right window join sta b on a.ts = b.ts and 1 = 2 window_offset(-1s,1s) order by a.ts;
sql_error select b.col1 from (select ts from sta) a right window join (select ts, col1 from sta) b window_offset(-1s,1s) order by a.ts;
sql_error select b.col1 from (select ts from sta) a right window join (select ts, col1 from sta) b right window join sta c window_offset(-1s,1s) order by a.ts;
sql_error select b.col1 from sta a right window join sta b right window join sta c window_offset(-1s,1s) order by a.ts;
sql_error select a.ts from test0.sta a right window join testb.stb1 b window_offset(-1s,1s);
sql select a.ts from testb.stb1 a right window join testb.stb1 b window_offset(-1s,1s);
sql_error select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit a.col1;
sql_error select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit 1 + 1;
sql_error select a.ts from sta a right window join sta b window_offset(1s,1s-1s) jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(-1a,1a) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1b,1b) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1b,1s) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1u,1u) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1u,1s) jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(-1h,1m) jlimit 1;
sql select a.ts from sta a right window join sta b window_offset(-1d,1w) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1n,1n) jlimit 1;
sql_error select a.ts from sta a right window join sta b window_offset(-1y,1y) jlimit 1;
sql connect;
sql use testb;
sql_error select a.ts from stb1 a right window join stb1 b window_offset(-1b,1b) jlimit 1;
sql_error select a.ts from stb1 a right window join stb1 b window_offset(-1b,1s) jlimit 1;
sql select a.ts from stb1 a right window join stb1 b window_offset(-1u,1u) jlimit 1;
sql select a.ts from stb1 a right window join stb1 b window_offset(-1s,1s) jlimit 1;
sql connect;
sql use test0;
sql_error select a.col1 from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 group by a.col1;
sql_error select a.col1 from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 partition by a.col1;
sql_error select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 interval(1s);
sql_error select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 session(a.ts, 1s);
sql_error select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 state_window(a.col1);
sql select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(count(a.col1) > 0);
sql_error select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(a.col1 > 0);
sql select a.col1, b.col1, count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 > 0;
sql_error select a.col1, b.col1, count(a.col1) from sta a right window join sta b window_offset(-1s,1s) where a.col1 > 0;
sql_error select diff(a.col1) from sta a right window join sta b window_offset(-1s,1s);
sql_error select csum(a.col1) from sta a right window join sta b window_offset(-1s,1s);
sql select diff(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s);
sql select csum(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s);
sql_error select interp(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s) RANGE(now -1d, now) every(1s) fill(null);
sql_error select a.col1, b.col1, count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where count(a.col1) > 0;
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts);
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts);
sql_error (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by a.ts;
sql_error (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by a.ts;
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by col1;
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by col1;
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by 1;
sql (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by 1;
sql_error select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s))) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
#full join
sql_error select a.ts from sta a full join sta b;
sql_error select a.ts from sta a full join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a full join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error select a.ts from sta a full join sta b on a.col1 = b.col1;
sql_error select a.ts from sta a full join sta b on a.col1 is not NULL;
sql_error select a.ts from sta a full join sta b on a.ts + 1 = b.col1;
sql_error select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error select a.ts from sta a full join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error select a.ts from sta a full join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error select a.ts from sta a full join sta b where a.ts = b.ts;
sql_error select b.col1 from sta a full join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from sta a full join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql select b.col1 from (select ts from sta) a full join (select ts, col1 from sta) b on a.ts = b.ts order by a.ts;
sql_error select b.col1 from (select ts from sta) a full join (select ts, col1 from sta) b full join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error select b.col1 from sta a full join sta b full join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql select a.ts from test0.sta a full join testb.stb1 b on a.ts = b.ts;
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts order by a.ts);
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts order by a.ts);
sql_error (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by a.ts;
sql_error (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by a.ts;
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by col1;
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by 1;
sql (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by 1;
sql_error select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts)) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;

View File

@ -0,0 +1,598 @@
sql connect
sql use test0;
#join type
sql_error explain analyze verbose true select a.ts from sta a outer join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a semi join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a anti join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a asof join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a window join sta b window_offset(-1s, 1s);
sql_error explain analyze verbose true select a.ts from sta a inner outer join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a inner semi join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a inner anti join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a inner asof join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a inner window join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left inner join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right inner join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full inner join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full semi join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full anti join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full asof join sta b on b.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full window join sta b window_offset(-1s, 1s);
#inner join
sql_error explain analyze verbose true select a.ts from sta a join sta b;
sql_error explain analyze verbose true select a.ts from sta a join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a join sta b on a.col1 is null;
sql_error explain analyze verbose true select a.ts from sta a join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql explain analyze verbose true select a.ts from sta a join sta b on a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) = b.ts;
sql explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) = timetruncate(b.ts, 1w);
sql_error explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql_error explain analyze verbose true select a.ts from sta a join sta b on a.col1 = b.col1 where a.col1=b.col1;
sql explain analyze verbose true select a.ts from sta a join sta b on a.col1 = b.col1 where a.ts=b.ts;
sql explain analyze verbose true select a.ts from sta a join sta b where a.ts=b.ts;
sql_error explain analyze verbose true select a.ts from sta a ,sta b on a.ts=b.ts;
sql explain analyze verbose true select a.ts from sta a ,sta b where a.ts=b.ts;
sql explain analyze verbose true select a.ts from sta a ,sta b where a.ts=b.ts and a.col1 + 1 = b.col1;
sql explain analyze verbose true select b.col1 from sta a ,sta b where a.ts=b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a join sta b join sta c where a.ts=b.ts and b.ts = c.ts order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a join (select ts, col1 from sta) b join sta c where a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a join sta b join sta c where a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a ,testb.stb1 b where a.ts=b.ts;
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts order by a.ts);
sql_error analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by a.ts;
sql_error analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union (select a.col1 from sta a join sta b where a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a join sta b where a.ts=b.ts order by a.ts) union all (select a.col1 from sta a join sta b where a.ts=b.ts) order by 1;
sql_error analyze verbose true select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts)) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) d on c.ts = d.ts;
sql_error analyze verbose true select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts)) d on c.ts = d.ts;
sql explain analyze verbose true select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql explain analyze verbose true select c.ts from ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) c join ((select a.ts from sta a join sta b where a.ts=b.ts order by a.ts) union all (select b.ts from sta a join sta b where a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left join
sql_error explain analyze verbose true select a.ts from sta a left join sta b;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.col1 is not NULL;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a left join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a left join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a left join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a left join (select ts, col1 from sta) b on a.ts = b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left join (select ts, col1 from sta) b left join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left join sta b left join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a left join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts)) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) c left join ((select a.ts from sta a left join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left semi join
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.col1 like '1';
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.col1 is null;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a left semi join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left semi join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a left semi join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a left semi join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a left semi join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left semi join (select ts, col1 from sta) b left semi join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left semi join sta b left semi join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a left semi join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left semi join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts)) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) c left semi join ((select a.ts from sta a left semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left anti join
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.col1 / 1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.col1 is null;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a left anti join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left anti join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a left anti join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a left anti join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a left anti join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left anti join (select ts, col1 from sta) b left anti join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left anti join sta b left anti join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a left anti join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left anti join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts)) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) c left anti join ((select a.ts from sta a left anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left asof join
sql explain analyze verbose true select a.ts from sta a left asof join sta b;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts = b.ts or a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts = b.ts and a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql explain analyze verbose true select a.col1 from sta a left asof join sta b on a.col1 = b.col1 and a.t1 = b.t1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a left asof join sta b where a.ts = b.ts or a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts != b.ts;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts is null;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on a.ts + 1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 0;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1024;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1025;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit -1;
sql_error explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a left asof join sta b on timetruncate(a.ts, 1d) = b.ts;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left asof join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a left asof join sta b where a.ts = b.ts;
sql explain analyze verbose true select b.col1 from sta a left asof join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left asof join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left asof join sta b on a.ts = b.ts and 1 = 2 order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left asof join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left asof join (select ts, col1 from sta) b left asof join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left asof join sta b left asof join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a left asof join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a left asof join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts)) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) c left asof join ((select a.ts from sta a left asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a left asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#left window join
sql_error explain analyze verbose true select a.ts from sta a left window join sta b;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts = b.ts or a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts = b.ts and a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts = b.ts and a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 and a.ts = b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b where a.ts = b.ts or a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.t1 = b.t1 window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.t1 = b.t1 and a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.t1 = b.t1 or a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts != b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts != b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts is null;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts is null window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.ts + 1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) > b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) = b.ts + 1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) jlimit 0;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) jlimit 1024;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) jlimit 1025;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1s,1s) jlimit -1;
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s, 1s) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a left window join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a left window join sta b window_offset(-1s,1s) where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left window join sta b on a.ts = b.ts window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left window join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left window join sta b on a.ts = b.ts and 1 = 2 window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left window join (select ts, col1 from sta) b window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a left window join (select ts, col1 from sta) b left window join sta c window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a left window join sta b left window join sta c window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select a.ts from test0.sta a left window join testb.stb1 b window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from testb.stb1 a left window join testb.stb1 b window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(1s,-1s) jlimit a.col1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(1s,-1s) jlimit 1 + 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(1s,1s-1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(1s,-1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1a,1a) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1b,1b) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1b,1s) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1u,1u) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1u,1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1h,1m) jlimit 1;
sql explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1d,1w) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1n,1n) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a left window join sta b window_offset(-1y,1y) jlimit 1;
sql connect;
sql use testb;
sql_error explain analyze verbose true select a.ts from stb1 a left window join stb1 b window_offset(-1b,1b) jlimit 1;
sql_error explain analyze verbose true select a.ts from stb1 a left window join stb1 b window_offset(-1b,1s) jlimit 1;
sql explain analyze verbose true select a.ts from stb1 a left window join stb1 b window_offset(-1u,1u) jlimit 1;
sql explain analyze verbose true select a.ts from stb1 a left window join stb1 b window_offset(-1s,1s) jlimit 1;
sql connect;
sql use test0;
sql_error explain analyze verbose true select a.col1 from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 group by a.col1;
sql_error explain analyze verbose true select a.col1 from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 partition by a.col1;
sql_error explain analyze verbose true select count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 interval(1s);
sql_error explain analyze verbose true select count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 session(a.ts, 1s);
sql_error explain analyze verbose true select count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 state_window(a.col1);
sql explain analyze verbose true select count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(count(a.col1) > 0);
sql_error explain analyze verbose true select count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(a.col1 > 0);
sql explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 > 0;
sql_error explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a left window join sta b window_offset(-1s,1s) where a.col1 > 0;
sql_error explain analyze verbose true select diff(a.col1) from sta a left window join sta b window_offset(-1s,1s);
sql_error explain analyze verbose true select csum(a.col1) from sta a left window join sta b window_offset(-1s,1s);
sql explain analyze verbose true select diff(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s);
sql explain analyze verbose true select csum(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s);
sql_error explain analyze verbose true select interp(a.col1) from tba1 a left window join tba1 b window_offset(0s,0s) RANGE(now -1d, now) every(1s) fill(null);
sql_error explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a left window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where count(a.col1) > 0;
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by col1;
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by 1;
sql explain analyze verbose true (select b.col1 from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a left window join sta b window_offset(-1s,1s)) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s))) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) c left window join ((select a.ts from sta a left window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a left window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
#right join
sql_error explain analyze verbose true select a.ts from sta a right join sta b;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.col1 is not NULL;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a right join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a right join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a right join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a right join (select ts, col1 from sta) b on a.ts = b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right join (select ts, col1 from sta) b right join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right join sta b right join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a right join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts)) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) c right join ((select a.ts from sta a right join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right semi join
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.col1 like '1';
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.col1 is null;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a right semi join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right semi join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a right semi join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a right semi join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a right semi join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right semi join (select ts, col1 from sta) b right semi join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right semi join sta b right semi join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a right semi join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right semi join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts)) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) c right semi join ((select a.ts from sta a right semi join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right semi join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right anti join
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.col1 / 1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.col1 is null;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a right anti join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right anti join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a right anti join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a right anti join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a right anti join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right anti join (select ts, col1 from sta) b right anti join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right anti join sta b right anti join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a right anti join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right anti join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts)) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) c right anti join ((select a.ts from sta a right anti join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right anti join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right asof join
sql explain analyze verbose true select a.ts from sta a right asof join sta b;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts = b.ts or a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts = b.ts and a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql explain analyze verbose true select a.col1 from sta a right asof join sta b on a.col1 = b.col1 and a.t1 = b.t1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a right asof join sta b where a.ts = b.ts or a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts != b.ts;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts is null;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on a.ts + 1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 0;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1024;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1025;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts jlimit -1;
sql_error explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a right asof join sta b on timetruncate(a.ts, 1d) = b.ts;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right asof join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a right asof join sta b where a.ts = b.ts;
sql explain analyze verbose true select b.col1 from sta a right asof join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right asof join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right asof join sta b on a.ts = b.ts and 1 = 2 order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right asof join (select ts, col1 from sta) b on a.ts=b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right asof join (select ts, col1 from sta) b right asof join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right asof join sta b right asof join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a right asof join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a right asof join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts)) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) c right asof join ((select a.ts from sta a right asof join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a right asof join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
#right window join
sql_error explain analyze verbose true select a.ts from sta a right window join sta b;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts = b.ts and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts = b.ts or a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts = b.ts and a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts = b.ts and a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 and a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 and a.ts = b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b where a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b where a.ts = b.ts or a.ts = b.ts;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.t1 = b.t1 window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.t1 = b.t1 and a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.t1 = b.t1 or a.col1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts != b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts != b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts is null;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts is null window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.ts + 1 = b.col1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) > b.ts window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts + 1 window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 0;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1024;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit 1025;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1s,1s) jlimit -1;
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s, 1s) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1;
sql explain analyze verbose true select a.ts from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a right window join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a right window join sta b window_offset(-1s,1s) where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right window join sta b on a.ts = b.ts window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right window join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right window join sta b on a.ts = b.ts and 1 = 2 window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right window join (select ts, col1 from sta) b window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a right window join (select ts, col1 from sta) b right window join sta c window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a right window join sta b right window join sta c window_offset(-1s,1s) order by a.ts;
sql_error explain analyze verbose true select a.ts from test0.sta a right window join testb.stb1 b window_offset(-1s,1s);
sql explain analyze verbose true select a.ts from testb.stb1 a right window join testb.stb1 b window_offset(-1s,1s);
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit a.col1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit 1 + 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(1s,1s-1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(1s,-1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1a,1a) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1b,1b) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1b,1s) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1u,1u) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1u,1s) jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1h,1m) jlimit 1;
sql explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1d,1w) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1n,1n) jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a right window join sta b window_offset(-1y,1y) jlimit 1;
sql connect;
sql use testb;
sql_error explain analyze verbose true select a.ts from stb1 a right window join stb1 b window_offset(-1b,1b) jlimit 1;
sql_error explain analyze verbose true select a.ts from stb1 a right window join stb1 b window_offset(-1b,1s) jlimit 1;
sql explain analyze verbose true select a.ts from stb1 a right window join stb1 b window_offset(-1u,1u) jlimit 1;
sql explain analyze verbose true select a.ts from stb1 a right window join stb1 b window_offset(-1s,1s) jlimit 1;
sql connect;
sql use test0;
sql_error explain analyze verbose true select a.col1 from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 group by a.col1;
sql_error explain analyze verbose true select a.col1 from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 partition by a.col1;
sql_error explain analyze verbose true select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 interval(1s);
sql_error explain analyze verbose true select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 session(a.ts, 1s);
sql_error explain analyze verbose true select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 = b.col1 state_window(a.col1);
sql explain analyze verbose true select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(count(a.col1) > 0);
sql_error explain analyze verbose true select count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) having(a.col1 > 0);
sql explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where a.col1 > 0;
sql_error explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a right window join sta b window_offset(-1s,1s) where a.col1 > 0;
sql_error explain analyze verbose true select diff(a.col1) from sta a right window join sta b window_offset(-1s,1s);
sql_error explain analyze verbose true select csum(a.col1) from sta a right window join sta b window_offset(-1s,1s);
sql explain analyze verbose true select diff(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s);
sql explain analyze verbose true select csum(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s);
sql_error explain analyze verbose true select interp(a.col1) from tba1 a right window join tba1 b window_offset(0s,0s) RANGE(now -1d, now) every(1s) fill(null);
sql_error explain analyze verbose true select a.col1, b.col1, count(a.col1) from sta a right window join sta b on a.col1 = b.col1 window_offset(-1s,1s) where count(a.col1) > 0;
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by col1;
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by 1;
sql explain analyze verbose true (select b.col1 from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select a.col1 from sta a right window join sta b window_offset(-1s,1s)) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s))) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s))) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) c right window join ((select a.ts from sta a right window join sta b window_offset(-1s,1s) order by a.ts) union all (select b.ts from sta a right window join sta b window_offset(-1s,1s)) order by 1) d on c.ts = d.ts;
#full join
sql_error explain analyze verbose true select a.ts from sta a full join sta b;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full join sta b where a.ts = b.ts or a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.col1 is not NULL;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.ts + 1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) > b.ts;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts + 1;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts jlimit 1;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts window_offset(-1s, 1s);
sql explain analyze verbose true select a.ts from sta a full join sta b on timetruncate(a.ts, 1d) = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.col1 = b.col1 where a.col1 = b.col1;
sql_error explain analyze verbose true select a.ts from sta a full join sta b on a.col1 = b.col1 where a.ts = b.ts;
sql_error explain analyze verbose true select a.ts from sta a full join sta b where a.ts = b.ts;
sql_error explain analyze verbose true select b.col1 from sta a full join sta b where a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from sta a full join sta b on a.ts = b.ts and a.col1 + 1 = b.col1 order by a.ts;
sql explain analyze verbose true select b.col1 from (select ts from sta) a full join (select ts, col1 from sta) b on a.ts = b.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from (select ts from sta) a full join (select ts, col1 from sta) b full join sta c on a.ts=b.ts and b.ts = c.ts order by a.ts;
sql_error explain analyze verbose true select b.col1 from sta a full join sta b full join sta c on a.ts=b.ts and a.ts = b.ts order by a.ts;
sql explain analyze verbose true select a.ts from test0.sta a full join testb.stb1 b on a.ts = b.ts;
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts order by a.ts);
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts order by a.ts);
sql_error explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by a.ts;
sql_error explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by a.ts;
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by col1;
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union (select a.col1 from sta a full join sta b on a.ts=b.ts) order by 1;
sql explain analyze verbose true (select b.col1 from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select a.col1 from sta a full join sta b on a.ts=b.ts) order by 1;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts)) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts)) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;
sql_error explain analyze verbose true select c.ts from ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) c full join ((select a.ts from sta a full join sta b on a.ts=b.ts order by a.ts) union all (select b.ts from sta a full join sta b on a.ts=b.ts) order by 1) d on c.ts = d.ts;

View File

@ -1086,6 +1086,11 @@ if $data31 != @23-11-17 16:29:03.000@ then
return -1
endi
sql select a.col1 from sta a left asof join sta b on a.col1 = b.col1 and a.t1 = b.t1;
if $rows != 8 then
return -1
endi
sql select a.ts, b.ts from sta a left asof join sta b on a.ts > b.ts order by a.ts desc;
if $rows != 8 then
return -1

View File

@ -25,7 +25,7 @@
#define MAX_NUM_JUMP 100
#define MAX_LINE_LEN 3000
#define MAX_CMD_LINES 2048
#define MAX_OPTION_BUFFER 64000
#define MAX_OPTION_BUFFER 128000
enum {
BLOCK_IF,