提交 df277167 编写于 作者: X Xiaoyu Wang

TD-13120 SELECT statement data structure definition

上级 aa4a4d05
...@@ -249,20 +249,20 @@ typedef struct SSetOperator { ...@@ -249,20 +249,20 @@ typedef struct SSetOperator {
typedef bool (*FQueryNodeWalker)(SNode* pNode, void* pContext); typedef bool (*FQueryNodeWalker)(SNode* pNode, void* pContext);
bool nodeArrayWalker(SArray* pArray, FQueryNodeWalker walker, void* pContext); bool nodesWalkArray(SArray* pArray, FQueryNodeWalker walker, void* pContext);
bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext); bool nodesWalkNode(SNode* pNode, FQueryNodeWalker walker, void* pContext);
bool stmtWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext); bool nodesWalkStmt(SNode* pNode, FQueryNodeWalker walker, void* pContext);
bool nodeEqual(const SNode* a, const SNode* b); bool nodesEqualNode(const SNode* a, const SNode* b);
void cloneNode(const SNode* pNode); void nodesCloneNode(const SNode* pNode);
int32_t nodeToString(const SNode* pNode, char** pStr, int32_t* pLen); int32_t nodesNodeToString(const SNode* pNode, char** pStr, int32_t* pLen);
int32_t stringToNode(const char* pStr, SNode** pNode); int32_t nodesStringToNode(const char* pStr, SNode** pNode);
bool isTimeorderQuery(const SNode* pQuery); bool nodesIsTimeorderQuery(const SNode* pQuery);
bool isTimelineQuery(const SNode* pQuery); bool nodesIsTimelineQuery(const SNode* pQuery);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
int32_t doTranslate() {
}
...@@ -15,6 +15,6 @@ ...@@ -15,6 +15,6 @@
#include "nodes.h" #include "nodes.h"
void cloneNode(const SNode* pNode) { void nodesCloneNode(const SNode* pNode) {
} }
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
#include "nodes.h" #include "nodes.h"
int32_t nodeToString(const SNode* pNode, char** pStr, int32_t* pLen) { int32_t nodesNodeToString(const SNode* pNode, char** pStr, int32_t* pLen) {
} }
int32_t stringToNode(const char* pStr, SNode** pNode) { int32_t nodesStringToNode(const char* pStr, SNode** pNode) {
} }
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#define COMPARE_NODE_FIELD(fldname) \ #define COMPARE_NODE_FIELD(fldname) \
do { \ do { \
if (!nodeEqual(a->fldname, b->fldname)) \ if (!nodesEqualNode(a->fldname, b->fldname)) \
return false; \ return false; \
} while (0) } while (0)
...@@ -57,7 +57,7 @@ static bool nodeArrayEqual(const SArray* a, const SArray* b) { ...@@ -57,7 +57,7 @@ static bool nodeArrayEqual(const SArray* a, const SArray* b) {
size_t size = taosArrayGetSize(a); size_t size = taosArrayGetSize(a);
for (size_t i = 0; i < size; ++i) { for (size_t i = 0; i < size; ++i) {
if (!nodeEqual((SNode*)taosArrayGetP(a, i), (SNode*)taosArrayGetP(b, i))) { if (!nodesEqualNode((SNode*)taosArrayGetP(a, i), (SNode*)taosArrayGetP(b, i))) {
return false; return false;
} }
} }
...@@ -101,7 +101,7 @@ static bool functionNodeEqual(const SFunctionNode* a, const SFunctionNode* b) { ...@@ -101,7 +101,7 @@ static bool functionNodeEqual(const SFunctionNode* a, const SFunctionNode* b) {
return true; return true;
} }
bool nodeEqual(const SNode* a, const SNode* b) { bool nodesEqualNode(const SNode* a, const SNode* b) {
if (a == b) { if (a == b) {
return true; return true;
} }
......
...@@ -17,17 +17,17 @@ ...@@ -17,17 +17,17 @@
typedef bool (*FQueryNodeWalker)(SNode* pNode, void* pContext); typedef bool (*FQueryNodeWalker)(SNode* pNode, void* pContext);
bool nodeArrayWalker(SArray* pArray, FQueryNodeWalker walker, void* pContext) { bool nodesWalkArray(SArray* pArray, FQueryNodeWalker walker, void* pContext) {
size_t size = taosArrayGetSize(pArray); size_t size = taosArrayGetSize(pArray);
for (size_t i = 0; i < size; ++i) { for (size_t i = 0; i < size; ++i) {
if (!nodeTreeWalker((SNode*)taosArrayGetP(pArray, i), walker, pContext)) { if (!nodesWalkNode((SNode*)taosArrayGetP(pArray, i), walker, pContext)) {
return false; return false;
} }
} }
return true; return true;
} }
bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) { bool nodesWalkNode(SNode* pNode, FQueryNodeWalker walker, void* pContext) {
if (NULL == pNode) { if (NULL == pNode) {
return true; return true;
} }
...@@ -43,34 +43,34 @@ bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) { ...@@ -43,34 +43,34 @@ bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) {
return true; return true;
case QUERY_NODE_OPERATOR: { case QUERY_NODE_OPERATOR: {
SOperatorNode* pOpNode = (SOperatorNode*)pNode; SOperatorNode* pOpNode = (SOperatorNode*)pNode;
if (!nodeTreeWalker(pOpNode->pLeft, walker, pContext)) { if (!nodesWalkNode(pOpNode->pLeft, walker, pContext)) {
return false; return false;
} }
return nodeTreeWalker(pOpNode->pRight, walker, pContext); return nodesWalkNode(pOpNode->pRight, walker, pContext);
} }
case QUERY_NODE_LOGIC_CONDITION: case QUERY_NODE_LOGIC_CONDITION:
return nodeArrayWalker(((SLogicConditionNode*)pNode)->pParameterList, walker, pContext); return nodesWalkArray(((SLogicConditionNode*)pNode)->pParameterList, walker, pContext);
case QUERY_NODE_IS_NULL_CONDITION: case QUERY_NODE_IS_NULL_CONDITION:
return nodeTreeWalker(((SIsNullCondNode*)pNode)->pExpr, walker, pContext); return nodesWalkNode(((SIsNullCondNode*)pNode)->pExpr, walker, pContext);
case QUERY_NODE_FUNCTION: case QUERY_NODE_FUNCTION:
return nodeArrayWalker(((SFunctionNode*)pNode)->pParameterList, walker, pContext); return nodesWalkArray(((SFunctionNode*)pNode)->pParameterList, walker, pContext);
case QUERY_NODE_REAL_TABLE: case QUERY_NODE_REAL_TABLE:
case QUERY_NODE_TEMP_TABLE: case QUERY_NODE_TEMP_TABLE:
return true; // todo return true; // todo
case QUERY_NODE_JOIN_TABLE: { case QUERY_NODE_JOIN_TABLE: {
SJoinTableNode* pJoinTableNode = (SJoinTableNode*)pNode; SJoinTableNode* pJoinTableNode = (SJoinTableNode*)pNode;
if (!nodeTreeWalker(pJoinTableNode->pLeft, walker, pContext)) { if (!nodesWalkNode(pJoinTableNode->pLeft, walker, pContext)) {
return false; return false;
} }
if (!nodeTreeWalker(pJoinTableNode->pRight, walker, pContext)) { if (!nodesWalkNode(pJoinTableNode->pRight, walker, pContext)) {
return false; return false;
} }
return nodeTreeWalker(pJoinTableNode->pOnCond, walker, pContext); return nodesWalkNode(pJoinTableNode->pOnCond, walker, pContext);
} }
case QUERY_NODE_GROUPING_SET: case QUERY_NODE_GROUPING_SET:
return nodeArrayWalker(((SGroupingSetNode*)pNode)->pParameterList, walker, pContext); return nodesWalkArray(((SGroupingSetNode*)pNode)->pParameterList, walker, pContext);
case QUERY_NODE_ORDER_BY_EXPR: case QUERY_NODE_ORDER_BY_EXPR:
return nodeTreeWalker(((SOrderByExprNode*)pNode)->pExpr, walker, pContext); return nodesWalkNode(((SOrderByExprNode*)pNode)->pExpr, walker, pContext);
default: default:
break; break;
} }
...@@ -78,6 +78,6 @@ bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) { ...@@ -78,6 +78,6 @@ bool nodeTreeWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) {
return false; return false;
} }
bool stmtWalker(SNode* pNode, FQueryNodeWalker walker, void* pContext) { bool nodesWalkStmt(SNode* pNode, FQueryNodeWalker walker, void* pContext) {
} }
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
#include "nodes.h" #include "nodes.h"
bool isTimeorderQuery(const SNode* pQuery) { bool nodesIsTimeorderQuery(const SNode* pQuery) {
} }
bool isTimelineQuery(const SNode* pQuery) { bool nodesIsTimelineQuery(const SNode* pQuery) {
} }
Subproject commit b8f76da4a708d158ec3cc4b844571dc4414e36b4
Subproject commit 4a4d79099b076b8ff12d5b4fdbcba54049a6866d
Subproject commit ce5201014136503d34fecbd56494b67b4961056c
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册