Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
186384dd
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看板
提交
186384dd
编写于
12月 13, 2022
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: refact some example files
上级
febb306a
变更
15
展开全部
隐藏空白更改
内联
并排
Showing
15 changed file
with
1011 addition
and
459 deletion
+1011
-459
examples/c/CMakeLists.txt
examples/c/CMakeLists.txt
+0
-91
examples/c/asyncdemo.c
examples/c/asyncdemo.c
+1
-1
examples/c/demo.c
examples/c/demo.c
+1
-1
examples/c/epoll.c
examples/c/epoll.c
+0
-304
examples/c/makefile
examples/c/makefile
+7
-8
examples/c/prepare.c
examples/c/prepare.c
+34
-15
examples/c/schemaless.c
examples/c/schemaless.c
+12
-23
examples/c/stream_demo.c
examples/c/stream_demo.c
+5
-2
examples/c/tmq.c
examples/c/tmq.c
+12
-8
source/libs/catalog/src/ctgCache.c
source/libs/catalog/src/ctgCache.c
+1
-1
source/libs/scheduler/src/schStatus.c
source/libs/scheduler/src/schStatus.c
+1
-1
source/libs/scheduler/src/scheduler.c
source/libs/scheduler/src/scheduler.c
+1
-1
tests/script/api/api_with_reqid_test.c
tests/script/api/api_with_reqid_test.c
+0
-0
tests/script/api/apitest.c
tests/script/api/apitest.c
+936
-0
tests/script/api/demoapi.c
tests/script/api/demoapi.c
+0
-3
未找到文件。
examples/c/CMakeLists.txt
已删除
100644 → 0
浏览文件 @
febb306a
PROJECT
(
TDengine
)
IF
(
TD_LINUX
)
INCLUDE_DIRECTORIES
(
.
${
TD_SOURCE_DIR
}
/src/inc
${
TD_SOURCE_DIR
}
/src/client/inc
${
TD_SOURCE_DIR
}
/inc
)
AUX_SOURCE_DIRECTORY
(
. SRC
)
# ADD_EXECUTABLE(demo apitest.c)
#TARGET_LINK_LIBRARIES(demo taos_static trpc tutil pthread )
#ADD_EXECUTABLE(sml schemaless.c)
#TARGET_LINK_LIBRARIES(sml taos_static trpc tutil pthread )
#ADD_EXECUTABLE(subscribe subscribe.c)
#TARGET_LINK_LIBRARIES(subscribe taos_static trpc tutil pthread )
#ADD_EXECUTABLE(epoll epoll.c)
#TARGET_LINK_LIBRARIES(epoll taos_static trpc tutil pthread lua)
add_executable
(
tmq
""
)
add_executable
(
stream_demo
""
)
add_executable
(
demoapi
""
)
add_executable
(
api_reqid
""
)
target_sources
(
tmq
PRIVATE
"tmq.c"
)
target_sources
(
stream_demo
PRIVATE
"stream_demo.c"
)
target_sources
(
demoapi
PRIVATE
"demoapi.c"
)
target_sources
(
api_reqid
PRIVATE
"api_with_reqid_test.c"
)
target_link_libraries
(
tmq
taos_static
)
target_link_libraries
(
stream_demo
taos_static
)
target_link_libraries
(
demoapi
taos_static
)
target_link_libraries
(
api_reqid
taos_static
)
target_include_directories
(
tmq
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/os"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_include_directories
(
stream_demo
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_include_directories
(
demoapi
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/client"
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/os"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_include_directories
(
api_reqid
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/client"
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/os"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
SET_TARGET_PROPERTIES
(
tmq PROPERTIES OUTPUT_NAME tmq
)
SET_TARGET_PROPERTIES
(
stream_demo PROPERTIES OUTPUT_NAME stream_demo
)
SET_TARGET_PROPERTIES
(
demoapi PROPERTIES OUTPUT_NAME demoapi
)
SET_TARGET_PROPERTIES
(
api_reqid PROPERTIES OUTPUT_NAME api_reqid
)
ENDIF
()
IF
(
TD_DARWIN
)
INCLUDE_DIRECTORIES
(
.
${
TD_SOURCE_DIR
}
/src/inc
${
TD_SOURCE_DIR
}
/src/client/inc
${
TD_SOURCE_DIR
}
/inc
)
AUX_SOURCE_DIRECTORY
(
. SRC
)
#ADD_EXECUTABLE(demo demo.c)
#TARGET_LINK_LIBRARIES(demo taos_static trpc tutil pthread lua)
#ADD_EXECUTABLE(epoll epoll.c)
#TARGET_LINK_LIBRARIES(epoll taos_static trpc tutil pthread lua)
ENDIF
()
examples/c/asyncdemo.c
浏览文件 @
186384dd
...
...
@@ -24,7 +24,7 @@
#include <unistd.h>
#include <string.h>
#include "../../
../
include/client/taos.h"
#include "../../include/client/taos.h"
int
points
=
5
;
int
numOfTables
=
3
;
...
...
examples/c/demo.c
浏览文件 @
186384dd
...
...
@@ -20,7 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../../
../
include/client/taos.h" // TAOS header file
#include "../../include/client/taos.h" // TAOS header file
static
void
queryDB
(
TAOS
*
taos
,
char
*
command
)
{
int
i
;
...
...
examples/c/epoll.c
已删除
100644 → 0
浏览文件 @
febb306a
/*
* 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/>.
*/
// how to use to do a pressure-test upon eok
// tester: cat /dev/urandom | nc -c <ip> <port>
// testee: ./debug/build/bin/epoll -l <port> > /dev/null
// compare against: nc -l <port> > /dev/null
// monitor and compare : glances
#ifdef __APPLE__
#include "osEok.h"
#else // __APPLE__
#include <sys/epoll.h>
#endif // __APPLE__
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <arpa/inet.h>
#include <libgen.h>
#include <locale.h>
#include <netdb.h>
#define D(fmt, ...) fprintf(stderr, "%s[%d]%s(): " fmt "\n", basename(__FILE__), __LINE__, __func__, ##__VA_ARGS__)
#define A(statement, fmt, ...) do { \
if (statement) break; \
fprintf(stderr, "%s[%d]%s(): assert [%s] failed: %d[%s]: " fmt "\n", \
basename(__FILE__), __LINE__, __func__, \
#statement, errno, strerror(errno), \
##__VA_ARGS__); \
abort(); \
} while (0)
#define E(fmt, ...) do { \
fprintf(stderr, "%s[%d]%s(): %d[%s]: " fmt "\n", \
basename(__FILE__), __LINE__, __func__, \
errno, strerror(errno), \
##__VA_ARGS__); \
} while (0)
#include "os.h"
typedef
struct
ep_s
ep_t
;
struct
ep_s
{
int
ep
;
pthread_mutex_t
lock
;
int
sv
[
2
];
// 0 for read, 1 for write;
pthread_t
thread
;
volatile
unsigned
int
stopping
:
1
;
volatile
unsigned
int
waiting
:
1
;
volatile
unsigned
int
wakenup
:
1
;
};
static
int
ep_dummy
=
0
;
static
ep_t
*
ep_create
(
void
);
static
void
ep_destroy
(
ep_t
*
ep
);
static
void
*
routine
(
void
*
arg
);
static
int
open_listen
(
unsigned
short
port
);
typedef
struct
fde_s
fde_t
;
struct
fde_s
{
int
skt
;
void
(
*
on_event
)(
ep_t
*
ep
,
struct
epoll_event
*
events
,
fde_t
*
client
);
};
static
void
listen_event
(
ep_t
*
ep
,
struct
epoll_event
*
ev
,
fde_t
*
client
);
static
void
null_event
(
ep_t
*
ep
,
struct
epoll_event
*
ev
,
fde_t
*
client
);
#define usage(arg0, fmt, ...) do { \
if (fmt[0]) { \
fprintf(stderr, "" fmt "\n", ##__VA_ARGS__); \
} \
fprintf(stderr, "usage:\n"); \
fprintf(stderr, " %s -l <port> : specify listenning port\n", arg0); \
} while (0)
int
main
(
int
argc
,
char
*
argv
[])
{
char
*
prg
=
basename
(
argv
[
0
]);
if
(
argc
==
1
)
{
usage
(
prg
,
""
);
return
0
;
}
ep_t
*
ep
=
ep_create
();
A
(
ep
,
"failed"
);
for
(
int
i
=
1
;
i
<
argc
;
++
i
)
{
const
char
*
arg
=
argv
[
i
];
if
(
0
==
strcmp
(
arg
,
"-l"
))
{
++
i
;
if
(
i
>=
argc
)
{
usage
(
prg
,
"expecting <port> after -l, but got nothing"
);
return
1
;
// confirmed potential leakage
}
arg
=
argv
[
i
];
int
port
=
atoi
(
arg
);
int
skt
=
open_listen
(
port
);
if
(
skt
==-
1
)
continue
;
fde_t
*
client
=
(
fde_t
*
)
calloc
(
1
,
sizeof
(
*
client
));
if
(
!
client
)
{
E
(
"out of memory"
);
close
(
skt
);
continue
;
}
client
->
skt
=
skt
;
client
->
on_event
=
listen_event
;
struct
epoll_event
ev
=
{
0
};
ev
.
events
=
EPOLLIN
|
EPOLLERR
|
EPOLLHUP
|
EPOLLRDHUP
;
ev
.
data
.
ptr
=
client
;
A
(
0
==
epoll_ctl
(
ep
->
ep
,
EPOLL_CTL_ADD
,
skt
,
&
ev
),
""
);
continue
;
}
usage
(
prg
,
"unknown argument: [%s]"
,
arg
);
return
1
;
}
char
*
line
=
NULL
;
size_t
linecap
=
0
;
ssize_t
linelen
;
while
((
linelen
=
getline
(
&
line
,
&
linecap
,
stdin
))
>
0
)
{
line
[
strlen
(
line
)
-
1
]
=
'\0'
;
if
(
0
==
strcmp
(
line
,
"exit"
))
break
;
if
(
0
==
strcmp
(
line
,
"quit"
))
break
;
if
(
line
==
strstr
(
line
,
"close"
))
{
int
fd
=
0
;
sscanf
(
line
,
"close %d"
,
&
fd
);
if
(
fd
<=
2
)
{
fprintf
(
stderr
,
"fd [%d] invalid
\n
"
,
fd
);
continue
;
}
A
(
0
==
epoll_ctl
(
ep
->
ep
,
EPOLL_CTL_DEL
,
fd
,
NULL
),
""
);
continue
;
}
if
(
strlen
(
line
)
==
0
)
continue
;
fprintf
(
stderr
,
"unknown cmd:[%s]
\n
"
,
line
);
}
ep_destroy
(
ep
);
D
(
""
);
return
0
;
}
ep_t
*
ep_create
(
void
)
{
ep_t
*
ep
=
(
ep_t
*
)
calloc
(
1
,
sizeof
(
*
ep
));
A
(
ep
,
"out of memory"
);
A
(
-
1
!=
(
ep
->
ep
=
epoll_create
(
1
)),
""
);
ep
->
sv
[
0
]
=
-
1
;
ep
->
sv
[
1
]
=
-
1
;
A
(
0
==
socketpair
(
AF_LOCAL
,
SOCK_STREAM
,
0
,
ep
->
sv
),
""
);
A
(
0
==
pthread_mutex_init
(
&
ep
->
lock
,
NULL
),
""
);
A
(
0
==
pthread_mutex_lock
(
&
ep
->
lock
),
""
);
struct
epoll_event
ev
=
{
0
};
ev
.
events
=
EPOLLIN
;
ev
.
data
.
ptr
=
&
ep_dummy
;
A
(
0
==
epoll_ctl
(
ep
->
ep
,
EPOLL_CTL_ADD
,
ep
->
sv
[
0
],
&
ev
),
""
);
A
(
0
==
pthread_create
(
&
ep
->
thread
,
NULL
,
routine
,
ep
),
""
);
A
(
0
==
pthread_mutex_unlock
(
&
ep
->
lock
),
""
);
return
ep
;
}
static
void
ep_destroy
(
ep_t
*
ep
)
{
A
(
ep
,
"invalid argument"
);
ep
->
stopping
=
1
;
A
(
1
==
send
(
ep
->
sv
[
1
],
"1"
,
1
,
0
),
""
);
A
(
0
==
pthread_join
(
ep
->
thread
,
NULL
),
""
);
A
(
0
==
pthread_mutex_destroy
(
&
ep
->
lock
),
""
);
A
(
0
==
close
(
ep
->
sv
[
0
]),
""
);
A
(
0
==
close
(
ep
->
sv
[
1
]),
""
);
A
(
0
==
close
(
ep
->
ep
),
""
);
free
(
ep
);
}
static
void
*
routine
(
void
*
arg
)
{
A
(
arg
,
"invalid argument"
);
ep_t
*
ep
=
(
ep_t
*
)
arg
;
while
(
!
ep
->
stopping
)
{
struct
epoll_event
evs
[
10
];
memset
(
evs
,
0
,
sizeof
(
evs
));
A
(
0
==
pthread_mutex_lock
(
&
ep
->
lock
),
""
);
A
(
ep
->
waiting
==
0
,
"internal logic error"
);
ep
->
waiting
=
1
;
A
(
0
==
pthread_mutex_unlock
(
&
ep
->
lock
),
""
);
int
r
=
epoll_wait
(
ep
->
ep
,
evs
,
sizeof
(
evs
)
/
sizeof
(
evs
[
0
]),
-
1
);
A
(
r
>
0
,
"indefinite epoll_wait shall not timeout:[%d]"
,
r
);
A
(
0
==
pthread_mutex_lock
(
&
ep
->
lock
),
""
);
A
(
ep
->
waiting
==
1
,
"internal logic error"
);
ep
->
waiting
=
0
;
A
(
0
==
pthread_mutex_unlock
(
&
ep
->
lock
),
""
);
for
(
int
i
=
0
;
i
<
r
;
++
i
)
{
struct
epoll_event
*
ev
=
evs
+
i
;
if
(
ev
->
data
.
ptr
==
&
ep_dummy
)
{
char
c
=
'\0'
;
A
(
1
==
recv
(
ep
->
sv
[
0
],
&
c
,
1
,
0
),
"internal logic error"
);
A
(
0
==
pthread_mutex_lock
(
&
ep
->
lock
),
""
);
ep
->
wakenup
=
0
;
A
(
0
==
pthread_mutex_unlock
(
&
ep
->
lock
),
""
);
continue
;
}
A
(
ev
->
data
.
ptr
,
"internal logic error"
);
fde_t
*
client
=
(
fde_t
*
)
ev
->
data
.
ptr
;
client
->
on_event
(
ep
,
ev
,
client
);
continue
;
}
}
return
NULL
;
}
static
int
open_listen
(
unsigned
short
port
)
{
int
r
=
0
;
int
skt
=
socket
(
AF_INET
,
SOCK_STREAM
,
IPPROTO_TCP
);
if
(
skt
==-
1
)
{
E
(
"socket() failed"
);
return
-
1
;
}
do
{
struct
sockaddr_in
si
=
{
0
};
si
.
sin_family
=
AF_INET
;
si
.
sin_addr
.
s_addr
=
inet_addr
(
"0.0.0.0"
);
si
.
sin_port
=
htons
(
port
);
r
=
bind
(
skt
,
(
struct
sockaddr
*
)
&
si
,
sizeof
(
si
));
if
(
r
)
{
E
(
"bind(%u) failed"
,
port
);
break
;
}
r
=
listen
(
skt
,
100
);
if
(
r
)
{
E
(
"listen() failed"
);
break
;
}
memset
(
&
si
,
0
,
sizeof
(
si
));
socklen_t
len
=
sizeof
(
si
);
r
=
getsockname
(
skt
,
(
struct
sockaddr
*
)
&
si
,
&
len
);
if
(
r
)
{
E
(
"getsockname() failed"
);
}
A
(
len
==
sizeof
(
si
),
"internal logic error"
);
D
(
"listenning at: %d"
,
ntohs
(
si
.
sin_port
));
return
skt
;
}
while
(
0
);
close
(
skt
);
return
-
1
;
}
static
void
listen_event
(
ep_t
*
ep
,
struct
epoll_event
*
ev
,
fde_t
*
client
)
{
A
(
ev
->
events
&
EPOLLIN
,
"internal logic error"
);
struct
sockaddr_in
si
=
{
0
};
socklen_t
silen
=
sizeof
(
si
);
int
skt
=
accept
(
client
->
skt
,
(
struct
sockaddr
*
)
&
si
,
&
silen
);
A
(
skt
!=-
1
,
"internal logic error"
);
fde_t
*
server
=
(
fde_t
*
)
calloc
(
1
,
sizeof
(
*
server
));
if
(
!
server
)
{
close
(
skt
);
return
;
}
server
->
skt
=
skt
;
server
->
on_event
=
null_event
;
struct
epoll_event
ee
=
{
0
};
ee
.
events
=
EPOLLIN
|
EPOLLERR
|
EPOLLHUP
|
EPOLLRDHUP
;
ee
.
data
.
ptr
=
server
;
A
(
0
==
epoll_ctl
(
ep
->
ep
,
EPOLL_CTL_ADD
,
skt
,
&
ee
),
""
);
}
static
void
null_event
(
ep_t
*
ep
,
struct
epoll_event
*
ev
,
fde_t
*
client
)
{
if
(
ev
->
events
&
EPOLLIN
)
{
char
buf
[
8192
];
int
n
=
recv
(
client
->
skt
,
buf
,
sizeof
(
buf
),
0
);
A
(
n
>=
0
&&
n
<=
sizeof
(
buf
),
"internal logic error:[%d]"
,
n
);
A
(
n
==
fwrite
(
buf
,
1
,
n
,
stdout
),
"internal logic error"
);
}
if
(
ev
->
events
&
(
EPOLLERR
|
EPOLLHUP
|
EPOLLRDHUP
))
{
A
(
0
==
pthread_mutex_lock
(
&
ep
->
lock
),
""
);
A
(
0
==
epoll_ctl
(
ep
->
ep
,
EPOLL_CTL_DEL
,
client
->
skt
,
NULL
),
""
);
A
(
0
==
pthread_mutex_unlock
(
&
ep
->
lock
),
""
);
close
(
client
->
skt
);
client
->
skt
=
-
1
;
client
->
on_event
=
NULL
;
free
(
client
);
}
}
examples/c/makefile
浏览文件 @
186384dd
...
...
@@ -7,22 +7,21 @@ LFLAGS = '-Wl,-rpath,/usr/local/taos/driver/' -ltaos -lpthread -lm -lrt
CFLAGS
=
-O3
-g
-Wall
-Wno-deprecated
-fPIC
-Wno-unused-result
-Wconversion
\
-Wno-char-subscripts
-D_REENTRANT
-Wno-format
-D_REENTRANT
-DLINUX
\
-Wno-unused-function
-D_M_X64
-I
/usr/local/taos/include
-std
=
gnu99
\
-I
../../../deps/cJson/inc
-I
/usr/local/include/cjson
all
:
$(TARGET)
exe
:
gcc
$(CFLAGS)
./asyncdemo.c
-o
$(ROOT)
asyncdemo
$(LFLAGS)
gcc
$(CFLAGS)
./demo.c
-o
$(ROOT)
demo
$(LFLAGS)
gcc
$(CFLAGS)
./prepare.c
-o
$(ROOT)
prepare
$(LFLAGS)
gcc
$(CFLAGS)
./stream
.c
-o
$(ROOT)
stream
$(LFLAGS)
gcc
$(CFLAGS)
./
subscribe.c
-o
$(ROOT)
subscribe
$(LFLAGS)
gcc
$(CFLAGS)
./
apitest.c
-o
$(ROOT)
apitest
$(LFLAGS)
gcc
$(CFLAGS)
./stream
_demo.c
-o
$(ROOT)
stream_demo
$(LFLAGS)
gcc
$(CFLAGS)
./
tmq.c
-o
$(ROOT)
tmq
$(LFLAGS)
gcc
$(CFLAGS)
./
schemaless.c
-o
$(ROOT)
schemaless
$(LFLAGS)
clean
:
rm
$(ROOT)
asyncdemo
rm
$(ROOT)
demo
rm
$(ROOT)
prepare
rm
$(ROOT)
batchprepare
rm
$(ROOT)
stream
rm
$(ROOT)
subscribe
rm
$(ROOT)
apitest
rm
$(ROOT)
stream_demo
rm
$(ROOT)
tmq
rm
$(ROOT)
schemaless
examples/c/prepare.c
浏览文件 @
186384dd
...
...
@@ -4,7 +4,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../../
../
include/client/taos.h"
#include "../../include/client/taos.h"
void
taosMsleep
(
int
mseconds
);
...
...
@@ -70,70 +70,89 @@ int main(int argc, char *argv[])
char
blob
[
80
];
}
v
=
{
0
};
int32_t
boolLen
=
sizeof
(
int8_t
);
int32_t
sintLen
=
sizeof
(
int16_t
);
int32_t
intLen
=
sizeof
(
int32_t
);
int32_t
bintLen
=
sizeof
(
int64_t
);
int32_t
floatLen
=
sizeof
(
float
);
int32_t
doubleLen
=
sizeof
(
double
);
int32_t
binLen
=
sizeof
(
v
.
bin
);
int32_t
ncharLen
=
30
;
stmt
=
taos_stmt_init
(
taos
);
TAOS_BIND
params
[
10
];
TAOS_
MULTI_
BIND
params
[
10
];
params
[
0
].
buffer_type
=
TSDB_DATA_TYPE_TIMESTAMP
;
params
[
0
].
buffer_length
=
sizeof
(
v
.
ts
);
params
[
0
].
buffer
=
&
v
.
ts
;
params
[
0
].
length
=
&
params
[
0
].
buffer_length
;
params
[
0
].
length
=
&
bintLen
;
params
[
0
].
is_null
=
NULL
;
params
[
0
].
num
=
1
;
params
[
1
].
buffer_type
=
TSDB_DATA_TYPE_BOOL
;
params
[
1
].
buffer_length
=
sizeof
(
v
.
b
);
params
[
1
].
buffer
=
&
v
.
b
;
params
[
1
].
length
=
&
params
[
1
].
buffer_length
;
params
[
1
].
length
=
&
boolLen
;
params
[
1
].
is_null
=
NULL
;
params
[
1
].
num
=
1
;
params
[
2
].
buffer_type
=
TSDB_DATA_TYPE_TINYINT
;
params
[
2
].
buffer_length
=
sizeof
(
v
.
v1
);
params
[
2
].
buffer
=
&
v
.
v1
;
params
[
2
].
length
=
&
params
[
2
].
buffer_length
;
params
[
2
].
length
=
&
boolLen
;
params
[
2
].
is_null
=
NULL
;
params
[
2
].
num
=
1
;
params
[
3
].
buffer_type
=
TSDB_DATA_TYPE_SMALLINT
;
params
[
3
].
buffer_length
=
sizeof
(
v
.
v2
);
params
[
3
].
buffer
=
&
v
.
v2
;
params
[
3
].
length
=
&
params
[
3
].
buffer_length
;
params
[
3
].
length
=
&
sintLen
;
params
[
3
].
is_null
=
NULL
;
params
[
3
].
num
=
1
;
params
[
4
].
buffer_type
=
TSDB_DATA_TYPE_INT
;
params
[
4
].
buffer_length
=
sizeof
(
v
.
v4
);
params
[
4
].
buffer
=
&
v
.
v4
;
params
[
4
].
length
=
&
params
[
4
].
buffer_length
;
params
[
4
].
length
=
&
intLen
;
params
[
4
].
is_null
=
NULL
;
params
[
4
].
num
=
1
;
params
[
5
].
buffer_type
=
TSDB_DATA_TYPE_BIGINT
;
params
[
5
].
buffer_length
=
sizeof
(
v
.
v8
);
params
[
5
].
buffer
=
&
v
.
v8
;
params
[
5
].
length
=
&
params
[
5
].
buffer_length
;
params
[
5
].
length
=
&
bintLen
;
params
[
5
].
is_null
=
NULL
;
params
[
5
].
num
=
1
;
params
[
6
].
buffer_type
=
TSDB_DATA_TYPE_FLOAT
;
params
[
6
].
buffer_length
=
sizeof
(
v
.
f4
);
params
[
6
].
buffer
=
&
v
.
f4
;
params
[
6
].
length
=
&
params
[
6
].
buffer_length
;
params
[
6
].
length
=
&
floatLen
;
params
[
6
].
is_null
=
NULL
;
params
[
6
].
num
=
1
;
params
[
7
].
buffer_type
=
TSDB_DATA_TYPE_DOUBLE
;
params
[
7
].
buffer_length
=
sizeof
(
v
.
f8
);
params
[
7
].
buffer
=
&
v
.
f8
;
params
[
7
].
length
=
&
params
[
7
].
buffer_length
;
params
[
7
].
length
=
&
doubleLen
;
params
[
7
].
is_null
=
NULL
;
params
[
7
].
num
=
1
;
params
[
8
].
buffer_type
=
TSDB_DATA_TYPE_BINARY
;
params
[
8
].
buffer_length
=
sizeof
(
v
.
bin
);
params
[
8
].
buffer
=
v
.
bin
;
params
[
8
].
length
=
&
params
[
8
].
buffer_length
;
params
[
8
].
length
=
&
binLen
;
params
[
8
].
is_null
=
NULL
;
params
[
8
].
num
=
1
;
strcpy
(
v
.
blob
,
"一二三四五六七八九十"
);
params
[
9
].
buffer_type
=
TSDB_DATA_TYPE_NCHAR
;
params
[
9
].
buffer_length
=
s
trlen
(
v
.
blob
);
params
[
9
].
buffer_length
=
s
izeof
(
v
.
blob
);
params
[
9
].
buffer
=
v
.
blob
;
params
[
9
].
length
=
&
params
[
9
].
buffer_length
;
params
[
9
].
length
=
&
ncharLen
;
params
[
9
].
is_null
=
NULL
;
params
[
9
].
num
=
1
;
int
is_null
=
1
;
char
is_null
=
1
;
sql
=
"insert into m1 values(?,?,?,?,?,?,?,?,?,?)"
;
code
=
taos_stmt_prepare
(
stmt
,
sql
,
0
);
...
...
@@ -153,7 +172,7 @@ int main(int argc, char *argv[])
v
.
v8
=
(
int64_t
)(
i
*
8
);
v
.
f4
=
(
float
)(
i
*
40
);
v
.
f8
=
(
double
)(
i
*
80
);
for
(
int
j
=
0
;
j
<
sizeof
(
v
.
bin
)
-
1
;
++
j
)
{
for
(
int
j
=
0
;
j
<
sizeof
(
v
.
bin
);
++
j
)
{
v
.
bin
[
j
]
=
(
char
)(
i
+
'0'
);
}
...
...
examples/c/schemaless.c
浏览文件 @
186384dd
#include "../../../include/client/taos.h"
#include "os.h"
#include "../../include/client/taos.h"
#include "taoserror.h"
#include <stdio.h>
...
...
@@ -7,26 +6,14 @@
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <inttypes.h>
#include <string.h>
int
numSuperTables
=
8
;
int
numChildTables
=
4
;
int
numRowsPerChildTable
=
2048
;
void
shuffle
(
char
**
lines
,
size_t
n
)
{
if
(
n
>
1
)
{
size_t
i
;
for
(
i
=
0
;
i
<
n
-
1
;
i
++
)
{
size_t
j
=
i
+
taosRand
()
/
(
RAND_MAX
/
(
n
-
i
)
+
1
);
char
*
t
=
lines
[
j
];
lines
[
j
]
=
lines
[
i
];
lines
[
i
]
=
t
;
}
}
}
static
int64_t
getTimeInUs
()
{
struct
timeval
systemTime
;
gettimeofday
(
&
systemTime
,
NULL
);
...
...
@@ -46,7 +33,7 @@ int main(int argc, char* argv[]) {
exit
(
1
);
}
char
*
info
=
taos_get_server_info
(
taos
);
c
onst
c
har
*
info
=
taos_get_server_info
(
taos
);
printf
(
"server info: %s
\n
"
,
info
);
info
=
taos_get_client_info
(
taos
);
printf
(
"client info: %s
\n
"
,
info
);
...
...
@@ -61,9 +48,10 @@ int main(int argc, char* argv[]) {
time_t
ct
=
time
(
0
);
int64_t
ts
=
ct
*
1000
;
char
*
lineFormat
=
"sta%d,t0=true,t1=127i8,t2=32767i16,t3=%di32,t4=9223372036854775807i64,t9=11.12345f32,t10=22.123456789f64,t11=
\"
binaryTagValue
\"
,t12=L
\"
ncharTagValue
\"
c0=true,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=254u8,c6=32770u16,c7=2147483699u32,c8=9223372036854775899u64,c9=11.12345f32,c10=22.123456789f64,c11=
\"
binaryValue
\"
,c12=L
\"
ncharValue
\"
%lld
ms
"
;
char
*
lineFormat
=
"sta%d,t0=true,t1=127i8,t2=32767i16,t3=%di32,t4=9223372036854775807i64,t9=11.12345f32,t10=22.123456789f64,t11=
\"
binaryTagValue
\"
,t12=L
\"
ncharTagValue
\"
c0=true,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=254u8,c6=32770u16,c7=2147483699u32,c8=9223372036854775899u64,c9=11.12345f32,c10=22.123456789f64,c11=
\"
binaryValue
\"
,c12=L
\"
ncharValue
\"
%lld"
;
char
**
lines
=
calloc
(
numSuperTables
*
numChildTables
*
numRowsPerChildTable
,
sizeof
(
char
*
));
int
lineNum
=
numSuperTables
*
numChildTables
*
numRowsPerChildTable
;
char
**
lines
=
calloc
((
size_t
)
lineNum
,
sizeof
(
char
*
));
int
l
=
0
;
for
(
int
i
=
0
;
i
<
numSuperTables
;
++
i
)
{
for
(
int
j
=
0
;
j
<
numChildTables
;
++
j
)
{
...
...
@@ -75,13 +63,14 @@ int main(int argc, char* argv[]) {
}
}
}
//shuffle(lines, numSuperTables * numChildTables * numRowsPerChildTable);
printf
(
"%s
\n
"
,
"begin taos_insert_lines"
);
int64_t
begin
=
getTimeInUs
();
int32_t
code
=
taos_insert_lines
(
taos
,
lines
,
numSuperTables
*
numChildTables
*
numRowsPerChildTable
);
TAOS_RES
*
res
=
taos_schemaless_insert
(
taos
,
lines
,
lineNum
,
TSDB_SML_LINE_PROTOCOL
,
TSDB_SML_TIMESTAMP_MILLI_SECONDS
);
int
code
=
taos_errno
(
res
);
taos_free_result
(
res
);
int64_t
end
=
getTimeInUs
();
printf
(
"code: %d, %s. time used: %"
PRId64
"
\n
"
,
code
,
tstrerror
(
code
),
end
-
begin
);
printf
(
"code: %d, %s. time used: %"
PRId64
"
\n
"
,
code
,
tstrerror
(
code
),
end
-
begin
);
return
0
;
}
examples/c/stream_demo.c
浏览文件 @
186384dd
...
...
@@ -108,10 +108,13 @@ int32_t create_stream() {
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
code
;
if
(
argc
>
1
)
{
printf
(
"env init
\n
"
);
code
=
init_env
();
int
code
=
init_env
();
if
(
code
)
{
return
code
;
}
}
create_stream
();
}
examples/c/tmq.c
浏览文件 @
186384dd
...
...
@@ -21,9 +21,6 @@
#include "taos.h"
static
int
running
=
1
;
static
char
dbName
[
64
]
=
"tmqdb"
;
static
char
stbName
[
64
]
=
"stb"
;
static
char
topicName
[
64
]
=
"topicname"
;
static
int32_t
msg_process
(
TAOS_RES
*
msg
)
{
char
buf
[
1024
];
...
...
@@ -43,7 +40,7 @@ static int32_t msg_process(TAOS_RES* msg) {
TAOS_FIELD
*
fields
=
taos_fetch_fields
(
msg
);
int32_t
numOfFields
=
taos_field_count
(
msg
);
int32_t
*
length
=
taos_fetch_lengths
(
msg
);
//
int32_t* length = taos_fetch_lengths(msg);
int32_t
precision
=
taos_result_precision
(
msg
);
rows
++
;
taos_print_row
(
buf
,
row
,
fields
,
numOfFields
);
...
...
@@ -62,6 +59,13 @@ static int32_t init_env() {
TAOS_RES
*
pRes
;
// drop database if exists
printf
(
"create database
\n
"
);
pRes
=
taos_query
(
pConn
,
"drop topic topicname"
);
if
(
taos_errno
(
pRes
)
!=
0
)
{
printf
(
"error in drop tmqdb, reason:%s
\n
"
,
taos_errstr
(
pRes
));
return
-
1
;
}
taos_free_result
(
pRes
);
pRes
=
taos_query
(
pConn
,
"drop database if exists tmqdb"
);
if
(
taos_errno
(
pRes
)
!=
0
)
{
printf
(
"error in drop tmqdb, reason:%s
\n
"
,
taos_errstr
(
pRes
));
...
...
@@ -249,7 +253,7 @@ int main(int argc, char* argv[]) {
tmq_t
*
tmq
=
build_consumer
();
if
(
NULL
==
tmq
)
{
fprintf
(
stderr
,
"
%%
build_consumer() fail!
\n
"
);
fprintf
(
stderr
,
"build_consumer() fail!
\n
"
);
return
-
1
;
}
...
...
@@ -259,7 +263,7 @@ int main(int argc, char* argv[]) {
}
if
((
code
=
tmq_subscribe
(
tmq
,
topic_list
)))
{
fprintf
(
stderr
,
"
%%
Failed to tmq_subscribe(): %s
\n
"
,
tmq_err2str
(
code
));
fprintf
(
stderr
,
"Failed to tmq_subscribe(): %s
\n
"
,
tmq_err2str
(
code
));
}
tmq_list_destroy
(
topic_list
);
...
...
@@ -267,9 +271,9 @@ int main(int argc, char* argv[]) {
code
=
tmq_consumer_close
(
tmq
);
if
(
code
)
{
fprintf
(
stderr
,
"
%%
Failed to close consumer: %s
\n
"
,
tmq_err2str
(
code
));
fprintf
(
stderr
,
"Failed to close consumer: %s
\n
"
,
tmq_err2str
(
code
));
}
else
{
fprintf
(
stderr
,
"
%%
Consumer closed
\n
"
);
fprintf
(
stderr
,
"Consumer closed
\n
"
);
}
return
0
;
...
...
source/libs/catalog/src/ctgCache.c
浏览文件 @
186384dd
...
...
@@ -1728,7 +1728,7 @@ int32_t ctgOpUpdateVgroup(SCtgCacheOperation *operation) {
}
if
(
dbInfo
->
vgVersion
<
0
||
taosHashGetSize
(
dbInfo
->
vgHash
)
<=
0
)
{
ctg
Error
(
"invalid db vgInfo, dbFName:%s, vgHash:%p, vgVersion:%d, vgHashSize:%d"
,
dbFName
,
dbInfo
->
vgHash
,
ctg
Debug
(
"invalid db vgInfo, dbFName:%s, vgHash:%p, vgVersion:%d, vgHashSize:%d"
,
dbFName
,
dbInfo
->
vgHash
,
dbInfo
->
vgVersion
,
taosHashGetSize
(
dbInfo
->
vgHash
));
CTG_ERR_JRET
(
TSDB_CODE_APP_ERROR
);
}
...
...
source/libs/scheduler/src/schStatus.c
浏览文件 @
186384dd
...
...
@@ -64,7 +64,7 @@ _return:
int32_t
schHandleOpBeginEvent
(
int64_t
jobId
,
SSchJob
**
job
,
SCH_OP_TYPE
type
,
SSchedulerReq
*
pReq
)
{
SSchJob
*
pJob
=
schAcquireJob
(
jobId
);
if
(
NULL
==
pJob
)
{
q
Warn
(
"Acquire sch job failed, may be dropped, jobId:0x%"
PRIx64
,
jobId
);
q
Debug
(
"Acquire sch job failed, may be dropped, jobId:0x%"
PRIx64
,
jobId
);
SCH_ERR_RET
(
TSDB_CODE_SCH_STATUS_ERROR
);
}
...
...
source/libs/scheduler/src/scheduler.c
浏览文件 @
186384dd
...
...
@@ -157,7 +157,7 @@ void schedulerFreeJob(int64_t *jobId, int32_t errCode) {
SSchJob
*
pJob
=
schAcquireJob
(
*
jobId
);
if
(
NULL
==
pJob
)
{
q
Warn
(
"Acquire sch job failed, may be dropped, jobId:0x%"
PRIx64
,
*
jobId
);
q
Debug
(
"Acquire sch job failed, may be dropped, jobId:0x%"
PRIx64
,
*
jobId
);
return
;
}
...
...
examples/c
/api_with_reqid_test.c
→
tests/script/api
/api_with_reqid_test.c
浏览文件 @
186384dd
文件已移动
examples/c
/apitest.c
→
tests/script/api
/apitest.c
浏览文件 @
186384dd
此差异已折叠。
点击以展开。
examples/c
/demoapi.c
→
tests/script/api
/demoapi.c
浏览文件 @
186384dd
...
...
@@ -21,7 +21,6 @@
#ifndef WINDOWS
#include <argp.h>
#endif
#include "osSleep.h"
#include "taos.h"
#define debugPrint(fmt, ...) \
...
...
@@ -81,11 +80,9 @@ static void prepare_data(TAOS* taos) {
TAOS_RES
*
res
;
res
=
taos_query
(
taos
,
"drop database if exists test;"
);
taos_free_result
(
res
);
taosMsleep
(
100
);
res
=
taos_query
(
taos
,
"create database test;"
);
taos_free_result
(
res
);
taosMsleep
(
100
);
if
(
taos_select_db
(
taos
,
"test"
))
{
errorPrint
(
"%s() LN%d: taos_select_db() failed
\n
"
,
__func__
,
__LINE__
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录