remove tfile
This commit is contained in:
parent
7eec493a43
commit
68f3de6111
|
@ -17,7 +17,6 @@
|
|||
#ifndef _TD_CONFIG_H_
|
||||
#define _TD_CONFIG_H_
|
||||
|
||||
#include "os.h"
|
||||
#include "tarray.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -13,10 +13,8 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// clang-format off
|
||||
|
||||
#ifndef _TD_UTIL_DEF_H
|
||||
#define _TD_UTIL_DEF_H
|
||||
#ifndef _TD_UTIL_DEF_H_
|
||||
#define _TD_UTIL_DEF_H_
|
||||
|
||||
#include "os.h"
|
||||
|
||||
|
@ -96,7 +94,9 @@ extern const int32_t TYPE_BYTES[15];
|
|||
#define TSDB_TIME_PRECISION_MICRO_STR "us"
|
||||
#define TSDB_TIME_PRECISION_NANO_STR "ns"
|
||||
|
||||
#define TSDB_TICK_PER_SECOND(precision) ((int64_t)((precision)==TSDB_TIME_PRECISION_MILLI ? 1e3L : ((precision)==TSDB_TIME_PRECISION_MICRO ? 1e6L : 1e9L)))
|
||||
#define TSDB_TICK_PER_SECOND(precision) \
|
||||
((int64_t)((precision) == TSDB_TIME_PRECISION_MILLI ? 1e3L \
|
||||
: ((precision) == TSDB_TIME_PRECISION_MICRO ? 1e6L : 1e9L)))
|
||||
|
||||
#define T_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
||||
#define T_APPEND_MEMBER(dst, ptr, type, member) \
|
||||
|
@ -149,14 +149,12 @@ typedef enum EOperatorType {
|
|||
OP_TYPE_JSON_CONTAINS
|
||||
} EOperatorType;
|
||||
|
||||
|
||||
typedef enum ELogicConditionType {
|
||||
LOGIC_COND_TYPE_AND,
|
||||
LOGIC_COND_TYPE_OR,
|
||||
LOGIC_COND_TYPE_NOT,
|
||||
} ELogicConditionType;
|
||||
|
||||
|
||||
#define FUNCTION_CEIL 4500
|
||||
#define FUNCTION_FLOOR 4501
|
||||
#define FUNCTION_ABS 4502
|
||||
|
@ -354,8 +352,6 @@ typedef enum ELogicConditionType {
|
|||
|
||||
#define TSDB_META_COMPACT_RATIO 0 // disable tsdb meta compact by default
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 1. ordinary sub query for select * from super_table
|
||||
* 2. all sqlobj generated by createSubqueryObj with this flag
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
/*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef _TD_UTIL_FILE_H
|
||||
#define _TD_UTIL_FILE_H
|
||||
|
||||
#include "os.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// init taos file module
|
||||
int32_t tfInit();
|
||||
|
||||
// clean up taos file module
|
||||
void tfCleanup();
|
||||
|
||||
// the same syntax as UNIX standard open/close/read/write
|
||||
// but FD is int64_t and will never be reused
|
||||
// int64_t tfOpenRead(const char *pathname);
|
||||
// int64_t tfOpenReadWrite(const char *pathname);
|
||||
// int64_t tfOpenCreateWrite(const char *pathname);
|
||||
// int64_t tfOpenCreateWriteAppend(const char *pathname);
|
||||
|
||||
// int64_t tfClose(int64_t tfd);
|
||||
// int64_t tfWrite(int64_t tfd, void *buf, int64_t count);
|
||||
// int64_t tfRead(int64_t tfd, void *buf, int64_t count);
|
||||
// int64_t tfPread(int64_t tfd, void *buf, int64_t count, int64_t offset);
|
||||
// int32_t tfFsync(int64_t tfd);
|
||||
// bool tfValid(int64_t tfd);
|
||||
// int64_t tfLseek(int64_t tfd, int64_t offset, int32_t whence);
|
||||
// int32_t tfFtruncate(int64_t tfd, int64_t length);
|
||||
// void * tfMmapReadOnly(int64_t tfd, int64_t length);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*_TD_UTIL_FILE_H*/
|
|
@ -16,9 +16,11 @@
|
|||
#ifndef _TD_INDEX_INT_H_
|
||||
#define _TD_INDEX_INT_H_
|
||||
|
||||
#include "os.h"
|
||||
|
||||
#include "index.h"
|
||||
#include "index_fst.h"
|
||||
#include "taos.h"
|
||||
#include "tarray.h"
|
||||
#include "tchecksum.h"
|
||||
#include "thash.h"
|
||||
#include "tlog.h"
|
||||
|
|
|
@ -15,10 +15,9 @@
|
|||
#ifndef __INDEX_CACHE_H__
|
||||
#define __INDEX_CACHE_H__
|
||||
|
||||
#include "index.h"
|
||||
#include "indexInt.h"
|
||||
#include "tlockfree.h"
|
||||
#include "tskiplist.h"
|
||||
|
||||
// ----------------- key structure in skiplist ---------------------
|
||||
|
||||
/* A data row, the format is like below
|
||||
|
|
|
@ -20,11 +20,12 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_node.h"
|
||||
#include "index_fst_automation.h"
|
||||
#include "index_fst_counting_writer.h"
|
||||
#include "index_fst_registry.h"
|
||||
#include "index_fst_util.h"
|
||||
#include "tarray.h"
|
||||
|
||||
#define OUTPUT_PREFIX(a, b) ((a) > (b) ? (b) : (a)
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_util.h"
|
||||
|
||||
typedef struct AutomationCtx AutomationCtx;
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
#ifndef __INDEX_FST_COUNTING_WRITER_H__
|
||||
#define __INDEX_FST_COUNTING_WRITER_H__
|
||||
|
||||
#include "indexInt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "tfile.h"
|
||||
|
||||
//#define USE_MMAP 1
|
||||
|
||||
#define DefaultMem 1024 * 1024
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_counting_writer.h"
|
||||
#include "index_fst_util.h"
|
||||
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_node.h"
|
||||
#include "index_fst_util.h"
|
||||
#include "tarray.h"
|
||||
|
||||
typedef struct FstRegistryCell {
|
||||
CompiledAddr addr;
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_common.h"
|
||||
#include "tarray.h"
|
||||
|
||||
typedef uint64_t FstType;
|
||||
typedef uint64_t CompiledAddr;
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#ifndef __INDEX_TFILE_H__
|
||||
#define __INDEX_TFILE_H__
|
||||
|
||||
#include "index.h"
|
||||
#include "indexInt.h"
|
||||
#include "index_fst.h"
|
||||
#include "index_fst_counting_writer.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef __INDEX_UTIL_H__
|
||||
#define __INDEX_UTIL_H__
|
||||
|
||||
#include "tarray.h"
|
||||
#include "indexInt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
* 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/>.
|
||||
*/
|
||||
|
||||
#include "os.h"
|
||||
#include "index_fst_counting_writer.h"
|
||||
#include "indexInt.h"
|
||||
#include "index_fst_util.h"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "os.h"
|
||||
#include "index_fst_registry.h"
|
||||
|
||||
uint64_t fstRegistryHash(FstRegistry* registry, FstBuilderNode* bNode) {
|
||||
|
|
|
@ -49,7 +49,6 @@ class FstWriter {
|
|||
class FstReadMemory {
|
||||
public:
|
||||
FstReadMemory(size_t size, const std::string& fileName = "/tmp/tindex.tindex") {
|
||||
tfInit();
|
||||
_wc = writerCtxCreate(TFile, fileName.c_str(), true, 64 * 1024);
|
||||
_w = fstCountingWriterCreate(_wc);
|
||||
_size = size;
|
||||
|
@ -116,7 +115,6 @@ class FstReadMemory {
|
|||
fstDestroy(_fst);
|
||||
fstSliceDestroy(&_s);
|
||||
writerCtxDestroy(_wc, false);
|
||||
tfCleanup();
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -170,7 +168,6 @@ void Performance_fstReadRecords(FstReadMemory* m) {
|
|||
}
|
||||
|
||||
void checkMillonWriteAndReadOfFst() {
|
||||
tfInit();
|
||||
FstWriter* fw = new FstWriter;
|
||||
Performance_fstWriteRecords(fw);
|
||||
delete fw;
|
||||
|
@ -181,11 +178,9 @@ void checkMillonWriteAndReadOfFst() {
|
|||
}
|
||||
|
||||
Performance_fstReadRecords(fr);
|
||||
tfCleanup();
|
||||
delete fr;
|
||||
}
|
||||
void checkFstLongTerm() {
|
||||
tfInit();
|
||||
FstWriter* fw = new FstWriter;
|
||||
// Performance_fstWriteRecords(fw);
|
||||
|
||||
|
@ -235,12 +230,10 @@ void checkFstLongTerm() {
|
|||
// for (int i = 0; i < result.size(); i++) {
|
||||
// assert(result[i] == i); // check result
|
||||
//}
|
||||
tfCleanup();
|
||||
// free(ctx);
|
||||
// delete m;
|
||||
}
|
||||
void checkFstCheckIterator() {
|
||||
tfInit();
|
||||
FstWriter* fw = new FstWriter;
|
||||
int64_t s = taosGetTimestampUs();
|
||||
int count = 2;
|
||||
|
@ -275,7 +268,6 @@ void checkFstCheckIterator() {
|
|||
|
||||
free(ctx);
|
||||
delete m;
|
||||
tfCleanup();
|
||||
}
|
||||
|
||||
void fst_get(Fst* fst) {
|
||||
|
@ -294,8 +286,6 @@ void fst_get(Fst* fst) {
|
|||
|
||||
#define NUM_OF_THREAD 10
|
||||
void validateTFile(char* arg) {
|
||||
tfInit();
|
||||
|
||||
std::thread threads[NUM_OF_THREAD];
|
||||
// std::vector<std::thread> threads;
|
||||
TFileReader* reader = tfileReaderOpen(arg, 0, 20000000, "tag1");
|
||||
|
@ -309,12 +299,9 @@ void validateTFile(char* arg) {
|
|||
// wait join
|
||||
threads[i].join();
|
||||
}
|
||||
tfCleanup();
|
||||
}
|
||||
|
||||
void iterTFileReader(char* path, char* ver) {
|
||||
tfInit();
|
||||
|
||||
int version = atoi(ver);
|
||||
TFileReader* reader = tfileReaderOpen(path, 0, version, "tag1");
|
||||
Iterate* iter = tfileIteratorCreate(reader);
|
||||
|
@ -331,7 +318,6 @@ void iterTFileReader(char* path, char* ver) {
|
|||
printf("total size: %d\n term count: %d\n", count, termCount);
|
||||
|
||||
tfileIteratorDestroy(iter);
|
||||
tfCleanup();
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
|
|
|
@ -24,8 +24,6 @@ static char tindex[PATH_MAX] = {0};
|
|||
static char tindexDir[PATH_MAX] = {0};
|
||||
|
||||
static void EnvInit() {
|
||||
tfInit();
|
||||
|
||||
std::string path = dir;
|
||||
taosRemoveDir(path.c_str());
|
||||
taosMkDir(path.c_str());
|
||||
|
@ -136,7 +134,6 @@ class FstReadMemory {
|
|||
fstDestroy(_fst);
|
||||
fstSliceDestroy(&_s);
|
||||
writerCtxDestroy(_wc, false);
|
||||
// tfCleanup();
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -420,7 +420,6 @@ class IndexTFileEnv : public ::testing::Test {
|
|||
virtual void SetUp() {
|
||||
taosRemoveDir(dir.c_str());
|
||||
taosMkDir(dir.c_str());
|
||||
tfInit();
|
||||
fObj = new TFileObj(dir, colName);
|
||||
}
|
||||
|
||||
|
@ -428,7 +427,6 @@ class IndexTFileEnv : public ::testing::Test {
|
|||
// indexClose(index);
|
||||
// indexeptsDestroy(opts);
|
||||
delete fObj;
|
||||
tfCleanup();
|
||||
// tfileWriterDestroy(twrite);
|
||||
}
|
||||
TFileObj* fObj;
|
||||
|
@ -800,13 +798,10 @@ class IndexObj {
|
|||
class IndexEnv2 : public ::testing::Test {
|
||||
protected:
|
||||
virtual void SetUp() {
|
||||
tfInit();
|
||||
index = new IndexObj();
|
||||
//
|
||||
}
|
||||
virtual void TearDown() {
|
||||
delete index;
|
||||
tfCleanup();
|
||||
}
|
||||
IndexObj* index;
|
||||
};
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "tcompare.h"
|
||||
#include "os.h"
|
||||
#include "taoserror.h"
|
||||
#include "tfile.h"
|
||||
#include "tref.h"
|
||||
#include "walInt.h"
|
||||
|
||||
|
@ -40,15 +39,9 @@ int32_t walInit() {
|
|||
int8_t old = atomic_val_compare_exchange_8(&tsWal.inited, 0, 1);
|
||||
if (old == 1) return 0;
|
||||
|
||||
int code = tfInit();
|
||||
if (code != 0) {
|
||||
wError("failed to init tfile since %s", tstrerror(code));
|
||||
atomic_store_8(&tsWal.inited, 0);
|
||||
return code;
|
||||
}
|
||||
tsWal.refSetId = taosOpenRef(TSDB_MIN_VNODES, walFreeObj);
|
||||
|
||||
code = walCreateThread();
|
||||
int32_t code = walCreateThread();
|
||||
if (code != 0) {
|
||||
wError("failed to init wal module since %s", tstrerror(code));
|
||||
atomic_store_8(&tsWal.inited, 0);
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "tfile.h"
|
||||
#include "walInt.h"
|
||||
#include "taoserror.h"
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#define _DEFAULT_SOURCE
|
||||
#include "os.h"
|
||||
#include "taoserror.h"
|
||||
#include "tfile.h"
|
||||
#include "tref.h"
|
||||
#include "walInt.h"
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "os.h"
|
||||
#include "taoserror.h"
|
||||
#include "tchecksum.h"
|
||||
#include "tfile.h"
|
||||
#include "walInt.h"
|
||||
|
||||
int32_t walCommit(SWal *pWal, int64_t ver) {
|
||||
|
|
|
@ -16,14 +16,12 @@
|
|||
#define _GNU_SOURCE
|
||||
#define _XOPEN_SOURCE
|
||||
#define _DEFAULT_SOURCE
|
||||
|
||||
#include "tcompare.h"
|
||||
#include "regex.h"
|
||||
#include "thash.h"
|
||||
#include "types.h"
|
||||
#include "tlog.h"
|
||||
#include "tdef.h"
|
||||
#include "taos.h"
|
||||
#include "thash.h"
|
||||
#include "tlog.h"
|
||||
#include "types.h"
|
||||
|
||||
int32_t setChkInBytes1(const void *pLeft, const void *pRight) {
|
||||
return NULL != taosHashGet((SHashObj *)pRight, pLeft, 1) ? 1 : 0;
|
||||
|
@ -57,7 +55,6 @@ int32_t setChkNotInBytes8(const void *pLeft, const void *pRight) {
|
|||
return NULL == taosHashGet((SHashObj *)pRight, pLeft, 8) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
int32_t compareChkInString(const void *pLeft, const void *pRight) {
|
||||
return NULL != taosHashGet((SHashObj *)pRight, varDataVal(pLeft), varDataLen(pLeft)) ? 1 : 0;
|
||||
}
|
||||
|
@ -66,7 +63,6 @@ int32_t compareChkNotInString(const void *pLeft, const void* pRight) {
|
|||
return NULL == taosHashGet((SHashObj *)pRight, varDataVal(pLeft), varDataLen(pLeft)) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
int32_t compareInt8Val(const void *pLeft, const void *pRight) {
|
||||
int8_t left = GET_INT8_VAL(pLeft), right = GET_INT8_VAL(pRight);
|
||||
if (left > right) return 1;
|
||||
|
@ -74,9 +70,7 @@ int32_t compareInt8Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareInt8ValDesc(const void *pLeft, const void *pRight) {
|
||||
return compareInt8Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareInt8ValDesc(const void *pLeft, const void *pRight) { return compareInt8Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareInt16Val(const void *pLeft, const void *pRight) {
|
||||
int16_t left = GET_INT16_VAL(pLeft), right = GET_INT16_VAL(pRight);
|
||||
|
@ -85,9 +79,7 @@ int32_t compareInt16Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareInt16ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareInt16Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareInt16ValDesc(const void *pLeft, const void *pRight) { return compareInt16Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareInt32Val(const void *pLeft, const void *pRight) {
|
||||
int32_t left = GET_INT32_VAL(pLeft), right = GET_INT32_VAL(pRight);
|
||||
|
@ -96,9 +88,7 @@ int32_t compareInt32Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareInt32ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareInt32Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareInt32ValDesc(const void *pLeft, const void *pRight) { return compareInt32Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareInt64Val(const void *pLeft, const void *pRight) {
|
||||
int64_t left = GET_INT64_VAL(pLeft), right = GET_INT64_VAL(pRight);
|
||||
|
@ -107,9 +97,7 @@ int32_t compareInt64Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareInt64ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareInt64Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareInt64ValDesc(const void *pLeft, const void *pRight) { return compareInt64Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareUint32Val(const void *pLeft, const void *pRight) {
|
||||
uint32_t left = GET_UINT32_VAL(pLeft), right = GET_UINT32_VAL(pRight);
|
||||
|
@ -118,9 +106,7 @@ int32_t compareUint32Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareUint32ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareUint32Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareUint32ValDesc(const void *pLeft, const void *pRight) { return compareUint32Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareUint64Val(const void *pLeft, const void *pRight) {
|
||||
uint64_t left = GET_UINT64_VAL(pLeft), right = GET_UINT64_VAL(pRight);
|
||||
|
@ -129,9 +115,7 @@ int32_t compareUint64Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareUint64ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareUint64Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareUint64ValDesc(const void *pLeft, const void *pRight) { return compareUint64Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareUint16Val(const void *pLeft, const void *pRight) {
|
||||
uint16_t left = GET_UINT16_VAL(pLeft), right = GET_UINT16_VAL(pRight);
|
||||
|
@ -140,9 +124,7 @@ int32_t compareUint16Val(const void *pLeft, const void *pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareUint16ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareUint16Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareUint16ValDesc(const void *pLeft, const void *pRight) { return compareUint16Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareUint8Val(const void *pLeft, const void *pRight) {
|
||||
uint8_t left = GET_UINT8_VAL(pLeft), right = GET_UINT8_VAL(pRight);
|
||||
|
@ -151,9 +133,7 @@ int32_t compareUint8Val(const void* pLeft, const void* pRight) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t compareUint8ValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareUint8Val(pRight, pLeft);
|
||||
}
|
||||
int32_t compareUint8ValDesc(const void *pLeft, const void *pRight) { return compareUint8Val(pRight, pLeft); }
|
||||
|
||||
int32_t compareFloatVal(const void *pLeft, const void *pRight) {
|
||||
float p1 = GET_FLOAT_VAL(pLeft);
|
||||
|
@ -176,9 +156,7 @@ int32_t compareFloatVal(const void *pLeft, const void *pRight) {
|
|||
return FLT_GREATER(p1, p2) ? 1 : -1;
|
||||
}
|
||||
|
||||
int32_t compareFloatValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareFloatVal(pRight, pLeft);
|
||||
}
|
||||
int32_t compareFloatValDesc(const void *pLeft, const void *pRight) { return compareFloatVal(pRight, pLeft); }
|
||||
|
||||
int32_t compareDoubleVal(const void *pLeft, const void *pRight) {
|
||||
double p1 = GET_DOUBLE_VAL(pLeft);
|
||||
|
@ -201,9 +179,7 @@ int32_t compareDoubleVal(const void *pLeft, const void *pRight) {
|
|||
return FLT_GREATER(p1, p2) ? 1 : -1;
|
||||
}
|
||||
|
||||
int32_t compareDoubleValDesc(const void* pLeft, const void* pRight) {
|
||||
return compareDoubleVal(pRight, pLeft);
|
||||
}
|
||||
int32_t compareDoubleValDesc(const void *pLeft, const void *pRight) { return compareDoubleVal(pRight, pLeft); }
|
||||
|
||||
int32_t compareLenPrefixedStr(const void *pLeft, const void *pRight) {
|
||||
int32_t len1 = varDataLen(pLeft);
|
||||
|
@ -304,7 +280,10 @@ int32_t patternMatch(const char *patterStr, const char *str, size_t size, const
|
|||
++o;
|
||||
|
||||
if (j <= size) {
|
||||
if (c == '\\' && patterStr[i] == '_' && c1 == '_') { i++; continue; }
|
||||
if (c == '\\' && patterStr[i] == '_' && c1 == '_') {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (c == c1 || tolower(c) == tolower(c1) || (c == pInfo->matchOne && c1 != 0)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -368,9 +347,7 @@ int32_t WCSPatternMatch(const wchar_t *patterStr, const wchar_t *str, size_t siz
|
|||
return (str[j] == 0 || j >= size) ? TSDB_PATTERN_MATCH : TSDB_PATTERN_NOMATCH;
|
||||
}
|
||||
|
||||
int32_t compareStrRegexCompMatch(const void* pLeft, const void* pRight) {
|
||||
return compareStrRegexComp(pLeft, pRight);
|
||||
}
|
||||
int32_t compareStrRegexCompMatch(const void *pLeft, const void *pRight) { return compareStrRegexComp(pLeft, pRight); }
|
||||
|
||||
int32_t compareStrRegexCompNMatch(const void *pLeft, const void *pRight) {
|
||||
return compareStrRegexComp(pLeft, pRight) ? 0 : 1;
|
||||
|
@ -420,7 +397,6 @@ int32_t taosArrayCompareString(const void* a, const void* b) {
|
|||
return compareLenPrefixedStr(x, y);
|
||||
}
|
||||
|
||||
|
||||
int32_t compareStrPatternMatch(const void *pLeft, const void *pRight) {
|
||||
SPatternCompareInfo pInfo = {'%', '_'};
|
||||
|
||||
|
@ -461,7 +437,6 @@ int32_t compareWStrPatternNotMatch(const void* pLeft, const void* pRight) {
|
|||
return compareWStrPatternMatch(pLeft, pRight) ? 0 : 1;
|
||||
}
|
||||
|
||||
|
||||
__compar_fn_t getComparFunc(int32_t type, int32_t optr) {
|
||||
__compar_fn_t comparFn = NULL;
|
||||
|
||||
|
@ -513,13 +488,25 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
|
|||
|
||||
switch (type) {
|
||||
case TSDB_DATA_TYPE_BOOL:
|
||||
case TSDB_DATA_TYPE_TINYINT: comparFn = compareInt8Val; break;
|
||||
case TSDB_DATA_TYPE_SMALLINT: comparFn = compareInt16Val; break;
|
||||
case TSDB_DATA_TYPE_INT: comparFn = compareInt32Val; break;
|
||||
case TSDB_DATA_TYPE_TINYINT:
|
||||
comparFn = compareInt8Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_SMALLINT:
|
||||
comparFn = compareInt16Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_INT:
|
||||
comparFn = compareInt32Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BIGINT:
|
||||
case TSDB_DATA_TYPE_TIMESTAMP: comparFn = compareInt64Val; break;
|
||||
case TSDB_DATA_TYPE_FLOAT: comparFn = compareFloatVal; break;
|
||||
case TSDB_DATA_TYPE_DOUBLE: comparFn = compareDoubleVal; break;
|
||||
case TSDB_DATA_TYPE_TIMESTAMP:
|
||||
comparFn = compareInt64Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_FLOAT:
|
||||
comparFn = compareFloatVal;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_DOUBLE:
|
||||
comparFn = compareDoubleVal;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_BINARY: {
|
||||
if (optr == OP_TYPE_MATCH) {
|
||||
comparFn = compareStrRegexCompMatch;
|
||||
|
@ -559,10 +546,18 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
|
|||
break;
|
||||
}
|
||||
|
||||
case TSDB_DATA_TYPE_UTINYINT: comparFn = compareUint8Val; break;
|
||||
case TSDB_DATA_TYPE_USMALLINT: comparFn = compareUint16Val;break;
|
||||
case TSDB_DATA_TYPE_UINT: comparFn = compareUint32Val;break;
|
||||
case TSDB_DATA_TYPE_UBIGINT: comparFn = compareUint64Val;break;
|
||||
case TSDB_DATA_TYPE_UTINYINT:
|
||||
comparFn = compareUint8Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_USMALLINT:
|
||||
comparFn = compareUint16Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_UINT:
|
||||
comparFn = compareUint32Val;
|
||||
break;
|
||||
case TSDB_DATA_TYPE_UBIGINT:
|
||||
comparFn = compareUint64Val;
|
||||
break;
|
||||
|
||||
default:
|
||||
comparFn = compareInt32Val;
|
||||
|
@ -572,8 +567,6 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
|
|||
return comparFn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
__compar_fn_t getKeyComparFunc(int32_t keyType, int32_t order) {
|
||||
__compar_fn_t comparFn = NULL;
|
||||
|
||||
|
@ -626,17 +619,27 @@ __compar_fn_t getKeyComparFunc(int32_t keyType, int32_t order) {
|
|||
|
||||
int32_t doCompare(const char *f1, const char *f2, int32_t type, size_t size) {
|
||||
switch (type) {
|
||||
case TSDB_DATA_TYPE_INT: DEFAULT_COMP(GET_INT32_VAL(f1), GET_INT32_VAL(f2));
|
||||
case TSDB_DATA_TYPE_DOUBLE: DEFAULT_DOUBLE_COMP(GET_DOUBLE_VAL(f1), GET_DOUBLE_VAL(f2));
|
||||
case TSDB_DATA_TYPE_FLOAT: DEFAULT_FLOAT_COMP(GET_FLOAT_VAL(f1), GET_FLOAT_VAL(f2));
|
||||
case TSDB_DATA_TYPE_BIGINT: DEFAULT_COMP(GET_INT64_VAL(f1), GET_INT64_VAL(f2));
|
||||
case TSDB_DATA_TYPE_SMALLINT: DEFAULT_COMP(GET_INT16_VAL(f1), GET_INT16_VAL(f2));
|
||||
case TSDB_DATA_TYPE_INT:
|
||||
DEFAULT_COMP(GET_INT32_VAL(f1), GET_INT32_VAL(f2));
|
||||
case TSDB_DATA_TYPE_DOUBLE:
|
||||
DEFAULT_DOUBLE_COMP(GET_DOUBLE_VAL(f1), GET_DOUBLE_VAL(f2));
|
||||
case TSDB_DATA_TYPE_FLOAT:
|
||||
DEFAULT_FLOAT_COMP(GET_FLOAT_VAL(f1), GET_FLOAT_VAL(f2));
|
||||
case TSDB_DATA_TYPE_BIGINT:
|
||||
DEFAULT_COMP(GET_INT64_VAL(f1), GET_INT64_VAL(f2));
|
||||
case TSDB_DATA_TYPE_SMALLINT:
|
||||
DEFAULT_COMP(GET_INT16_VAL(f1), GET_INT16_VAL(f2));
|
||||
case TSDB_DATA_TYPE_TINYINT:
|
||||
case TSDB_DATA_TYPE_BOOL: DEFAULT_COMP(GET_INT8_VAL(f1), GET_INT8_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UTINYINT: DEFAULT_COMP(GET_UINT8_VAL(f1), GET_UINT8_VAL(f2));
|
||||
case TSDB_DATA_TYPE_USMALLINT: DEFAULT_COMP(GET_UINT16_VAL(f1), GET_UINT16_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UINT: DEFAULT_COMP(GET_UINT32_VAL(f1), GET_UINT32_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UBIGINT: DEFAULT_COMP(GET_UINT64_VAL(f1), GET_UINT64_VAL(f2));
|
||||
case TSDB_DATA_TYPE_BOOL:
|
||||
DEFAULT_COMP(GET_INT8_VAL(f1), GET_INT8_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UTINYINT:
|
||||
DEFAULT_COMP(GET_UINT8_VAL(f1), GET_UINT8_VAL(f2));
|
||||
case TSDB_DATA_TYPE_USMALLINT:
|
||||
DEFAULT_COMP(GET_UINT16_VAL(f1), GET_UINT16_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UINT:
|
||||
DEFAULT_COMP(GET_UINT32_VAL(f1), GET_UINT32_VAL(f2));
|
||||
case TSDB_DATA_TYPE_UBIGINT:
|
||||
DEFAULT_COMP(GET_UINT64_VAL(f1), GET_UINT64_VAL(f2));
|
||||
case TSDB_DATA_TYPE_NCHAR: {
|
||||
tstr *t1 = (tstr *)f1;
|
||||
tstr *t2 = (tstr *)f2;
|
||||
|
@ -667,4 +670,3 @@ int32_t doCompare(const char* f1, const char* f2, int32_t type, size_t size) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
#include "tconfig.h"
|
||||
#include "taoserror.h"
|
||||
#include "thash.h"
|
||||
#include "tutil.h"
|
||||
#include "tlog.h"
|
||||
#include "tutil.h"
|
||||
|
||||
#define CFG_NAME_PRINT_LEN 24
|
||||
#define CFG_SRC_PRINT_LEN 12
|
||||
|
|
|
@ -1,170 +0,0 @@
|
|||
/*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#define _DEFAULT_SOURCE
|
||||
#include "os.h"
|
||||
#include "taoserror.h"
|
||||
#include "tref.h"
|
||||
#include "tutil.h"
|
||||
#include "tlog.h"
|
||||
|
||||
static int32_t tsFileRsetId = -1;
|
||||
|
||||
static int8_t tfInited = 0;
|
||||
|
||||
// static void tfCloseFile(void *p) { taosCloseFile((TdFilePtr)(uintptr_t)p); }
|
||||
|
||||
int32_t tfInit() {
|
||||
// int8_t old = atomic_val_compare_exchange_8(&tfInited, 0, 1);
|
||||
// if (old == 1) return 0;
|
||||
// tsFileRsetId = taosOpenRef(2000, tfCloseFile);
|
||||
// if (tsFileRsetId > 0) {
|
||||
// return 0;
|
||||
// } else {
|
||||
// atomic_store_8(&tfInited, 0);
|
||||
// return -1;
|
||||
// }
|
||||
}
|
||||
|
||||
void tfCleanup() {
|
||||
// atomic_store_8(&tfInited, 0);
|
||||
// if (tsFileRsetId >= 0) taosCloseRef(tsFileRsetId);
|
||||
// tsFileRsetId = -1;
|
||||
}
|
||||
|
||||
// static int64_t tfOpenImp(TdFilePtr pFile) {
|
||||
// if (pFile == NULL) {
|
||||
// terrno = TAOS_SYSTEM_ERROR(errno);
|
||||
// return -1;
|
||||
// }
|
||||
|
||||
// void * p = (void *)(int64_t)pFile;
|
||||
// int64_t rid = taosAddRef(tsFileRsetId, p);
|
||||
// if (rid < 0) taosCloseFile(&pFile);
|
||||
|
||||
// return rid;
|
||||
// }
|
||||
|
||||
// int64_t tfOpenRead(const char *pathname, int32_t flags) {
|
||||
// int32_t pFile = taosOpenFile(pathname, TD_FILE_READ);
|
||||
// return tfOpenImp(fd);
|
||||
// }
|
||||
|
||||
// int64_t tfOpenReadWrite(const char *pathname, int32_t flags) {
|
||||
// int32_t pFile = taosOpenFile(pathname, TD_FILE_READ | TD_FILE_WRITE);
|
||||
// return tfOpenImp(fd);
|
||||
// }
|
||||
|
||||
// int64_t tfOpenCreateWrite(const char *pathname, int32_t flags, mode_t mode) {
|
||||
// int32_t pFile = taosOpenFile(pathname, TD_FILE_CTEATE | TD_FILE_WRITE);
|
||||
// return tfOpenImp(fd);
|
||||
// }
|
||||
|
||||
// int64_t tfOpenCreateWriteAppend(const char *pathname, int32_t flags, mode_t mode) {
|
||||
// int32_t pFile = taosOpenFile(pathname, TD_FILE_CTEATE | TD_FILE_WRITE | TD_FILE_APPEND);
|
||||
// return tfOpenImp(fd);
|
||||
// }
|
||||
|
||||
// int64_t tfClose(int64_t tfd) { return taosRemoveRef(tsFileRsetId, tfd); }
|
||||
|
||||
// int64_t tfWrite(int64_t tfd, void *buf, int64_t count) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
|
||||
// int64_t ret = taosWriteFile(pFile, buf, count);
|
||||
// if (ret < 0) terrno = TAOS_SYSTEM_ERROR(errno);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
// int64_t tfRead(int64_t tfd, void *buf, int64_t count) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
|
||||
// int64_t ret = taosReadFile(pFile, buf, count);
|
||||
// if (ret < 0) terrno = TAOS_SYSTEM_ERROR(errno);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
// int64_t tfPread(int64_t tfd, void *buf, int64_t count, int32_t offset) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
|
||||
// int64_t ret = pread(fd, buf, count, offset);
|
||||
// if (ret < 0) terrno = TAOS_SYSTEM_ERROR(errno);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
// int32_t tfFsync(int64_t tfd) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
// int32_t code = taosFsyncFile(pFile);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return code;
|
||||
// }
|
||||
|
||||
// bool tfValid(int64_t tfd) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return false;
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return true;
|
||||
// }
|
||||
|
||||
// int64_t tfLseek(int64_t tfd, int64_t offset, int32_t whence) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
// int64_t ret = taosLSeekFile(fd, offset, whence);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
// int32_t tfFtruncate(int64_t tfd, int64_t length) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return -1;
|
||||
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
// int32_t code = taosFtruncateFile(fd, length);
|
||||
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return code;
|
||||
// }
|
||||
|
||||
// void *tfMmapReadOnly(int64_t tfd, int64_t length) {
|
||||
// void *p = taosAcquireRef(tsFileRsetId, tfd);
|
||||
// if (p == NULL) return NULL;
|
||||
// int32_t pFile = (TdFilePtr)(uintptr_t)p;
|
||||
|
||||
// void *ptr = mmap(NULL, length, PROT_READ, MAP_SHARED, fd, 0);
|
||||
// taosReleaseRef(tsFileRsetId, tfd);
|
||||
// return ptr;
|
||||
// }
|
Loading…
Reference in New Issue