Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
68f3de61
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
68f3de61
编写于
2月 28, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove tfile
上级
7eec493a
变更
25
显示空白变更内容
内联
并排
Showing
25 changed file
with
402 addition
and
652 deletion
+402
-652
include/util/tconfig.h
include/util/tconfig.h
+6
-7
include/util/tdef.h
include/util/tdef.h
+263
-267
include/util/tfile.h
include/util/tfile.h
+0
-51
source/libs/index/inc/indexInt.h
source/libs/index/inc/indexInt.h
+3
-1
source/libs/index/inc/index_cache.h
source/libs/index/inc/index_cache.h
+1
-2
source/libs/index/inc/index_fst.h
source/libs/index/inc/index_fst.h
+2
-1
source/libs/index/inc/index_fst_automation.h
source/libs/index/inc/index_fst_automation.h
+1
-0
source/libs/index/inc/index_fst_counting_writer.h
source/libs/index/inc/index_fst_counting_writer.h
+2
-2
source/libs/index/inc/index_fst_node.h
source/libs/index/inc/index_fst_node.h
+1
-0
source/libs/index/inc/index_fst_registry.h
source/libs/index/inc/index_fst_registry.h
+1
-1
source/libs/index/inc/index_fst_util.h
source/libs/index/inc/index_fst_util.h
+1
-1
source/libs/index/inc/index_tfile.h
source/libs/index/inc/index_tfile.h
+0
-1
source/libs/index/inc/index_util.h
source/libs/index/inc/index_util.h
+1
-1
source/libs/index/src/index_fst_counting_writer.c
source/libs/index/src/index_fst_counting_writer.c
+2
-0
source/libs/index/src/index_fst_registry.c
source/libs/index/src/index_fst_registry.c
+1
-0
source/libs/index/test/fstTest.cc
source/libs/index/test/fstTest.cc
+0
-14
source/libs/index/test/fstUT.cc
source/libs/index/test/fstUT.cc
+0
-3
source/libs/index/test/indexTests.cc
source/libs/index/test/indexTests.cc
+0
-5
source/libs/wal/src/walMgmt.c
source/libs/wal/src/walMgmt.c
+1
-8
source/libs/wal/src/walRead.c
source/libs/wal/src/walRead.c
+0
-1
source/libs/wal/src/walSeek.c
source/libs/wal/src/walSeek.c
+0
-1
source/libs/wal/src/walWrite.c
source/libs/wal/src/walWrite.c
+0
-1
source/util/src/tcompare.c
source/util/src/tcompare.c
+115
-113
source/util/src/tconfig.c
source/util/src/tconfig.c
+1
-1
source/util/src/tfile.c
source/util/src/tfile.c
+0
-170
未找到文件。
include/util/tconfig.h
浏览文件 @
68f3de61
...
...
@@ -17,7 +17,6 @@
#ifndef _TD_CONFIG_H_
#define _TD_CONFIG_H_
#include "os.h"
#include "tarray.h"
#ifdef __cplusplus
...
...
include/util/tdef.h
浏览文件 @
68f3de61
...
...
@@ -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,19 +94,21 @@ 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) \
do {
\
memcpy((void *)(dst), (void *)(&((ptr)->member)), T_MEMBER_SIZE(type, member));
\
dst = (void *)((char *)(dst) + T_MEMBER_SIZE(type, member));
\
} while
(0)
do {
\
memcpy((void *)(dst), (void *)(&((ptr)->member)), T_MEMBER_SIZE(type, member));
\
dst = (void *)((char *)(dst) + T_MEMBER_SIZE(type, member));
\
} while
(0)
#define T_READ_MEMBER(src, type, target) \
do {
\
do {
\
(target) = *(type *)(src); \
(src) = (void *)((char *)src + sizeof(type));
\
} while
(0)
(src) = (void *)((char *)src + sizeof(type));
\
} while
(0)
typedef
enum
EOperatorType
{
// arithmetic operator
...
...
@@ -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
...
...
@@ -177,7 +175,7 @@ typedef enum ELogicConditionType {
#define TSDB_ACCT_ID_LEN 11
#define TSDB_MAX_COLUMNS 4096
#define TSDB_MIN_COLUMNS
2 //
PRIMARY COLUMN(timestamp) + other columns
#define TSDB_MIN_COLUMNS
2 //
PRIMARY COLUMN(timestamp) + other columns
#define TSDB_NODE_NAME_LEN 64
#define TSDB_TABLE_NAME_LEN 193 // it is a null-terminated string
...
...
@@ -203,11 +201,11 @@ typedef enum ELogicConditionType {
#define TSDB_MAX_SAVED_SQL_LEN TSDB_MAX_COLUMNS * 64
#define TSDB_MAX_SQL_LEN TSDB_PAYLOAD_SIZE
#define TSDB_MAX_SQL_SHOW_LEN 1024
#define TSDB_MAX_ALLOWED_SQL_LEN
(1*1024*1024u)
// sql length should be less than 1mb
#define TSDB_MAX_ALLOWED_SQL_LEN
(1 * 1024 * 1024u)
// sql length should be less than 1mb
#define TSDB_APP_NAME_LEN TSDB_UNI_LEN
#define TSDB_STB_COMMENT_LEN 1024
/**
/**
* In some scenarios uint16_t (0~65535) is used to store the row len.
* - Firstly, we use 65531(65535 - 4), as the SDataRow/SKVRow contains 4 bits header.
* - Secondly, if all cols are VarDataT type except primary key, we need 4 bits to store the offset, thus
...
...
@@ -254,7 +252,7 @@ typedef enum ELogicConditionType {
#define TSDB_DB_TYPE_DEFAULT 0
#define TSDB_DB_TYPE_TOPIC 1
#define TSDB_DEFAULT_PKT_SIZE
65480 //
same as RPC_MAX_UDP_SIZE
#define TSDB_DEFAULT_PKT_SIZE
65480 //
same as RPC_MAX_UDP_SIZE
#define TSDB_PAYLOAD_SIZE TSDB_DEFAULT_PKT_SIZE
#define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value
...
...
@@ -342,8 +340,8 @@ typedef enum ELogicConditionType {
#define TSDB_MAX_UNION_CLAUSE 5
#define TSDB_MAX_FIELD_LEN 16384
#define TSDB_MAX_BINARY_LEN (TSDB_MAX_FIELD_LEN
-TSDB_KEYSIZE)
// keep 16384
#define TSDB_MAX_NCHAR_LEN (TSDB_MAX_FIELD_LEN
-TSDB_KEYSIZE)
// keep 16384
#define TSDB_MAX_BINARY_LEN (TSDB_MAX_FIELD_LEN
- TSDB_KEYSIZE)
// keep 16384
#define TSDB_MAX_NCHAR_LEN (TSDB_MAX_FIELD_LEN
- TSDB_KEYSIZE)
// keep 16384
#define PRIMARYKEY_TIMESTAMP_COL_ID 1
#define COL_REACH_END(colId, maxColId) ((colId) > (maxColId))
...
...
@@ -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
...
...
@@ -394,7 +390,7 @@ typedef enum ELogicConditionType {
#define TSDB_DEFAULT_STABLES_HASH_SIZE 100
#define TSDB_DEFAULT_CTABLES_HASH_SIZE 20000
#define TSDB_MAX_WAL_SIZE
(1024*1024*
3)
#define TSDB_MAX_WAL_SIZE
(1024 * 1024 *
3)
#define TSDB_ARB_DUMMY_TIME 4765104000000 // 2121-01-01 00:00:00.000, :P
...
...
include/util/tfile.h
已删除
100644 → 0
浏览文件 @
7eec493a
/*
* 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*/
source/libs/index/inc/indexInt.h
浏览文件 @
68f3de61
...
...
@@ -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"
...
...
source/libs/index/inc/index_cache.h
浏览文件 @
68f3de61
...
...
@@ -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
...
...
source/libs/index/inc/index_fst.h
浏览文件 @
68f3de61
...
...
@@ -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)
...
...
source/libs/index/inc/index_fst_automation.h
浏览文件 @
68f3de61
...
...
@@ -19,6 +19,7 @@
extern
"C"
{
#endif
#include "indexInt.h"
#include "index_fst_util.h"
typedef
struct
AutomationCtx
AutomationCtx
;
...
...
source/libs/index/inc/index_fst_counting_writer.h
浏览文件 @
68f3de61
...
...
@@ -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
...
...
source/libs/index/inc/index_fst_node.h
浏览文件 @
68f3de61
...
...
@@ -20,6 +20,7 @@
extern
"C"
{
#endif
#include "indexInt.h"
#include "index_fst_counting_writer.h"
#include "index_fst_util.h"
...
...
source/libs/index/inc/index_fst_registry.h
浏览文件 @
68f3de61
...
...
@@ -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
;
...
...
source/libs/index/inc/index_fst_util.h
浏览文件 @
68f3de61
...
...
@@ -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
;
...
...
source/libs/index/inc/index_tfile.h
浏览文件 @
68f3de61
...
...
@@ -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"
...
...
source/libs/index/inc/index_util.h
浏览文件 @
68f3de61
...
...
@@ -15,7 +15,7 @@
#ifndef __INDEX_UTIL_H__
#define __INDEX_UTIL_H__
#include "
tarray
.h"
#include "
indexInt
.h"
#ifdef __cplusplus
extern
"C"
{
...
...
source/libs/index/src/index_fst_counting_writer.c
浏览文件 @
68f3de61
...
...
@@ -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"
...
...
source/libs/index/src/index_fst_registry.c
浏览文件 @
68f3de61
...
...
@@ -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
)
{
...
...
source/libs/index/test/fstTest.cc
浏览文件 @
68f3de61
...
...
@@ -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
[])
{
...
...
source/libs/index/test/fstUT.cc
浏览文件 @
68f3de61
...
...
@@ -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:
...
...
source/libs/index/test/indexTests.cc
浏览文件 @
68f3de61
...
...
@@ -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
;
};
...
...
source/libs/wal/src/walMgmt.c
浏览文件 @
68f3de61
...
...
@@ -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
);
...
...
source/libs/wal/src/walRead.c
浏览文件 @
68f3de61
...
...
@@ -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"
...
...
source/libs/wal/src/walSeek.c
浏览文件 @
68f3de61
...
...
@@ -16,7 +16,6 @@
#define _DEFAULT_SOURCE
#include "os.h"
#include "taoserror.h"
#include "tfile.h"
#include "tref.h"
#include "walInt.h"
...
...
source/libs/wal/src/walWrite.c
浏览文件 @
68f3de61
...
...
@@ -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
)
{
...
...
source/util/src/tcompare.c
浏览文件 @
68f3de61
...
...
@@ -16,14 +16,12 @@
#define _GNU_SOURCE
#define _XOPEN_SOURCE
#define _DEFAULT_SOURCE
#include "tcompare.h"
#include "regex.h"
#include "tdef.h"
#include "thash.h"
#include "types.h"
#include "tlog.h"
#include "tdef.h"
#include "taos.h"
#include "types.h"
int32_t
setChkInBytes1
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
NULL
!=
taosHashGet
((
SHashObj
*
)
pRight
,
pLeft
,
1
)
?
1
:
0
;
...
...
@@ -57,16 +55,14 @@ 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
)
{
int32_t
compareChkInString
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
NULL
!=
taosHashGet
((
SHashObj
*
)
pRight
,
varDataVal
(
pLeft
),
varDataLen
(
pLeft
))
?
1
:
0
;
}
int32_t
compareChkNotInString
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
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,20 +124,16 @@ 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
)
{
int32_t
compareUint8Val
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
uint8_t
left
=
GET_UINT8_VAL
(
pLeft
),
right
=
GET_UINT8_VAL
(
pRight
);
if
(
left
>
right
)
return
1
;
if
(
left
<
right
)
return
-
1
;
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
);
...
...
@@ -173,12 +153,10 @@ int32_t compareFloatVal(const void *pLeft, const void *pRight) {
if
(
FLT_EQUAL
(
p1
,
p2
))
{
return
0
;
}
return
FLT_GREATER
(
p1
,
p2
)
?
1
:
-
1
;
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
);
...
...
@@ -198,30 +176,28 @@ int32_t compareDoubleVal(const void *pLeft, const void *pRight) {
if
(
FLT_EQUAL
(
p1
,
p2
))
{
return
0
;
}
return
FLT_GREATER
(
p1
,
p2
)
?
1
:
-
1
;
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
);
int32_t
len2
=
varDataLen
(
pRight
);
if
(
len1
!=
len2
)
{
return
len1
>
len2
?
1
:
-
1
;
return
len1
>
len2
?
1
:
-
1
;
}
else
{
int32_t
ret
=
strncmp
(
varDataVal
(
pLeft
),
varDataVal
(
pRight
),
len1
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
return
ret
>
0
?
1
:
-
1
;
return
ret
>
0
?
1
:
-
1
;
}
}
}
int32_t
compareLenPrefixedStrDesc
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareLenPrefixedStrDesc
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
compareLenPrefixedStr
(
pRight
,
pLeft
);
}
...
...
@@ -230,9 +206,9 @@ int32_t compareLenPrefixedWStr(const void *pLeft, const void *pRight) {
int32_t
len2
=
varDataLen
(
pRight
);
if
(
len1
!=
len2
)
{
return
len1
>
len2
?
1
:
-
1
;
return
len1
>
len2
?
1
:
-
1
;
}
else
{
int32_t
ret
=
memcmp
((
wchar_t
*
)
pLeft
,
(
wchar_t
*
)
pRight
,
len1
);
int32_t
ret
=
memcmp
((
wchar_t
*
)
pLeft
,
(
wchar_t
*
)
pRight
,
len1
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
...
...
@@ -241,7 +217,7 @@ int32_t compareLenPrefixedWStr(const void *pLeft, const void *pRight) {
}
}
int32_t
compareLenPrefixedWStrDesc
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareLenPrefixedWStrDesc
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
compareLenPrefixedWStr
(
pRight
,
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,15 +347,13 @@ 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
)
{
int32_t
compareStrRegexCompNMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
compareStrRegexComp
(
pLeft
,
pRight
)
?
0
:
1
;
}
int32_t
compareStrRegexComp
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareStrRegexComp
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
size_t
sz
=
varDataLen
(
pRight
);
char
*
pattern
=
malloc
(
sz
+
1
);
memcpy
(
pattern
,
varDataVal
(
pRight
),
varDataLen
(
pRight
));
...
...
@@ -413,15 +390,14 @@ int32_t compareStrRegexComp(const void* pLeft, const void* pRight) {
return
result
;
}
int32_t
taosArrayCompareString
(
const
void
*
a
,
const
void
*
b
)
{
const
char
*
x
=
*
(
const
char
**
)
a
;
const
char
*
y
=
*
(
const
char
**
)
b
;
int32_t
taosArrayCompareString
(
const
void
*
a
,
const
void
*
b
)
{
const
char
*
x
=
*
(
const
char
**
)
a
;
const
char
*
y
=
*
(
const
char
**
)
b
;
return
compareLenPrefixedStr
(
x
,
y
);
}
int32_t
compareStrPatternMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareStrPatternMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
SPatternCompareInfo
pInfo
=
{
'%'
,
'_'
};
assert
(
varDataLen
(
pRight
)
<=
TSDB_MAX_FIELD_LEN
);
...
...
@@ -439,11 +415,11 @@ int32_t compareStrPatternMatch(const void* pLeft, const void* pRight) {
return
(
ret
==
TSDB_PATTERN_MATCH
)
?
0
:
1
;
}
int32_t
compareStrPatternNotMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareStrPatternNotMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
compareStrPatternMatch
(
pLeft
,
pRight
)
?
0
:
1
;
}
int32_t
compareWStrPatternMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareWStrPatternMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
SPatternCompareInfo
pInfo
=
{
'%'
,
'_'
};
assert
(
varDataLen
(
pRight
)
<=
TSDB_MAX_FIELD_LEN
*
TSDB_NCHAR_SIZE
);
...
...
@@ -451,17 +427,16 @@ int32_t compareWStrPatternMatch(const void* pLeft, const void* pRight) {
wchar_t
*
pattern
=
calloc
(
varDataLen
(
pRight
)
+
1
,
sizeof
(
wchar_t
));
memcpy
(
pattern
,
varDataVal
(
pRight
),
varDataLen
(
pRight
));
int32_t
ret
=
WCSPatternMatch
(
pattern
,
varDataVal
(
pLeft
),
varDataLen
(
pLeft
)
/
TSDB_NCHAR_SIZE
,
&
pInfo
);
int32_t
ret
=
WCSPatternMatch
(
pattern
,
varDataVal
(
pLeft
),
varDataLen
(
pLeft
)
/
TSDB_NCHAR_SIZE
,
&
pInfo
);
free
(
pattern
);
return
(
ret
==
TSDB_PATTERN_MATCH
)
?
0
:
1
;
}
int32_t
compareWStrPatternNotMatch
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
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,99 +567,106 @@ __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
;
switch
(
keyType
)
{
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_BOOL
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt8Val
:
compareInt8ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt8Val
:
compareInt8ValDesc
;
break
;
case
TSDB_DATA_TYPE_SMALLINT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt16Val
:
compareInt16ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt16Val
:
compareInt16ValDesc
;
break
;
case
TSDB_DATA_TYPE_INT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt32Val
:
compareInt32ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt32Val
:
compareInt32ValDesc
;
break
;
case
TSDB_DATA_TYPE_BIGINT
:
case
TSDB_DATA_TYPE_TIMESTAMP
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt64Val
:
compareInt64ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt64Val
:
compareInt64ValDesc
;
break
;
case
TSDB_DATA_TYPE_FLOAT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareFloatVal
:
compareFloatValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareFloatVal
:
compareFloatValDesc
;
break
;
case
TSDB_DATA_TYPE_DOUBLE
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareDoubleVal
:
compareDoubleValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareDoubleVal
:
compareDoubleValDesc
;
break
;
case
TSDB_DATA_TYPE_UTINYINT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint8Val
:
compareUint8ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint8Val
:
compareUint8ValDesc
;
break
;
case
TSDB_DATA_TYPE_USMALLINT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint16Val
:
compareUint16ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint16Val
:
compareUint16ValDesc
;
break
;
case
TSDB_DATA_TYPE_UINT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint32Val
:
compareUint32ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint32Val
:
compareUint32ValDesc
;
break
;
case
TSDB_DATA_TYPE_UBIGINT
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint64Val
:
compareUint64ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareUint64Val
:
compareUint64ValDesc
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedStr
:
compareLenPrefixedStrDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedStr
:
compareLenPrefixedStrDesc
;
break
;
case
TSDB_DATA_TYPE_NCHAR
:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedWStr
:
compareLenPrefixedWStrDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedWStr
:
compareLenPrefixedWStrDesc
;
break
;
default:
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt32Val
:
compareInt32ValDesc
;
comparFn
=
(
order
==
TSDB_ORDER_ASC
)
?
compareInt32Val
:
compareInt32ValDesc
;
break
;
}
return
comparFn
;
}
int32_t
doCompare
(
const
char
*
f1
,
const
char
*
f2
,
int32_t
type
,
size_t
size
)
{
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
;
tstr
*
t1
=
(
tstr
*
)
f1
;
tstr
*
t2
=
(
tstr
*
)
f2
;
if
(
t1
->
len
!=
t2
->
len
)
{
return
t1
->
len
>
t2
->
len
?
1
:
-
1
;
return
t1
->
len
>
t2
->
len
?
1
:
-
1
;
}
int32_t
ret
=
memcmp
((
wchar_t
*
)
t1
,
(
wchar_t
*
)
t2
,
t2
->
len
);
int32_t
ret
=
memcmp
((
wchar_t
*
)
t1
,
(
wchar_t
*
)
t2
,
t2
->
len
);
if
(
ret
==
0
)
{
return
ret
;
}
return
(
ret
<
0
)
?
-
1
:
1
;
}
default:
{
// todo refactor
tstr
*
t1
=
(
tstr
*
)
f1
;
tstr
*
t2
=
(
tstr
*
)
f2
;
tstr
*
t1
=
(
tstr
*
)
f1
;
tstr
*
t2
=
(
tstr
*
)
f2
;
if
(
t1
->
len
!=
t2
->
len
)
{
return
t1
->
len
>
t2
->
len
?
1
:
-
1
;
return
t1
->
len
>
t2
->
len
?
1
:
-
1
;
}
else
{
int32_t
ret
=
strncmp
(
t1
->
data
,
t2
->
data
,
t1
->
len
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
return
ret
<
0
?
-
1
:
1
;
return
ret
<
0
?
-
1
:
1
;
}
}
}
}
}
source/util/src/tconfig.c
浏览文件 @
68f3de61
...
...
@@ -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
...
...
source/util/src/tfile.c
已删除
100644 → 0
浏览文件 @
7eec493a
/*
* 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;
// }
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录