Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
48c73b38
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
48c73b38
编写于
3月 01, 2020
作者:
H
hjxilinx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix invalid free bug.
上级
56b7a132
变更
8
展开全部
隐藏空白更改
内联
并排
Showing
8 changed file
with
182 addition
and
220 deletion
+182
-220
src/client/inc/tscUtil.h
src/client/inc/tscUtil.h
+0
-1
src/client/src/tscFunctionImpl.c
src/client/src/tscFunctionImpl.c
+5
-5
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+153
-155
src/client/src/tscSql.c
src/client/src/tscSql.c
+6
-18
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+10
-33
src/inc/taosmsg.h
src/inc/taosmsg.h
+1
-1
src/system/detail/src/vnodeRead.c
src/system/detail/src/vnodeRead.c
+1
-1
src/system/detail/src/vnodeUtil.c
src/system/detail/src/vnodeUtil.c
+6
-6
未找到文件。
src/client/inc/tscUtil.h
浏览文件 @
48c73b38
...
@@ -132,7 +132,6 @@ void tscFieldInfoSetExpr(SFieldInfo* pFieldInfo, int32_t index, SSqlExpr* pExpr)
...
@@ -132,7 +132,6 @@ void tscFieldInfoSetExpr(SFieldInfo* pFieldInfo, int32_t index, SSqlExpr* pExpr)
void
tscFieldInfoSetBinExpr
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSqlFunctionExpr
*
pExpr
);
void
tscFieldInfoSetBinExpr
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSqlFunctionExpr
*
pExpr
);
void
tscFieldInfoCalOffset
(
SQueryInfo
*
pQueryInfo
);
void
tscFieldInfoCalOffset
(
SQueryInfo
*
pQueryInfo
);
void
tscFieldInfoUpdateOffsetForInterResult
(
SQueryInfo
*
pQueryInfo
);
void
tscFieldInfoCopy
(
SFieldInfo
*
src
,
SFieldInfo
*
dst
,
const
int32_t
*
indexList
,
int32_t
size
);
void
tscFieldInfoCopy
(
SFieldInfo
*
src
,
SFieldInfo
*
dst
,
const
int32_t
*
indexList
,
int32_t
size
);
void
tscFieldInfoCopyAll
(
SFieldInfo
*
dst
,
SFieldInfo
*
src
);
void
tscFieldInfoCopyAll
(
SFieldInfo
*
dst
,
SFieldInfo
*
src
);
...
...
src/client/src/tscFunctionImpl.c
浏览文件 @
48c73b38
...
@@ -3304,9 +3304,9 @@ char *arithmetic_callback_function(void *param, char *name, int32_t colId) {
...
@@ -3304,9 +3304,9 @@ char *arithmetic_callback_function(void *param, char *name, int32_t colId) {
SSqlFunctionExpr
*
pExpr
=
pSupport
->
pExpr
;
SSqlFunctionExpr
*
pExpr
=
pSupport
->
pExpr
;
int32_t
colIndexInBuf
=
-
1
;
int32_t
colIndexInBuf
=
-
1
;
for
(
int32_t
i
=
0
;
i
<
pExpr
->
pB
inExprInfo
.
numOfCols
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pExpr
->
b
inExprInfo
.
numOfCols
;
++
i
)
{
if
(
colId
==
pExpr
->
pB
inExprInfo
.
pReqColumns
[
i
].
colId
)
{
if
(
colId
==
pExpr
->
b
inExprInfo
.
pReqColumns
[
i
].
colId
)
{
colIndexInBuf
=
pExpr
->
pB
inExprInfo
.
pReqColumns
[
i
].
colIdxInBuf
;
colIndexInBuf
=
pExpr
->
b
inExprInfo
.
pReqColumns
[
i
].
colIdxInBuf
;
break
;
break
;
}
}
}
}
...
@@ -3319,7 +3319,7 @@ static void arithmetic_function(SQLFunctionCtx *pCtx) {
...
@@ -3319,7 +3319,7 @@ static void arithmetic_function(SQLFunctionCtx *pCtx) {
GET_RES_INFO
(
pCtx
)
->
numOfRes
+=
pCtx
->
size
;
GET_RES_INFO
(
pCtx
)
->
numOfRes
+=
pCtx
->
size
;
SArithmeticSupport
*
sas
=
(
SArithmeticSupport
*
)
pCtx
->
param
[
1
].
pz
;
SArithmeticSupport
*
sas
=
(
SArithmeticSupport
*
)
pCtx
->
param
[
1
].
pz
;
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
pB
inExprInfo
.
pBinExpr
,
pCtx
->
size
,
pCtx
->
aOutputBuf
,
sas
,
pCtx
->
order
,
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
b
inExprInfo
.
pBinExpr
,
pCtx
->
size
,
pCtx
->
aOutputBuf
,
sas
,
pCtx
->
order
,
arithmetic_callback_function
);
arithmetic_callback_function
);
pCtx
->
aOutputBuf
+=
pCtx
->
outputBytes
*
pCtx
->
size
;
pCtx
->
aOutputBuf
+=
pCtx
->
outputBytes
*
pCtx
->
size
;
...
@@ -3331,7 +3331,7 @@ static void arithmetic_function_f(SQLFunctionCtx *pCtx, int32_t index) {
...
@@ -3331,7 +3331,7 @@ static void arithmetic_function_f(SQLFunctionCtx *pCtx, int32_t index) {
SArithmeticSupport
*
sas
=
(
SArithmeticSupport
*
)
pCtx
->
param
[
1
].
pz
;
SArithmeticSupport
*
sas
=
(
SArithmeticSupport
*
)
pCtx
->
param
[
1
].
pz
;
sas
->
offset
=
index
;
sas
->
offset
=
index
;
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
pB
inExprInfo
.
pBinExpr
,
1
,
pCtx
->
aOutputBuf
,
sas
,
pCtx
->
order
,
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
b
inExprInfo
.
pBinExpr
,
1
,
pCtx
->
aOutputBuf
,
sas
,
pCtx
->
order
,
arithmetic_callback_function
);
arithmetic_callback_function
);
pCtx
->
aOutputBuf
+=
pCtx
->
outputBytes
/* * GET_FORWARD_DIRECTION_FACTOR(pCtx->order)*/
;
pCtx
->
aOutputBuf
+=
pCtx
->
outputBytes
/* * GET_FORWARD_DIRECTION_FACTOR(pCtx->order)*/
;
...
...
src/client/src/tscSQLParser.c
浏览文件 @
48c73b38
此差异已折叠。
点击以展开。
src/client/src/tscSql.c
浏览文件 @
48c73b38
...
@@ -404,14 +404,14 @@ static char *getArithemicInputSrc(void *param, char *name, int32_t colId) {
...
@@ -404,14 +404,14 @@ static char *getArithemicInputSrc(void *param, char *name, int32_t colId) {
SSqlFunctionExpr
*
pExpr
=
pSupport
->
pExpr
;
SSqlFunctionExpr
*
pExpr
=
pSupport
->
pExpr
;
int32_t
index
=
-
1
;
int32_t
index
=
-
1
;
for
(
int32_t
i
=
0
;
i
<
pExpr
->
pB
inExprInfo
.
numOfCols
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pExpr
->
b
inExprInfo
.
numOfCols
;
++
i
)
{
if
(
strcmp
(
name
,
pExpr
->
pB
inExprInfo
.
pReqColumns
[
i
].
name
)
==
0
)
{
if
(
strcmp
(
name
,
pExpr
->
b
inExprInfo
.
pReqColumns
[
i
].
name
)
==
0
)
{
index
=
i
;
index
=
i
;
break
;
break
;
}
}
}
}
assert
(
index
>=
0
&&
index
<
pExpr
->
pB
inExprInfo
.
numOfCols
);
assert
(
index
>=
0
&&
index
<
pExpr
->
b
inExprInfo
.
numOfCols
);
return
pSupport
->
data
[
index
]
+
pSupport
->
offset
*
pSupport
->
elemSize
[
index
];
return
pSupport
->
data
[
index
]
+
pSupport
->
offset
*
pSupport
->
elemSize
[
index
];
}
}
...
@@ -428,23 +428,11 @@ static void **doSetResultRowData(SSqlObj *pSql) {
...
@@ -428,23 +428,11 @@ static void **doSetResultRowData(SSqlObj *pSql) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
pCmd
,
pCmd
->
clauseIndex
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
pCmd
,
pCmd
->
clauseIndex
);
//todo refactor move away
for
(
int32_t
k
=
0
;
k
<
pQueryInfo
->
exprsInfo
.
numOfExprs
;
++
k
)
{
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
pQueryInfo
,
k
);
if
(
k
>
0
)
{
SSqlExpr
*
pPrev
=
tscSqlExprGet
(
pQueryInfo
,
k
-
1
);
pExpr
->
offset
=
pPrev
->
offset
+
pPrev
->
resBytes
;
}
}
int32_t
num
=
0
;
int32_t
num
=
0
;
for
(
int
i
=
0
;
i
<
tscNumOfFields
(
pQueryInfo
);
++
i
)
{
for
(
int
i
=
0
;
i
<
tscNumOfFields
(
pQueryInfo
);
++
i
)
{
if
(
pQueryInfo
->
fieldsInfo
.
pSqlExpr
[
i
]
!=
NULL
)
{
if
(
pQueryInfo
->
fieldsInfo
.
pSqlExpr
[
i
]
!=
NULL
)
{
SSqlExpr
*
pExpr
=
pQueryInfo
->
fieldsInfo
.
pSqlExpr
[
i
];
SSqlExpr
*
pExpr
=
pQueryInfo
->
fieldsInfo
.
pSqlExpr
[
i
];
pRes
->
tsrow
[
i
]
=
TSC_GET_RESPTR_BASE
(
pRes
,
pQueryInfo
,
i
)
+
pExpr
->
resBytes
*
pRes
->
row
;
pRes
->
tsrow
[
i
]
=
TSC_GET_RESPTR_BASE
(
pRes
,
pQueryInfo
,
i
)
+
pExpr
->
resBytes
*
pRes
->
row
;
}
else
{
assert
(
0
);
}
}
// primary key column cannot be null in interval query, no need to check
// primary key column cannot be null in interval query, no need to check
...
@@ -461,21 +449,21 @@ static void **doSetResultRowData(SSqlObj *pSql) {
...
@@ -461,21 +449,21 @@ static void **doSetResultRowData(SSqlObj *pSql) {
sas
->
offset
=
0
;
sas
->
offset
=
0
;
sas
->
pExpr
=
pQueryInfo
->
fieldsInfo
.
pExpr
[
i
];
sas
->
pExpr
=
pQueryInfo
->
fieldsInfo
.
pExpr
[
i
];
sas
->
numOfCols
=
sas
->
pExpr
->
pB
inExprInfo
.
numOfCols
;
sas
->
numOfCols
=
sas
->
pExpr
->
b
inExprInfo
.
numOfCols
;
if
(
pRes
->
buffer
[
i
]
==
NULL
)
{
if
(
pRes
->
buffer
[
i
]
==
NULL
)
{
pRes
->
buffer
[
i
]
=
malloc
(
tscFieldInfoGetField
(
pQueryInfo
,
i
)
->
bytes
);
pRes
->
buffer
[
i
]
=
malloc
(
tscFieldInfoGetField
(
pQueryInfo
,
i
)
->
bytes
);
}
}
for
(
int32_t
k
=
0
;
k
<
sas
->
numOfCols
;
++
k
)
{
for
(
int32_t
k
=
0
;
k
<
sas
->
numOfCols
;
++
k
)
{
int32_t
columnIndex
=
sas
->
pExpr
->
pB
inExprInfo
.
pReqColumns
[
k
].
colIdxInBuf
;
int32_t
columnIndex
=
sas
->
pExpr
->
b
inExprInfo
.
pReqColumns
[
k
].
colIdxInBuf
;
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
pQueryInfo
,
columnIndex
);
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
pQueryInfo
,
columnIndex
);
sas
->
elemSize
[
k
]
=
pExpr
->
resBytes
;
sas
->
elemSize
[
k
]
=
pExpr
->
resBytes
;
sas
->
data
[
k
]
=
(
pRes
->
data
+
pRes
->
numOfRows
*
pExpr
->
offset
)
+
pRes
->
row
*
pExpr
->
resBytes
;
sas
->
data
[
k
]
=
(
pRes
->
data
+
pRes
->
numOfRows
*
pExpr
->
offset
)
+
pRes
->
row
*
pExpr
->
resBytes
;
}
}
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
pB
inExprInfo
.
pBinExpr
,
1
,
pRes
->
buffer
[
i
],
sas
,
TSQL_SO_ASC
,
getArithemicInputSrc
);
tSQLBinaryExprCalcTraverse
(
sas
->
pExpr
->
b
inExprInfo
.
pBinExpr
,
1
,
pRes
->
buffer
[
i
],
sas
,
TSQL_SO_ASC
,
getArithemicInputSrc
);
pRes
->
tsrow
[
i
]
=
pRes
->
buffer
[
i
];
pRes
->
tsrow
[
i
]
=
pRes
->
buffer
[
i
];
free
(
sas
);
//todo optimization
free
(
sas
);
//todo optimization
...
...
src/client/src/tscUtil.c
浏览文件 @
48c73b38
...
@@ -908,6 +908,9 @@ void tscFieldInfoSetValue(SFieldInfo* pFieldInfo, int32_t index, int8_t type, co
...
@@ -908,6 +908,9 @@ void tscFieldInfoSetValue(SFieldInfo* pFieldInfo, int32_t index, int8_t type, co
pFieldInfo
->
pVisibleCols
[
index
]
=
true
;
pFieldInfo
->
pVisibleCols
[
index
]
=
true
;
pFieldInfo
->
numOfOutputCols
++
;
pFieldInfo
->
numOfOutputCols
++
;
pFieldInfo
->
pExpr
[
index
]
=
NULL
;
pFieldInfo
->
pSqlExpr
[
index
]
=
NULL
;
}
}
void
tscFieldInfoSetExpr
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSqlExpr
*
pExpr
)
{
void
tscFieldInfoSetExpr
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSqlExpr
*
pExpr
)
{
...
@@ -929,33 +932,6 @@ void tscFieldInfoCalOffset(SQueryInfo* pQueryInfo) {
...
@@ -929,33 +932,6 @@ void tscFieldInfoCalOffset(SQueryInfo* pQueryInfo) {
}
}
}
}
void
tscFieldInfoUpdateOffsetForInterResult
(
SQueryInfo
*
pQueryInfo
)
{
// SFieldInfo* pFieldInfo = &pQueryInfo->fieldsInfo;
// if (pFieldInfo->numOfOutputCols == 0) {
// return;
// }
//
// pFieldInfo->pOffset[0] = 0;
//
// /*
// * the retTypeLen is used to store the intermediate result length
// * for potential secondary merge exists
// */
// for (int32_t i = 1; i < pFieldInfo->numOfOutputCols; ++i) {
// pFieldInfo->pOffset[i] = pFieldInfo->pOffset[i - 1] + tscSqlExprGet(pQueryInfo, i - 1)->resBytes;
// }
SSqlExprInfo
*
pExprInfo
=
&
pQueryInfo
->
exprsInfo
;
if
(
pExprInfo
->
numOfExprs
==
0
)
{
return
;
}
pExprInfo
->
pExprs
[
0
]
->
offset
=
0
;
for
(
int32_t
i
=
1
;
i
<
pExprInfo
->
numOfExprs
;
++
i
)
{
pExprInfo
->
pExprs
[
i
]
->
offset
=
pExprInfo
->
pExprs
[
i
-
1
]
->
offset
+
pExprInfo
->
pExprs
[
i
-
1
]
->
resBytes
;
}
}
void
tscFieldInfoCopy
(
SFieldInfo
*
src
,
SFieldInfo
*
dst
,
const
int32_t
*
indexList
,
int32_t
size
)
{
void
tscFieldInfoCopy
(
SFieldInfo
*
src
,
SFieldInfo
*
dst
,
const
int32_t
*
indexList
,
int32_t
size
)
{
if
(
src
==
NULL
)
{
if
(
src
==
NULL
)
{
return
;
return
;
...
@@ -1049,10 +1025,11 @@ void tscClearFieldInfo(SFieldInfo* pFieldInfo) {
...
@@ -1049,10 +1025,11 @@ void tscClearFieldInfo(SFieldInfo* pFieldInfo) {
tfree
(
pFieldInfo
->
pSqlExpr
);
tfree
(
pFieldInfo
->
pSqlExpr
);
for
(
int32_t
i
=
0
;
i
<
pFieldInfo
->
numOfOutputCols
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pFieldInfo
->
numOfOutputCols
;
++
i
)
{
if
(
pFieldInfo
->
pExpr
[
i
]
!=
NULL
)
{
SSqlFunctionExpr
*
pExpr
=
pFieldInfo
->
pExpr
[
i
];
tSQLBinaryExprDestroy
(
&
pFieldInfo
->
pExpr
[
i
]
->
pBinExprInfo
.
pBinExpr
,
NULL
);
if
(
pExpr
!=
NULL
)
{
tfree
(
pFieldInfo
->
pExpr
[
i
]
->
pBinExprInfo
.
pReqColumns
);
tSQLBinaryExprDestroy
(
&
pExpr
->
binExprInfo
.
pBinExpr
,
NULL
);
tfree
(
pFieldInfo
->
pExpr
[
i
]);
tfree
(
pExpr
->
binExprInfo
.
pReqColumns
);
tfree
(
pExpr
);
}
}
}
}
...
@@ -2042,8 +2019,8 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, void (*fp)(), void
...
@@ -2042,8 +2019,8 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, void (*fp)(), void
}
}
}
}
}
}
tscFieldInfo
UpdateOffsetForInterResul
t
(
pNewQueryInfo
);
tscFieldInfo
CalOffse
t
(
pNewQueryInfo
);
}
}
pNew
->
fp
=
fp
;
pNew
->
fp
=
fp
;
...
...
src/inc/taosmsg.h
浏览文件 @
48c73b38
...
@@ -446,7 +446,7 @@ typedef struct SSqlBinaryExprInfo {
...
@@ -446,7 +446,7 @@ typedef struct SSqlBinaryExprInfo {
typedef
struct
SSqlFunctionExpr
{
typedef
struct
SSqlFunctionExpr
{
SSqlFuncExprMsg
pBase
;
SSqlFuncExprMsg
pBase
;
SSqlBinaryExprInfo
pB
inExprInfo
;
SSqlBinaryExprInfo
b
inExprInfo
;
int16_t
resBytes
;
int16_t
resBytes
;
int16_t
resType
;
int16_t
resType
;
int16_t
interResBytes
;
int16_t
interResBytes
;
...
...
src/system/detail/src/vnodeRead.c
浏览文件 @
48c73b38
...
@@ -453,7 +453,7 @@ void vnodeFreeQInfo(void *param, bool decQueryRef) {
...
@@ -453,7 +453,7 @@ void vnodeFreeQInfo(void *param, bool decQueryRef) {
if
(
pQuery
->
pSelectExpr
!=
NULL
)
{
if
(
pQuery
->
pSelectExpr
!=
NULL
)
{
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutputCols
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutputCols
;
++
i
)
{
SSqlBinaryExprInfo
*
pBinExprInfo
=
&
pQuery
->
pSelectExpr
[
i
].
pB
inExprInfo
;
SSqlBinaryExprInfo
*
pBinExprInfo
=
&
pQuery
->
pSelectExpr
[
i
].
b
inExprInfo
;
if
(
pBinExprInfo
->
numOfCols
>
0
)
{
if
(
pBinExprInfo
->
numOfCols
>
0
)
{
tfree
(
pBinExprInfo
->
pReqColumns
);
tfree
(
pBinExprInfo
->
pReqColumns
);
...
...
src/system/detail/src/vnodeUtil.c
浏览文件 @
48c73b38
...
@@ -157,7 +157,7 @@ static int32_t id_compar(const void* left, const void* right) {
...
@@ -157,7 +157,7 @@ static int32_t id_compar(const void* left, const void* right) {
}
}
static
int32_t
vnodeBuildExprFromArithmeticStr
(
SSqlFunctionExpr
*
pExpr
,
SQueryMeterMsg
*
pQueryMsg
)
{
static
int32_t
vnodeBuildExprFromArithmeticStr
(
SSqlFunctionExpr
*
pExpr
,
SQueryMeterMsg
*
pQueryMsg
)
{
SSqlBinaryExprInfo
*
pBinaryExprInfo
=
&
pExpr
->
pB
inExprInfo
;
SSqlBinaryExprInfo
*
pBinaryExprInfo
=
&
pExpr
->
b
inExprInfo
;
SColumnInfo
*
pColMsg
=
pQueryMsg
->
colList
;
SColumnInfo
*
pColMsg
=
pQueryMsg
->
colList
;
tSQLBinaryExpr
*
pBinExpr
=
NULL
;
tSQLBinaryExpr
*
pBinExpr
=
NULL
;
...
@@ -377,15 +377,15 @@ void vnodeUpdateFilterColumnIndex(SQuery* pQuery) {
...
@@ -377,15 +377,15 @@ void vnodeUpdateFilterColumnIndex(SQuery* pQuery) {
}
}
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutputCols
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutputCols
;
++
i
)
{
SSqlBinaryExprInfo
*
pBinExprInfo
=
&
pQuery
->
pSelectExpr
[
i
].
pB
inExprInfo
;
SSqlBinaryExprInfo
*
binExprInfo
=
&
pQuery
->
pSelectExpr
[
i
].
b
inExprInfo
;
if
(
pB
inExprInfo
->
pBinExpr
==
NULL
)
{
if
(
b
inExprInfo
->
pBinExpr
==
NULL
)
{
continue
;
continue
;
}
}
for
(
int16_t
j
=
0
;
j
<
pB
inExprInfo
->
numOfCols
;
++
j
)
{
for
(
int16_t
j
=
0
;
j
<
b
inExprInfo
->
numOfCols
;
++
j
)
{
for
(
int32_t
k
=
0
;
k
<
pQuery
->
numOfCols
;
++
k
)
{
for
(
int32_t
k
=
0
;
k
<
pQuery
->
numOfCols
;
++
k
)
{
if
(
pB
inExprInfo
->
pReqColumns
[
j
].
colId
==
pQuery
->
colList
[
k
].
data
.
colId
)
{
if
(
b
inExprInfo
->
pReqColumns
[
j
].
colId
==
pQuery
->
colList
[
k
].
data
.
colId
)
{
pB
inExprInfo
->
pReqColumns
[
j
].
colIdxInBuf
=
pQuery
->
colList
[
k
].
colIdxInBuf
;
b
inExprInfo
->
pReqColumns
[
j
].
colIdxInBuf
=
pQuery
->
colList
[
k
].
colIdxInBuf
;
assert
(
pQuery
->
colList
[
k
].
colIdxInBuf
==
k
);
assert
(
pQuery
->
colList
[
k
].
colIdxInBuf
==
k
);
break
;
break
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录