Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
58243ab3
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
Star
22015
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看板
未验证
提交
58243ab3
编写于
10月 21, 2020
作者:
S
Shengliang Guan
提交者:
GitHub
10月 21, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3748 from freemine/namedtype
prefer named-type rather than void-type to reduce typos
上级
9b7915ca
1e3e85c0
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
94 addition
and
64 deletion
+94
-64
src/client/inc/tscSubquery.h
src/client/inc/tscSubquery.h
+1
-1
src/client/inc/tsclient.h
src/client/inc/tsclient.h
+6
-7
src/client/src/tscLocal.c
src/client/src/tscLocal.c
+1
-1
src/client/src/tscProfile.c
src/client/src/tscProfile.c
+3
-1
src/client/src/tscServer.c
src/client/src/tscServer.c
+1
-1
src/client/src/tscSql.c
src/client/src/tscSql.c
+13
-10
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+3
-3
src/inc/taos.h
src/inc/taos.h
+7
-6
src/kit/shell/inc/shell.h
src/kit/shell/inc/shell.h
+2
-2
src/kit/shell/src/shellEngine.c
src/kit/shell/src/shellEngine.c
+3
-3
src/kit/shell/src/shellImport.c
src/kit/shell/src/shellImport.c
+2
-2
src/plugins/http/inc/httpInt.h
src/plugins/http/inc/httpInt.h
+3
-3
src/plugins/http/src/httpGcJson.c
src/plugins/http/src/httpGcJson.c
+1
-1
src/plugins/http/src/httpRestJson.c
src/plugins/http/src/httpRestJson.c
+2
-2
src/plugins/http/src/httpSql.c
src/plugins/http/src/httpSql.c
+0
-2
tests/comparisonTest/tdengine/tdengineTest.c
tests/comparisonTest/tdengine/tdengineTest.c
+31
-14
tests/examples/c/demo.c
tests/examples/c/demo.c
+15
-5
未找到文件。
src/client/inc/tscSubquery.h
浏览文件 @
58243ab3
...
...
@@ -39,7 +39,7 @@ int32_t tscHandleMultivnodeInsert(SSqlObj *pSql);
int32_t
tscHandleInsertRetry
(
SSqlObj
*
pSql
);
void
tscBuildResFromSubqueries
(
SSqlObj
*
pSql
);
void
**
doSetResultRowData
(
SSqlObj
*
pSql
,
bool
finalResult
);
TAOS_ROW
doSetResultRowData
(
SSqlObj
*
pSql
,
bool
finalResult
);
#ifdef __cplusplus
}
...
...
src/client/inc/tsclient.h
浏览文件 @
58243ab3
...
...
@@ -308,7 +308,7 @@ typedef struct {
int32_t
numOfGroups
;
SResRec
*
pGroupRec
;
char
*
data
;
void
**
tsrow
;
TAOS_ROW
tsrow
;
int32_t
*
length
;
// length for each field for current row
char
**
buffer
;
// Buffer used to put multibytes encoded using unicode (wchar_t)
SColumnIndex
*
pColumnIndex
;
...
...
@@ -448,9 +448,8 @@ void tscCloseTscObj(STscObj *pObj);
// todo move to taos? or create a new file: taos_internal.h
TAOS
*
taos_connect_a
(
char
*
ip
,
char
*
user
,
char
*
pass
,
char
*
db
,
uint16_t
port
,
void
(
*
fp
)(
void
*
,
TAOS_RES
*
,
int
),
void
*
param
,
void
**
taos
);
void
*
param
,
TAOS
**
taos
);
TAOS_RES
*
taos_query_h
(
TAOS
*
taos
,
const
char
*
sqlstr
,
TAOS_RES
**
res
);
void
waitForQueryRsp
(
void
*
param
,
TAOS_RES
*
tres
,
int
code
);
void
doAsyncQuery
(
STscObj
*
pObj
,
SSqlObj
*
pSql
,
__async_cb_func_t
fp
,
void
*
param
,
const
char
*
sqlstr
,
size_t
sqlLen
);
...
...
@@ -481,11 +480,11 @@ static FORCE_INLINE void tscGetResultColumnChr(SSqlRes* pRes, SFieldInfo* pField
if
(
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_BINARY
)
{
pData
=
pInfo
->
pSqlExpr
->
param
[
1
].
pz
;
pRes
->
length
[
columnIndex
]
=
pInfo
->
pSqlExpr
->
param
[
1
].
nLen
;
pRes
->
tsrow
[
columnIndex
]
=
(
pInfo
->
pSqlExpr
->
param
[
1
].
nType
==
TSDB_DATA_TYPE_NULL
)
?
NULL
:
pData
;
pRes
->
tsrow
[
columnIndex
]
=
(
pInfo
->
pSqlExpr
->
param
[
1
].
nType
==
TSDB_DATA_TYPE_NULL
)
?
NULL
:
(
unsigned
char
*
)
pData
;
}
else
{
assert
(
bytes
==
tDataTypeDesc
[
type
].
nSize
);
pRes
->
tsrow
[
columnIndex
]
=
isNull
(
pData
,
type
)
?
NULL
:
&
pInfo
->
pSqlExpr
->
param
[
1
].
i64Key
;
pRes
->
tsrow
[
columnIndex
]
=
isNull
(
pData
,
type
)
?
NULL
:
(
unsigned
char
*
)
&
pInfo
->
pSqlExpr
->
param
[
1
].
i64Key
;
pRes
->
length
[
columnIndex
]
=
bytes
;
}
}
else
{
...
...
@@ -493,7 +492,7 @@ static FORCE_INLINE void tscGetResultColumnChr(SSqlRes* pRes, SFieldInfo* pField
int32_t
realLen
=
varDataLen
(
pData
);
assert
(
realLen
<=
bytes
-
VARSTR_HEADER_SIZE
);
pRes
->
tsrow
[
columnIndex
]
=
(
isNull
(
pData
,
type
))
?
NULL
:
((
tstr
*
)
pData
)
->
data
;
pRes
->
tsrow
[
columnIndex
]
=
(
isNull
(
pData
,
type
))
?
NULL
:
(
unsigned
char
*
)(
(
tstr
*
)
pData
)
->
data
;
if
(
realLen
<
pInfo
->
pSqlExpr
->
resBytes
-
VARSTR_HEADER_SIZE
)
{
// todo refactor
*
(
pData
+
realLen
+
VARSTR_HEADER_SIZE
)
=
0
;
}
...
...
@@ -502,7 +501,7 @@ static FORCE_INLINE void tscGetResultColumnChr(SSqlRes* pRes, SFieldInfo* pField
}
else
{
assert
(
bytes
==
tDataTypeDesc
[
type
].
nSize
);
pRes
->
tsrow
[
columnIndex
]
=
isNull
(
pData
,
type
)
?
NULL
:
pData
;
pRes
->
tsrow
[
columnIndex
]
=
isNull
(
pData
,
type
)
?
NULL
:
(
unsigned
char
*
)
pData
;
pRes
->
length
[
columnIndex
]
=
bytes
;
}
}
...
...
src/client/src/tscLocal.c
浏览文件 @
58243ab3
...
...
@@ -296,7 +296,7 @@ static int32_t tscProcessDescribeTable(SSqlObj *pSql) {
return
tscSetValueToResObj
(
pSql
,
rowLen
);
}
static
int32_t
tscGetNthFieldResult
(
TAOS_ROW
row
,
TAOS_FIELD
*
fields
,
int
*
lengths
,
int
idx
,
char
*
result
)
{
const
char
*
val
=
row
[
idx
];
const
char
*
val
=
(
const
char
*
)
row
[
idx
];
if
(
val
==
NULL
)
{
sprintf
(
result
,
"%s"
,
TSDB_DATA_NULL_STR
);
return
-
1
;
...
...
src/client/src/tscProfile.c
浏览文件 @
58243ab3
...
...
@@ -20,8 +20,10 @@
#include "tutil.h"
#include "taosmsg.h"
#include "taos.h"
void
tscSaveSlowQueryFp
(
void
*
handle
,
void
*
tmrId
);
void
*
tscSlowQueryConn
=
NULL
;
TAOS
*
tscSlowQueryConn
=
NULL
;
bool
tscSlowQueryConnInitialized
=
false
;
void
tscInitConnCb
(
void
*
param
,
TAOS_RES
*
result
,
int
code
)
{
...
...
src/client/src/tscServer.c
浏览文件 @
58243ab3
...
...
@@ -1366,7 +1366,7 @@ static int tscSetResultPointer(SQueryInfo *pQueryInfo, SSqlRes *pRes) {
for
(
int
i
=
0
;
i
<
pQueryInfo
->
fieldsInfo
.
numOfOutput
;
++
i
)
{
int16_t
offset
=
tscFieldInfoGetOffset
(
pQueryInfo
,
i
);
pRes
->
tsrow
[
i
]
=
((
char
*
)
pRes
->
data
+
offset
*
pRes
->
numOfRows
);
pRes
->
tsrow
[
i
]
=
(
unsigned
char
*
)(
(
char
*
)
pRes
->
data
+
offset
*
pRes
->
numOfRows
);
}
return
0
;
...
...
src/client/src/tscSql.c
浏览文件 @
58243ab3
...
...
@@ -51,8 +51,8 @@ static bool validPassword(const char* passwd) {
return
validImpl
(
passwd
,
TSDB_PASSWORD_LEN
-
1
);
}
SSqlObj
*
taosConnectImpl
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
auth
,
const
char
*
db
,
uint16_t
port
,
void
(
*
fp
)(
void
*
,
TAOS_RES
*
,
int
),
void
*
param
,
void
**
taos
)
{
static
SSqlObj
*
taosConnectImpl
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
auth
,
const
char
*
db
,
uint16_t
port
,
void
(
*
fp
)(
void
*
,
TAOS_RES
*
,
int
),
void
*
param
,
TAOS
**
taos
)
{
taos_init
();
if
(
!
validUserName
(
user
))
{
...
...
@@ -174,7 +174,7 @@ static void syncConnCallback(void *param, TAOS_RES *tres, int code) {
TAOS
*
taos_connect_internal
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
auth
,
const
char
*
db
,
uint16_t
port
)
{
STscObj
*
pObj
=
NULL
;
SSqlObj
*
pSql
=
taosConnectImpl
(
ip
,
user
,
pass
,
auth
,
db
,
port
,
syncConnCallback
,
NULL
,
(
void
**
)
&
pObj
);
SSqlObj
*
pSql
=
taosConnectImpl
(
ip
,
user
,
pass
,
auth
,
db
,
port
,
syncConnCallback
,
NULL
,
&
pObj
);
if
(
pSql
!=
NULL
)
{
pSql
->
fp
=
syncConnCallback
;
pSql
->
param
=
pSql
;
...
...
@@ -243,16 +243,19 @@ static void asyncConnCallback(void *param, TAOS_RES *tres, int code) {
}
TAOS
*
taos_connect_a
(
char
*
ip
,
char
*
user
,
char
*
pass
,
char
*
db
,
uint16_t
port
,
void
(
*
fp
)(
void
*
,
TAOS_RES
*
,
int
),
void
*
param
,
void
**
taos
)
{
SSqlObj
*
pSql
=
taosConnectImpl
(
ip
,
user
,
pass
,
NULL
,
db
,
port
,
asyncConnCallback
,
param
,
taos
);
void
*
param
,
TAOS
**
taos
)
{
STscObj
*
pObj
=
NULL
;
SSqlObj
*
pSql
=
taosConnectImpl
(
ip
,
user
,
pass
,
NULL
,
db
,
port
,
asyncConnCallback
,
param
,
&
pObj
);
if
(
pSql
==
NULL
)
{
return
NULL
;
}
if
(
taos
)
*
taos
=
pObj
;
pSql
->
fetchFp
=
fp
;
pSql
->
res
.
code
=
tscProcessSql
(
pSql
);
tscDebug
(
"%p DB async connection is opening"
,
taos
);
return
taos
;
return
pObj
;
}
void
taos_close
(
TAOS
*
taos
)
{
...
...
@@ -881,7 +884,7 @@ int taos_validate_sql(TAOS *taos, const char *sql) {
if
(
pSql
->
sqlstr
==
NULL
)
{
pRes
->
code
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
tscError
(
"%p failed to malloc sql string buffer"
,
pSql
);
tscDebug
(
"%p Valid SQL result:%d, %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
taos
),
pObj
);
tscDebug
(
"%p Valid SQL result:%d, %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
pSql
),
pObj
);
taosTFree
(
pSql
);
return
pRes
->
code
;
}
...
...
@@ -906,7 +909,7 @@ int taos_validate_sql(TAOS *taos, const char *sql) {
}
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
tscDebug
(
"%p Valid SQL result:%d, %s pObj:%p"
,
pSql
,
code
,
taos_errstr
(
taos
),
pObj
);
tscDebug
(
"%p Valid SQL result:%d, %s pObj:%p"
,
pSql
,
code
,
taos_errstr
(
pSql
),
pObj
);
}
taos_free_result
(
pSql
);
...
...
@@ -1050,7 +1053,7 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) {
tscDoQuery
(
pSql
);
tscDebug
(
"%p load multi table meta result:%d %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
taos
),
pObj
);
tscDebug
(
"%p load multi table meta result:%d %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
pSql
),
pObj
);
if
((
code
=
pRes
->
code
)
!=
TSDB_CODE_SUCCESS
)
{
tscFreeSqlObj
(
pSql
);
}
...
...
src/client/src/tscSubquery.c
浏览文件 @
58243ab3
...
...
@@ -2130,7 +2130,7 @@ static void transferNcharData(SSqlObj *pSql, int32_t columnIndex, TAOS_FIELD *pF
int32_t
length
=
taosUcs4ToMbs
(
pRes
->
tsrow
[
columnIndex
],
pRes
->
length
[
columnIndex
],
pRes
->
buffer
[
columnIndex
]);
if
(
length
>=
0
)
{
pRes
->
tsrow
[
columnIndex
]
=
pRes
->
buffer
[
columnIndex
];
pRes
->
tsrow
[
columnIndex
]
=
(
unsigned
char
*
)
pRes
->
buffer
[
columnIndex
];
pRes
->
length
[
columnIndex
]
=
length
;
}
else
{
tscError
(
"%p charset:%s to %s. val:%s convert failed."
,
pSql
,
DEFAULT_UNICODE_ENCODEC
,
tsCharset
,
(
char
*
)
pRes
->
tsrow
[
columnIndex
]);
...
...
@@ -2158,7 +2158,7 @@ static char *getArithemicInputSrc(void *param, const char *name, int32_t colId)
return
pSupport
->
data
[
index
]
+
pSupport
->
offset
*
pExpr
->
resBytes
;
}
void
**
doSetResultRowData
(
SSqlObj
*
pSql
,
bool
finalResult
)
{
TAOS_ROW
doSetResultRowData
(
SSqlObj
*
pSql
,
bool
finalResult
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SSqlRes
*
pRes
=
&
pSql
->
res
;
...
...
@@ -2211,7 +2211,7 @@ void **doSetResultRowData(SSqlObj *pSql, bool finalResult) {
tExprTreeCalcTraverse
(
pRes
->
pArithSup
->
pArithExpr
->
pExpr
,
1
,
pRes
->
buffer
[
i
],
pRes
->
pArithSup
,
TSDB_ORDER_ASC
,
getArithemicInputSrc
);
pRes
->
tsrow
[
i
]
=
pRes
->
buffer
[
i
];
pRes
->
tsrow
[
i
]
=
(
unsigned
char
*
)
pRes
->
buffer
[
i
];
}
}
...
...
src/inc/taos.h
浏览文件 @
58243ab3
...
...
@@ -22,12 +22,13 @@
extern
"C"
{
#endif
typedef
void
TAOS
;
typedef
void
**
TAOS_ROW
;
typedef
void
TAOS_RES
;
typedef
void
TAOS_SUB
;
typedef
void
TAOS_STREAM
;
typedef
void
TAOS_STMT
;
typedef
struct
STscObj
TAOS
;
typedef
struct
STscStmt
TAOS_STMT
;
typedef
struct
SSqlObj
TAOS_RES
;
typedef
struct
SSqlStream
TAOS_STREAM
;
typedef
struct
SSub
TAOS_SUB
;
typedef
unsigned
char
**
TAOS_ROW
;
// Data type definition
#define TSDB_DATA_TYPE_NULL 0 // 1 bytes
...
...
src/kit/shell/inc/shell.h
浏览文件 @
58243ab3
...
...
@@ -60,7 +60,7 @@ typedef struct SShellArguments {
extern
void
shellParseArgument
(
int
argc
,
char
*
argv
[],
SShellArguments
*
arguments
);
extern
TAOS
*
shellInit
(
SShellArguments
*
args
);
extern
void
*
shellLoopQuery
(
void
*
arg
);
extern
void
taos_error
(
TAOS
*
con
);
extern
void
taos_error
(
TAOS
_RES
*
tres
);
extern
int
regex_match
(
const
char
*
s
,
const
char
*
reg
,
int
cflags
);
void
shellReadCommand
(
TAOS
*
con
,
char
command
[]);
int32_t
shellRunCommand
(
TAOS
*
con
,
char
*
command
);
...
...
@@ -72,7 +72,7 @@ void source_dir(TAOS* con, SShellArguments* args);
void
get_history_path
(
char
*
history
);
void
cleanup_handler
(
void
*
arg
);
void
exitShell
();
int
shellDumpResult
(
TAOS
*
con
,
char
*
fname
,
int
*
error_no
,
bool
printMode
);
int
shellDumpResult
(
TAOS
_RES
*
con
,
char
*
fname
,
int
*
error_no
,
bool
printMode
);
void
shellGetGrantInfo
(
void
*
con
);
int
isCommentLine
(
char
*
line
);
...
...
src/kit/shell/src/shellEngine.c
浏览文件 @
58243ab3
...
...
@@ -493,7 +493,7 @@ static int dumpResultToFile(const char* fname, TAOS_RES* tres) {
if
(
i
>
0
)
{
fputc
(
','
,
fp
);
}
dumpFieldToFile
(
fp
,
row
[
i
],
fields
+
i
,
length
[
i
],
precision
);
dumpFieldToFile
(
fp
,
(
const
char
*
)
row
[
i
],
fields
+
i
,
length
[
i
],
precision
);
}
fputc
(
'\n'
,
fp
);
...
...
@@ -619,7 +619,7 @@ static int verticalPrintResult(TAOS_RES* tres) {
int
padding
=
(
int
)(
maxColNameLen
-
strlen
(
field
->
name
));
printf
(
"%*.s%s: "
,
padding
,
" "
,
field
->
name
);
printField
(
row
[
i
],
field
,
0
,
length
[
i
],
precision
);
printField
(
(
const
char
*
)
row
[
i
],
field
,
0
,
length
[
i
],
precision
);
putchar
(
'\n'
);
}
...
...
@@ -720,7 +720,7 @@ static int horizontalPrintResult(TAOS_RES* tres) {
int32_t
*
length
=
taos_fetch_lengths
(
tres
);
for
(
int
i
=
0
;
i
<
num_fields
;
i
++
)
{
putchar
(
' '
);
printField
(
row
[
i
],
fields
+
i
,
width
[
i
],
length
[
i
],
precision
);
printField
(
(
const
char
*
)
row
[
i
],
fields
+
i
,
width
[
i
],
length
[
i
],
precision
);
putchar
(
' '
);
putchar
(
'|'
);
}
...
...
src/kit/shell/src/shellImport.c
浏览文件 @
58243ab3
...
...
@@ -204,7 +204,7 @@ static void shellSourceFile(TAOS *con, char *fptr) {
int32_t
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
fprintf
(
stderr
,
"DB error: %s: %s (%d)
\n
"
,
taos_errstr
(
con
),
fname
,
lineNo
);
fprintf
(
stderr
,
"DB error: %s: %s (%d)
\n
"
,
taos_errstr
(
pSql
),
fname
,
lineNo
);
}
/* free local resouce: allocated memory/metric-meta refcnt */
...
...
@@ -243,7 +243,7 @@ static void shellRunImportThreads(SShellArguments* args)
pThread
->
totalThreads
=
args
->
threadNum
;
pThread
->
taos
=
taos_connect
(
args
->
host
,
args
->
user
,
args
->
password
,
args
->
database
,
tsDnodeShellPort
);
if
(
pThread
->
taos
==
NULL
)
{
fprintf
(
stderr
,
"ERROR: thread:%d failed connect to TDengine, error:%s
\n
"
,
pThread
->
threadIndex
,
taos_errstr
(
pThread
->
taos
)
);
fprintf
(
stderr
,
"ERROR: thread:%d failed connect to TDengine, error:%s
\n
"
,
pThread
->
threadIndex
,
"null taos"
/*taos_errstr(pThread->taos)*/
);
exit
(
0
);
}
...
...
src/plugins/http/inc/httpInt.h
浏览文件 @
58243ab3
...
...
@@ -122,9 +122,9 @@ typedef struct {
}
HttpDecodeMethod
;
typedef
struct
{
void
(
*
startJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
,
void
*
result
);
void
(
*
startJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
,
TAOS_RES
*
result
);
void
(
*
stopJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
);
bool
(
*
buildQueryJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
,
void
*
result
,
int
numOfRows
);
bool
(
*
buildQueryJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
,
TAOS_RES
*
result
,
int
numOfRows
);
void
(
*
buildAffectRowJsonFp
)(
struct
HttpContext
*
pContext
,
HttpSqlCmd
*
cmd
,
int
affectRows
);
void
(
*
initJsonFp
)(
struct
HttpContext
*
pContext
);
void
(
*
cleanJsonFp
)(
struct
HttpContext
*
pContext
);
...
...
@@ -148,7 +148,7 @@ typedef struct HttpContext {
char
ipstr
[
22
];
char
user
[
TSDB_USER_LEN
];
// parsed from auth token or login message
char
pass
[
TSDB_PASSWORD_LEN
];
void
*
taos
;
TAOS
*
taos
;
void
*
ppContext
;
HttpSession
*
session
;
z_stream
gzipStream
;
...
...
src/plugins/http/src/httpGcJson.c
浏览文件 @
58243ab3
...
...
@@ -217,7 +217,7 @@ bool gcBuildQueryJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
httpJsonStringForTransMean
(
jsonBuf
,
row
[
i
],
fields
[
i
].
bytes
);
httpJsonStringForTransMean
(
jsonBuf
,
(
char
*
)
row
[
i
],
fields
[
i
].
bytes
);
break
;
case
TSDB_DATA_TYPE_TIMESTAMP
:
if
(
precision
==
TSDB_TIME_PRECISION_MILLI
)
{
//ms
...
...
src/plugins/http/src/httpRestJson.c
浏览文件 @
58243ab3
...
...
@@ -131,7 +131,7 @@ bool restBuildSqlJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
httpJsonStringForTransMean
(
jsonBuf
,
row
[
i
],
length
[
i
]);
httpJsonStringForTransMean
(
jsonBuf
,
(
char
*
)
row
[
i
],
length
[
i
]);
break
;
case
TSDB_DATA_TYPE_TIMESTAMP
:
if
(
timestampFormat
==
REST_TIMESTAMP_FMT_LOCAL_STRING
)
{
...
...
@@ -195,4 +195,4 @@ void restStopSqlJson(HttpContext *pContext, HttpSqlCmd *cmd) {
httpJsonToken
(
jsonBuf
,
JsonObjEnd
);
httpWriteJsonBufEnd
(
jsonBuf
);
}
\ No newline at end of file
}
src/plugins/http/src/httpSql.c
浏览文件 @
58243ab3
...
...
@@ -27,8 +27,6 @@
#include "httpSession.h"
#include "httpQueue.h"
void
*
taos_connect_a
(
char
*
ip
,
char
*
user
,
char
*
pass
,
char
*
db
,
uint16_t
port
,
void
(
*
fp
)(
void
*
,
TAOS_RES
*
,
int
),
void
*
param
,
void
**
taos
);
void
httpProcessMultiSql
(
HttpContext
*
pContext
);
void
httpProcessMultiSqlRetrieveCallBack
(
void
*
param
,
TAOS_RES
*
result
,
int
numOfRows
);
...
...
tests/comparisonTest/tdengine/tdengineTest.c
浏览文件 @
58243ab3
...
...
@@ -108,9 +108,9 @@ void parseArg(int argc, char *argv[]) {
}
}
void
taos_error
(
TAOS
*
co
n
)
{
printf
(
"TDengine error: %s
\n
"
,
t
aos_errstr
(
con
)
);
taos_close
(
con
);
static
void
taos_error
(
TAOS_RES
*
tres
,
TAOS
*
con
n
)
{
printf
(
"TDengine error: %s
\n
"
,
t
res
?
taos_errstr
(
tres
)
:
"null result"
);
taos_close
(
con
n
);
exit
(
1
);
}
...
...
@@ -125,13 +125,17 @@ void writeDataImp(void *param) {
printf
(
"Thread %d, writing sID %d, eID %d
\n
"
,
pThread
->
threadId
,
pThread
->
sID
,
pThread
->
eID
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
taos_error
(
taos
);
if
(
taos
==
NULL
)
{
// where to find errstr?
// taos_error(NULL, taos);
printf
(
"TDengine error: %s
\n
"
,
"failed to connect"
);
exit
(
1
);
}
TAOS_RES
*
result
=
taos_query
(
taos
,
"use db"
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
result
,
taos
);
}
taos_free_result
(
result
);
...
...
@@ -227,12 +231,17 @@ void writeData() {
taos_init
();
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
taos_error
(
taos
);
if
(
taos
==
NULL
)
{
// where to find errstr?
// taos_error(NULL, taos);
printf
(
"TDengine error: %s
\n
"
,
"failed to connect"
);
exit
(
1
);
}
TAOS_RES
*
result
=
taos_query
(
taos
,
"create database if not exists db"
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
result
,
taos
);
}
taos_free_result
(
result
);
...
...
@@ -241,7 +250,7 @@ void writeData() {
"tags(devid int, devname binary(16), devgroup int)"
);
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
result
,
taos
);
}
taos_free_result
(
result
);
...
...
@@ -293,8 +302,12 @@ void readDataImp(void *param)
printf
(
"open file %s success
\n
"
,
arguments
.
sql
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
taos_error
(
taos
);
if
(
taos
==
NULL
)
{
// where to find errstr?
// taos_error(NULL, taos);
printf
(
"TDengine error: %s
\n
"
,
"failed to connect"
);
exit
(
1
);
}
char
*
line
=
NULL
;
size_t
len
=
0
;
...
...
@@ -313,7 +326,7 @@ void readDataImp(void *param)
TAOS_RES
*
result
=
taos_query
(
taos
,
line
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
result
,
taos
);
}
TAOS_ROW
row
;
...
...
@@ -343,8 +356,12 @@ void readData() {
printf
(
"---- clients: %d
\n
"
,
arguments
.
clients
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
taos_error
(
taos
);
if
(
taos
==
NULL
)
{
// where to find errstr?
// taos_error(NULL, taos);
printf
(
"TDengine error: %s
\n
"
,
"failed to connect"
);
exit
(
1
);
}
ThreadObj
*
threads
=
calloc
((
size_t
)
arguments
.
clients
,
sizeof
(
ThreadObj
));
...
...
tests/examples/c/demo.c
浏览文件 @
58243ab3
...
...
@@ -38,7 +38,7 @@ int main(int argc, char *argv[]) {
taos
=
taos_connect
(
argv
[
1
],
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"failed to connect to server, reason:%s
\n
"
,
taos_errstr
(
taos
)
);
printf
(
"failed to connect to server, reason:%s
\n
"
,
"null taos"
/*taos_errstr(taos)*/
);
exit
(
1
);
}
printf
(
"success to connect to server
\n
"
);
...
...
@@ -48,7 +48,7 @@ int main(int argc, char *argv[]) {
result
=
taos_query
(
taos
,
"create database demo"
);
if
(
result
==
NULL
)
{
printf
(
"failed to create database, reason:%s
\n
"
,
taos_errstr
(
taos
)
);
printf
(
"failed to create database, reason:%s
\n
"
,
"null result"
/*taos_errstr(taos)*/
);
exit
(
1
);
}
printf
(
"success to create database
\n
"
);
...
...
@@ -57,7 +57,7 @@ int main(int argc, char *argv[]) {
// create table
if
(
taos_query
(
taos
,
"create table m1 (ts timestamp, ti tinyint, si smallint, i int, bi bigint, f float, d double, b binary(10))"
)
==
0
)
{
printf
(
"failed to create table, reason:%s
\n
"
,
taos_errstr
(
taos
));
printf
(
"failed to create table, reason:%s
\n
"
,
taos_errstr
(
result
));
exit
(
1
);
}
printf
(
"success to create table
\n
"
);
...
...
@@ -70,9 +70,19 @@ int main(int argc, char *argv[]) {
for
(
i
=
0
;
i
<
10
;
++
i
)
{
sprintf
(
qstr
,
"insert into m1 values (%"
PRId64
", %d, %d, %d, %d, %f, %lf, '%s')"
,
1546300800000
+
i
*
1000
,
i
,
i
,
i
,
i
*
10000000
,
i
*
1
.
0
,
i
*
2
.
0
,
"hello"
);
printf
(
"qstr: %s
\n
"
,
qstr
);
if
(
taos_query
(
taos
,
qstr
))
{
printf
(
"insert row: %i, reason:%s
\n
"
,
i
,
taos_errstr
(
taos
));
// note: how do you wanna do if taos_query returns non-NULL
// if (taos_query(taos, qstr)) {
// printf("insert row: %i, reason:%s\n", i, taos_errstr(taos));
// }
TAOS_RES
*
result
=
taos_query
(
taos
,
qstr
);
if
(
result
)
{
printf
(
"insert row: %i
\n
"
,
i
);
}
else
{
printf
(
"failed to insert row: %i, reason:%s
\n
"
,
i
,
"null result"
/*taos_errstr(result)*/
);
exit
(
1
);
}
//sleep(1);
}
printf
(
"success to insert rows, total %d rows
\n
"
,
i
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录