diff --git a/include/common/common.h b/include/common/common.h
index b2a90619f1..981614afc2 100644
--- a/include/common/common.h
+++ b/include/common/common.h
@@ -17,6 +17,8 @@
#define TDENGINE_COMMON_H
#include "taosdef.h"
+#include "taosmsg.h"
+#include "tarray.h"
//typedef struct STimeWindow {
// TSKEY skey;
diff --git a/include/libs/function/function.h b/include/libs/function/function.h
index 16a6481aab..d251314b7c 100644
--- a/include/libs/function/function.h
+++ b/include/libs/function/function.h
@@ -21,6 +21,7 @@ extern "C" {
#endif
#include "common.h"
+#include "tvariant.h"
#define FUNCTION_SCALAR 1
#define FUNCTION_AGG 2
diff --git a/include/util/tpagedfile.h b/include/util/tpagedfile.h
index a31dda1192..5bc4dc92a0 100644
--- a/include/util/tpagedfile.h
+++ b/include/util/tpagedfile.h
@@ -93,7 +93,7 @@ typedef struct SFilePage {
* @param handle
* @return
*/
-int32_t createDiskbasedResultBuffer(SDiskbasedResultBuf** pResultBuf, int32_t pagesize, int32_t inMemBufSize, uint64_t qId);
+int32_t createDiskbasedResultBuffer(SDiskbasedResultBuf** pResultBuf, int32_t pagesize, int32_t inMemBufSize, uint64_t qId, const char* dir);
/**
*
@@ -118,7 +118,7 @@ SIDList getDataBufPagesIdList(SDiskbasedResultBuf* pResultBuf, int32_t groupId);
* @param id
* @return
*/
-tFilePage* getResBufPage(SDiskbasedResultBuf* pResultBuf, int32_t id);
+SFilePage* getResBufPage(SDiskbasedResultBuf* pResultBuf, int32_t id);
/**
* release the referenced buf pages
diff --git a/source/libs/function/inc/taggfunction.h b/source/libs/function/inc/taggfunction.h
index d1ce5da08f..0ebba4cd8e 100644
--- a/source/libs/function/inc/taggfunction.h
+++ b/source/libs/function/inc/taggfunction.h
@@ -73,7 +73,7 @@ enum {
#define QUERY_IS_FREE_RESOURCE(type) (((type)&TSDB_QUERY_TYPE_FREE_RESOURCE) != 0)
typedef struct SArithmeticSupport {
- SExprInfo *pExprInfo;
+ struct SExprInfo *pExprInfo;
int32_t numOfCols;
SColumnInfo *colList;
void *exprList; // client side used
diff --git a/source/libs/function/inc/tpercentile.h b/source/libs/function/inc/tpercentile.h
index d89a1137c4..563a63f6a5 100644
--- a/source/libs/function/inc/tpercentile.h
+++ b/source/libs/function/inc/tpercentile.h
@@ -20,8 +20,7 @@
extern "C" {
#endif
-#include "qExtbuffer.h"
-#include "qResultbuf.h"
+#include "tpagedfile.h"
#include "ttszip.h"
typedef struct MinMaxEntry {
@@ -40,7 +39,7 @@ typedef struct MinMaxEntry {
typedef struct {
int32_t size;
int32_t pageId;
- tFilePage *data;
+ SFilePage *data;
} SSlotInfo;
typedef struct tMemBucketSlot {
diff --git a/source/libs/function/inc/ttszip.h b/source/libs/function/inc/ttszip.h
index bacfe0d19d..95be18f4ea 100644
--- a/source/libs/function/inc/ttszip.h
+++ b/source/libs/function/inc/ttszip.h
@@ -37,7 +37,7 @@ typedef struct STSList {
typedef struct STSElem {
TSKEY ts;
- tVariant* tag;
+ SVariant* tag;
int32_t id;
} STSElem;
@@ -49,7 +49,7 @@ typedef struct STSCursor {
} STSCursor;
typedef struct STSBlock {
- tVariant tag; // tag value
+ SVariant tag; // tag value
int32_t numOfElem; // number of elements
int32_t compLen; // size after compressed
int32_t padding; // 0xFFFFFFFF by default, after the payload
@@ -105,7 +105,7 @@ STSBuf* tsBufCreateFromCompBlocks(const char* pData, int32_t numOfBlocks, int32_
void* tsBufDestroy(STSBuf* pTSBuf);
-void tsBufAppend(STSBuf* pTSBuf, int32_t id, tVariant* tag, const char* pData, int32_t len);
+void tsBufAppend(STSBuf* pTSBuf, int32_t id, SVariant* tag, const char* pData, int32_t len);
int32_t tsBufMerge(STSBuf* pDestBuf, const STSBuf* pSrcBuf);
STSBuf* tsBufClone(STSBuf* pTSBuf);
@@ -117,7 +117,7 @@ void tsBufResetPos(STSBuf* pTSBuf);
bool tsBufNextPos(STSBuf* pTSBuf);
STSElem tsBufGetElem(STSBuf* pTSBuf);
-STSElem tsBufGetElemStartPos(STSBuf* pTSBuf, int32_t id, tVariant* tag);
+STSElem tsBufGetElemStartPos(STSBuf* pTSBuf, int32_t id, SVariant* tag);
STSCursor tsBufGetCursor(STSBuf* pTSBuf);
void tsBufSetTraverseOrder(STSBuf* pTSBuf, int32_t order);
@@ -136,7 +136,7 @@ void tsBufGetGroupIdList(STSBuf* pTSBuf, int32_t* num, int32_t** id);
int32_t dumpFileBlockByGroupId(STSBuf* pTSBuf, int32_t id, void* buf, int32_t* len, int32_t* numOfBlocks);
-STSElem tsBufFindElemStartPosByTag(STSBuf* pTSBuf, tVariant* pTag);
+STSElem tsBufFindElemStartPosByTag(STSBuf* pTSBuf, SVariant* pTag);
bool tsBufIsValidElem(STSElem* pElem);
diff --git a/source/libs/function/src/tpercentile.c b/source/libs/function/src/tpercentile.c
index c8ea8bf0f5..5d8876fee1 100644
--- a/source/libs/function/src/tpercentile.c
+++ b/source/libs/function/src/tpercentile.c
@@ -12,6 +12,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+#include
#include "os.h"
#include "tpercentile.h"
@@ -253,7 +254,7 @@ tMemBucket *tMemBucketCreate(int16_t nElemSize, int16_t dataType, double minval,
resetSlotInfo(pBucket);
- int32_t ret = createDiskbasedResultBuffer(&pBucket->pBuffer, pBucket->bufPageSize, pBucket->bufPageSize * 512, 1);
+ int32_t ret = createDiskbasedResultBuffer(&pBucket->pBuffer, pBucket->bufPageSize, pBucket->bufPageSize * 512, 1, tsTempDir);
if (ret != 0) {
tMemBucketDestroy(pBucket);
return NULL;
diff --git a/source/util/src/tpagedfile.c b/source/util/src/tpagedfile.c
index 9e6c902fb2..fcd4f2b155 100644
--- a/source/util/src/tpagedfile.c
+++ b/source/util/src/tpagedfile.c
@@ -7,7 +7,7 @@
#define GET_DATA_PAYLOAD(_p) ((char *)(_p)->pData + POINTER_BYTES)
#define NO_IN_MEM_AVAILABLE_PAGES(_b) (listNEles((_b)->lruList) >= (_b)->inMemPages)
-int32_t createDiskbasedResultBuffer(SDiskbasedResultBuf** pResultBuf, int32_t pagesize, int32_t inMemBufSize, uint64_t qId) {
+int32_t createDiskbasedResultBuffer(SDiskbasedResultBuf** pResultBuf, int32_t pagesize, int32_t inMemBufSize, uint64_t qId, const char* dir) {
*pResultBuf = calloc(1, sizeof(SDiskbasedResultBuf));
SDiskbasedResultBuf* pResBuf = *pResultBuf;
@@ -36,7 +36,7 @@ int32_t createDiskbasedResultBuffer(SDiskbasedResultBuf** pResultBuf, int32_t pa
pResBuf->all = taosHashInit(10, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), true, false);
char path[PATH_MAX] = {0};
- taosGetTmpfilePath("qbuf", path);
+ taosGetTmpfilePath(dir, "qbuf", path);
pResBuf->path = strdup(path);
pResBuf->emptyDummyIdList = taosArrayInit(1, sizeof(int32_t));