• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

taosdata / TDengine / #4975

05 Mar 2026 08:43AM UTC coverage: 68.37% (+0.7%) from 67.664%
#4975

push

travis-ci

web-flow
merge: from main to 3.0 branch #34682

250 of 345 new or added lines in 28 files covered. (72.46%)

446 existing lines in 120 files now uncovered.

210600 of 308032 relevant lines covered (68.37%)

130326818.69 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

69.01
/source/client/wrapper/src/wrapperFunc.c
1
/*
2
 * Copyright (c) 2025 TAOS Data, Inc. <jhtao@taosdata.com>
3
 *
4
 * This program is free software: you can use, redistribute, and/or modify
5
 * it under the terms of the GNU Affero General Public License, version 3
6
 * or later ("AGPL"), as published by the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 * FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * You should have received a copy of the GNU Affero General Public License
13
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14
 */
15

16
#include "version.h"
17
#include "wrapper.h"
18

19
static TdThreadOnce tsDriverEnvOnce = PTHREAD_ONCE_INIT;
20
static TdThreadOnce tsDriverOnce = PTHREAD_ONCE_INIT;
21
volatile int32_t    tsDriverOnceRet = 0;
22

23
static TdThreadOnce tsInitOnce = PTHREAD_ONCE_INIT;
24
volatile int32_t    tsInitOnceRet = 0;
25

26
#define ERR_VOID(code) \
27
  terrno = code;       \
28
  return;
29

30
#define ERR_PTR(code) \
31
  terrno = code;      \
32
  return NULL;
33

34
#define ERR_INT(code) \
35
  terrno = code;      \
36
  return -1;
37

38
#define ERR_BOOL(code) \
39
  terrno = code;       \
40
  return false;
41

42
#define ERR_CONFRET(code)           \
43
  terrno = code;                    \
44
  setConfRet ret = {.retCode = -1}; \
45
  return ret;
46

47
#define CHECK_VOID(fp)               \
48
  if (tsDriver == NULL) {            \
49
    ERR_VOID(TSDB_CODE_DLL_NOT_LOAD) \
50
  }                                  \
51
  if (fp == NULL) {                  \
52
    ERR_VOID(TSDB_CODE_DLL_FUNC_NOT_LOAD) \
53
  }
54

55
#define CHECK_PTR(fp)               \
56
  if (tsDriver == NULL) {           \
57
    ERR_PTR(TSDB_CODE_DLL_NOT_LOAD) \
58
  }                                 \
59
  if (fp == NULL) {                 \
60
    ERR_PTR(TSDB_CODE_DLL_FUNC_NOT_LOAD) \
61
  }
62

63
#define CHECK_INT(fp)               \
64
  if (tsDriver == NULL) {           \
65
    ERR_INT(TSDB_CODE_DLL_NOT_LOAD) \
66
  }                                 \
67
  if (fp == NULL) {                 \
68
    ERR_INT(TSDB_CODE_DLL_FUNC_NOT_LOAD) \
69
  }
70

71
#define CHECK_BOOL(fp)               \
72
  if (tsDriver == NULL) {            \
73
    ERR_BOOL(TSDB_CODE_DLL_NOT_LOAD) \
74
  }                                  \
75
  if (fp == NULL) {                  \
76
    ERR_BOOL(TSDB_CODE_DLL_FUNC_NOT_LOAD) \
77
  }
78

79
#define CHECK_CONFRET(fp)               \
80
  if (tsDriver == NULL) {               \
81
    ERR_CONFRET(TSDB_CODE_DLL_NOT_LOAD) \
82
  }                                     \
83
  if (fp == NULL) {                     \
84
    ERR_CONFRET(TSDB_CODE_DLL_FUNC_NOT_LOAD) \
85
  }
86

87
setConfRet taos_set_config(const char *config) {
13✔
88
  if (taos_init() != 0) {
13✔
89
    ERR_CONFRET(TSDB_CODE_DLL_NOT_LOAD)
×
90
  }
91

92
  CHECK_CONFRET(fp_taos_set_config);
13✔
93
  return (*fp_taos_set_config)(config);
13✔
94
}
95

96
static void taos_init_driver_env(void) {
1,228,174✔
97
  taosDriverEnvInit();
1,228,174✔
98
}
1,228,174✔
99

100
static void taos_init_driver(void) {
1,227,327✔
101
  tsDriverOnceRet = taosDriverInit(tsDriverType);
1,227,327✔
102
  if (tsDriverOnceRet != 0) return;
1,227,327✔
103

104
  tsDriverOnceRet = 0;
1,227,327✔
105
}
106

107
static void taos_init_wrapper(void) {
1,227,178✔
108
  if (fp_taos_init == NULL) {
1,227,178✔
109
    terrno = TSDB_CODE_DLL_FUNC_NOT_LOAD;
×
110
    tsInitOnceRet = -1;
×
111
  } else {
112
    tsInitOnceRet = (*fp_taos_init)();
1,227,178✔
113
  }
114
}
1,227,178✔
115

116
int taos_init(void) {
1,316,943,666✔
117
  (void)taosThreadOnce(&tsDriverEnvOnce, taos_init_driver_env);
1,316,943,666✔
118
  (void)taosThreadOnce(&tsDriverOnce, taos_init_driver);
1,316,944,344✔
119
  (void)taosThreadOnce(&tsInitOnce, taos_init_wrapper);
1,316,944,316✔
120
  return tsInitOnceRet;
1,316,941,880✔
121
}
122

123
void taos_cleanup(void) {
927,203✔
124
  CHECK_VOID(fp_taos_cleanup);
927,203✔
125
  (*fp_taos_cleanup)();
927,203✔
126
}
127

128
int taos_options(TSDB_OPTION option, const void *arg, ...) {
58,178,438✔
129
  (void)taosThreadOnce(&tsDriverEnvOnce, taos_init_driver_env);
58,178,438✔
130
  if (option == TSDB_OPTION_DRIVER) {
58,179,455✔
131
    if (tsDriver == NULL) {
928,254✔
132
      if (strcasecmp((const char *)arg, STR_NATIVE) == 0) {
928,254✔
133
        tsDriverType = DRIVER_NATIVE;
925,890✔
134
        return 0;
925,890✔
135
      }
136
      if (strcasecmp((const char *)arg, STR_WEBSOCKET) == 0) {
2,364✔
137
        tsDriverType = DRIVER_WEBSOCKET;
2,364✔
138
        return 0;
2,364✔
139
      }
140
    }
141
    terrno = TSDB_CODE_REPEAT_INIT;
×
142
    return -1;
×
143
  }
144
  (void)taosThreadOnce(&tsDriverOnce, taos_init_driver);
57,251,201✔
145

146
  CHECK_INT(fp_taos_options);
57,251,201✔
147
  return (*fp_taos_options)(option, arg);
57,251,201✔
148
}
149

150
int taos_options_connection(TAOS *taos, TSDB_OPTION_CONNECTION option, const void *arg, ...) {
134✔
151
  CHECK_INT(fp_taos_options_connection);
134✔
152
  return (*fp_taos_options_connection)(taos, option, (const char *)arg);
134✔
153
}
154

155
TAOS *taos_connect(const char *ip, const char *user, const char *pass, const char *db, uint16_t port) {
58,764,216✔
156
  if (taos_init() != 0) {
58,764,216✔
157
    //terrno = TSDB_CODE_DLL_NOT_LOAD;
158
    return NULL;
×
159
  }
160

161
  CHECK_PTR(fp_taos_connect);
58,763,851✔
162
  return (*fp_taos_connect)(ip, user, pass, db, port);
58,763,851✔
163
}
164

165
TAOS *taos_connect_totp(const char *ip, const char *user, const char *pass, const char* totp, const char *db, uint16_t port) {
1,908✔
166
  if (taos_init() != 0) {
1,908✔
167
    terrno = TSDB_CODE_DLL_NOT_LOAD;
×
168
    return NULL;
×
169
  }
170

171
  CHECK_PTR(fp_taos_connect_totp);
1,908✔
172
  return (*fp_taos_connect_totp)(ip, user, pass, totp, db, port);
1,908✔
173
}
174

175
int taos_connect_test(const char *ip, const char *user, const char *pass, const char* totp, const char *db, uint16_t port) {
×
176
  if (taos_init() != 0) {
×
177
    return TSDB_CODE_DLL_NOT_LOAD;
×
178
  }
179
  if (tsDriver == NULL) {
×
180
    return TSDB_CODE_DLL_NOT_LOAD;
×
181
  }
182
  if (fp_taos_connect_test == NULL) {
×
183
    return TSDB_CODE_DLL_FUNC_NOT_LOAD;
×
184
  }
185
  return (*fp_taos_connect_test)(ip, user, pass, totp, db, port);
×
186
}
187

188
TAOS *taos_connect_token(const char *ip, const char *token, const char *db, uint16_t port) {
2,292✔
189
  if (taos_init() != 0) {
2,292✔
190
    terrno = TSDB_CODE_DLL_NOT_LOAD;
×
191
    return NULL;
×
192
  }
193

194
  CHECK_PTR(fp_taos_connect_token);
2,292✔
195
  return (*fp_taos_connect_token)(ip, token, db, port);
2,292✔
196
}
197

198
TAOS *taos_connect_auth(const char *ip, const char *user, const char *auth, const char *db, uint16_t port) {
135✔
199
  if (taos_init() != 0) {
135✔
200
    terrno = TSDB_CODE_DLL_NOT_LOAD;
×
201
    return NULL;
×
202
  }
203

204
  CHECK_PTR(fp_taos_connect_auth);
135✔
205
  return (*fp_taos_connect_auth)(ip, user, auth, db, port);
135✔
206
}
207

208
void taos_set_option(OPTIONS *options, const char *key, const char *value) {
×
209
  if (taos_init() != 0) {
×
210
    return;
×
211
  }
212

213
  CHECK_VOID(fp_taos_set_option);
×
214
  (*fp_taos_set_option)(options, key, value);
×
215
}
216

217
TAOS *taos_connect_with(const OPTIONS *options) {
×
218
  if (taos_init() != 0) {
×
219
    return NULL;
×
220
  }
221

222
  CHECK_PTR(fp_taos_connect_with);
×
223
  return (*fp_taos_connect_with)(options);
×
224
}
225

226
TAOS *taos_connect_with_dsn(const char *dsn) {
979✔
227
  if (taos_init() != 0) {
979✔
228
    return NULL;
×
229
  }
230

231
  CHECK_PTR(fp_taos_connect_with_dsn);
979✔
232
  return (*fp_taos_connect_with_dsn)(dsn);
979✔
233
}
234

235
void taos_close(TAOS *taos) {
58,756,028✔
236
  CHECK_VOID(fp_taos_close);
58,756,028✔
237
  (*fp_taos_close)(taos);
58,756,028✔
238
}
239

240
const char *taos_data_type(int type) {
×
241
  (void)taos_init();
×
242
  CHECK_PTR(fp_taos_data_type);
×
243
  return (*fp_taos_data_type)(type);
×
244
}
245

246
TAOS_STMT *taos_stmt_init(TAOS *taos) {
19,167✔
247
  CHECK_PTR(fp_taos_stmt_init);
19,167✔
248
  return (*fp_taos_stmt_init)(taos);
19,167✔
249
}
250

UNCOV
251
TAOS_STMT *taos_stmt_init_with_reqid(TAOS *taos, int64_t reqid) {
×
UNCOV
252
  CHECK_PTR(fp_taos_stmt_init_with_reqid);
×
UNCOV
253
  return (*fp_taos_stmt_init_with_reqid)(taos, reqid);
×
254
}
255

256
TAOS_STMT *taos_stmt_init_with_options(TAOS *taos, TAOS_STMT_OPTIONS *options) {
12,064✔
257
  CHECK_PTR(fp_taos_stmt_init_with_options);
12,064✔
258
  return (*fp_taos_stmt_init_with_options)(taos, options);
12,064✔
259
}
260

261
int taos_stmt_prepare(TAOS_STMT *stmt, const char *sql, unsigned long length) {
6,451,357✔
262
  CHECK_INT(fp_taos_stmt_prepare);
6,451,357✔
263
  return (*fp_taos_stmt_prepare)(stmt, sql, length);
6,451,357✔
264
}
265

266
int taos_stmt_set_tbname_tags(TAOS_STMT *stmt, const char *name, TAOS_MULTI_BIND *tags) {
5,781✔
267
  CHECK_INT(fp_taos_stmt_set_tbname_tags);
5,781✔
268
  return (*fp_taos_stmt_set_tbname_tags)(stmt, name, tags);
5,781✔
269
}
270

271
int taos_stmt_set_tbname(TAOS_STMT *stmt, const char *name) {
8,403,180✔
272
  CHECK_INT(fp_taos_stmt_set_tbname);
8,403,180✔
273
  return (*fp_taos_stmt_set_tbname)(stmt, name);
8,403,180✔
274
}
275

276
int taos_stmt_set_tags(TAOS_STMT *stmt, TAOS_MULTI_BIND *tags) {
134✔
277
  CHECK_INT(fp_taos_stmt_set_tags);
134✔
278
  return (*fp_taos_stmt_set_tags)(stmt, tags);
134✔
279
}
280

281
int taos_stmt_set_sub_tbname(TAOS_STMT *stmt, const char *name) {
×
282
  CHECK_INT(fp_taos_stmt_set_sub_tbname);
×
283
  return (*fp_taos_stmt_set_sub_tbname)(stmt, name);
×
284
}
285

286
int taos_stmt_get_tag_fields(TAOS_STMT *stmt, int *fieldNum, TAOS_FIELD_E **fields) {
×
287
  CHECK_INT(fp_taos_stmt_get_tag_fields);
×
288
  return (*fp_taos_stmt_get_tag_fields)(stmt, fieldNum, fields);
×
289
}
290

291
int taos_stmt_get_col_fields(TAOS_STMT *stmt, int *fieldNum, TAOS_FIELD_E **fields) {
×
292
  CHECK_INT(fp_taos_stmt_get_col_fields);
×
293
  return (*fp_taos_stmt_get_col_fields)(stmt, fieldNum, fields);
×
294
}
295

296
void taos_stmt_reclaim_fields(TAOS_STMT *stmt, TAOS_FIELD_E *fields) {
×
297
  CHECK_VOID(fp_taos_stmt_reclaim_fields);
×
298
  (*fp_taos_stmt_reclaim_fields)(stmt, fields);
×
299
}
300

301
int taos_stmt_is_insert(TAOS_STMT *stmt, int *insert) {
×
302
  CHECK_INT(fp_taos_stmt_is_insert);
×
303
  return (*fp_taos_stmt_is_insert)(stmt, insert);
×
304
}
305

306
int taos_stmt_num_params(TAOS_STMT *stmt, int *nums) {
×
307
  CHECK_INT(fp_taos_stmt_num_params);
×
308
  return (*fp_taos_stmt_num_params)(stmt, nums);
×
309
}
310

311
int taos_stmt_get_param(TAOS_STMT *stmt, int idx, int *type, int *bytes) {
×
312
  CHECK_INT(fp_taos_stmt_get_param);
×
313
  return (*fp_taos_stmt_get_param)(stmt, idx, type, bytes);
×
314
}
315

316
int taos_stmt_bind_param(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
26,749✔
317
  CHECK_INT(fp_taos_stmt_bind_param);
26,749✔
318
  return (*fp_taos_stmt_bind_param)(stmt, bind);
26,749✔
319
}
320

321
int taos_stmt_bind_param_batch(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
8,405,732✔
322
  CHECK_INT(fp_taos_stmt_bind_param_batch);
8,405,732✔
323
  return (*fp_taos_stmt_bind_param_batch)(stmt, bind);
8,405,732✔
324
}
325

326
int taos_stmt_bind_single_param_batch(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind, int colIdx) {
700✔
327
  CHECK_INT(fp_taos_stmt_bind_single_param_batch);
700✔
328
  return (*fp_taos_stmt_bind_single_param_batch)(stmt, bind, colIdx);
700✔
329
}
330

331
int taos_stmt_add_batch(TAOS_STMT *stmt) {
7,001,278✔
332
  CHECK_INT(fp_taos_stmt_add_batch);
7,001,278✔
333
  return (*fp_taos_stmt_add_batch)(stmt);
7,001,278✔
334
}
335

336
int taos_stmt_execute(TAOS_STMT *stmt) {
6,992,262✔
337
  CHECK_INT(fp_taos_stmt_execute);
6,992,262✔
338
  return (*fp_taos_stmt_execute)(stmt);
6,992,262✔
339
}
340

341
TAOS_RES *taos_stmt_use_result(TAOS_STMT *stmt) {
9,264✔
342
  CHECK_PTR(fp_taos_stmt_use_result);
9,264✔
343
  return (*fp_taos_stmt_use_result)(stmt);
9,264✔
344
}
345

346
int taos_stmt_close(TAOS_STMT *stmt) {
31,231✔
347
  CHECK_INT(fp_taos_stmt_close);
31,231✔
348
  return (*fp_taos_stmt_close)(stmt);
31,231✔
349
}
350

351
char *taos_stmt_errstr(TAOS_STMT *stmt) {
9,760✔
352
  CHECK_PTR(fp_taos_stmt_errstr);
9,760✔
353
  return (*fp_taos_stmt_errstr)(stmt);
9,760✔
354
}
355

356
int taos_stmt_affected_rows(TAOS_STMT *stmt) {
3,010✔
357
  CHECK_INT(fp_taos_stmt_affected_rows);
3,010✔
358
  return (*fp_taos_stmt_affected_rows)(stmt);
3,010✔
359
}
360

361
int taos_stmt_affected_rows_once(TAOS_STMT *stmt) {
80✔
362
  CHECK_INT(fp_taos_stmt_affected_rows_once);
80✔
363
  return (*fp_taos_stmt_affected_rows_once)(stmt);
80✔
364
}
365

366
TAOS_STMT2 *taos_stmt2_init(TAOS *taos, TAOS_STMT2_OPTION *option) {
104,003✔
367
  CHECK_PTR(fp_taos_stmt2_init);
104,003✔
368
  return (*fp_taos_stmt2_init)(taos, option);
104,003✔
369
}
370

371
int taos_stmt2_prepare(TAOS_STMT2 *stmt, const char *sql, unsigned long length) {
103,928✔
372
  CHECK_INT(fp_taos_stmt2_prepare);
103,928✔
373
  return (*fp_taos_stmt2_prepare)(stmt, sql, length);
103,928✔
374
}
375

376
int taos_stmt2_bind_param(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t col_idx) {
35,057,035✔
377
  CHECK_INT(fp_taos_stmt2_bind_param);
35,057,035✔
378
  return (*fp_taos_stmt2_bind_param)(stmt, bindv, col_idx);
35,057,035✔
379
}
380

381
int taos_stmt2_bind_param_a(TAOS_STMT2 *stmt, TAOS_STMT2_BINDV *bindv, int32_t col_idx, __taos_async_fn_t fp,
×
382
                            void *param) {
383
  CHECK_INT(fp_taos_stmt2_bind_param_a);
×
384
  return (*fp_taos_stmt2_bind_param_a)(stmt, bindv, col_idx, fp, param);
×
385
}
386

387
int taos_stmt2_exec(TAOS_STMT2 *stmt, int *affected_rows) {
804,311✔
388
  CHECK_INT(fp_taos_stmt2_exec);
804,311✔
389
  return (*fp_taos_stmt2_exec)(stmt, affected_rows);
804,311✔
390
}
391

392
int taos_stmt2_close(TAOS_STMT2 *stmt) {
104,054✔
393
  CHECK_INT(fp_taos_stmt2_close);
104,054✔
394
  return (*fp_taos_stmt2_close)(stmt);
104,054✔
395
}
396

397
int taos_stmt2_is_insert(TAOS_STMT2 *stmt, int *insert) {
27✔
398
  CHECK_INT(fp_taos_stmt2_is_insert);
27✔
399
  return (*fp_taos_stmt2_is_insert)(stmt, insert);
27✔
400
}
401

402
int taos_stmt2_get_fields(TAOS_STMT2 *stmt, int *count, TAOS_FIELD_ALL **fields) {
19✔
403
  CHECK_INT(fp_taos_stmt2_get_fields);
19✔
404
  return (*fp_taos_stmt2_get_fields)(stmt, count, fields);
19✔
405
}
406

407
void taos_stmt2_free_fields(TAOS_STMT2 *stmt, TAOS_FIELD_ALL *fields) {
19✔
408
  CHECK_VOID(fp_taos_stmt2_free_fields);
19✔
409
  (*fp_taos_stmt2_free_fields)(stmt, fields);
19✔
410
}
411

412
TAOS_RES *taos_stmt2_result(TAOS_STMT2 *stmt) {
8✔
413
  CHECK_PTR(fp_taos_stmt2_result);
8✔
414
  return (*fp_taos_stmt2_result)(stmt);
8✔
415
}
416

417
char *taos_stmt2_error(TAOS_STMT2 *stmt) {
×
418
  CHECK_PTR(fp_taos_stmt2_error);
×
419
  return (*fp_taos_stmt2_error)(stmt);
×
420
}
421

422
TAOS_RES *taos_query(TAOS *taos, const char *sql) {
878,412,341✔
423
  CHECK_PTR(fp_taos_query);
878,412,341✔
424
  return (*fp_taos_query)(taos, sql);
878,412,341✔
425
}
426

427
TAOS_RES *taos_query_with_reqid(TAOS *taos, const char *sql, int64_t reqId) {
348,127✔
428
  CHECK_PTR(fp_taos_query_with_reqid);
348,127✔
429
  return (*fp_taos_query_with_reqid)(taos, sql, reqId);
348,127✔
430
}
431

432
TAOS_ROW taos_fetch_row(TAOS_RES *res) {
1,435,398,951✔
433
  CHECK_PTR(fp_taos_fetch_row);
1,435,398,951✔
434
  return (*fp_taos_fetch_row)(res);
1,435,398,951✔
435
}
436

437
int taos_result_precision(TAOS_RES *res) {
199,331,676✔
438
  CHECK_INT(fp_taos_result_precision);
199,331,676✔
439
  return (*fp_taos_result_precision)(res);
199,331,676✔
440
}
441

442
void taos_free_result(TAOS_RES *res) {
898,619,148✔
443
  CHECK_VOID(fp_taos_free_result);
898,619,148✔
444
  return (*fp_taos_free_result)(res);
898,619,148✔
445
}
446

447
void taos_kill_query(TAOS *taos) {
736✔
448
  CHECK_VOID(fp_taos_kill_query);
736✔
449
  return (*fp_taos_kill_query)(taos);
736✔
450
}
451

452
int taos_field_count(TAOS_RES *res) {
2,147,483,647✔
453
  CHECK_INT(fp_taos_field_count);
2,147,483,647✔
454
  return (*fp_taos_field_count)(res);
2,147,483,647✔
455
}
456

457
int taos_num_fields(TAOS_RES *res) {
1,502,630,345✔
458
  CHECK_INT(fp_taos_num_fields);
1,502,630,345✔
459
  return (*fp_taos_num_fields)(res);
1,502,630,345✔
460
}
461

462
int taos_affected_rows(TAOS_RES *res) {
648,682,275✔
463
  CHECK_INT(fp_taos_affected_rows);
648,682,275✔
464
  return (*fp_taos_affected_rows)(res);
648,682,275✔
465
}
466

467
int64_t taos_affected_rows64(TAOS_RES *res) {
1,297,175✔
468
  CHECK_INT(fp_taos_affected_rows64);
1,297,175✔
469
  return (*fp_taos_affected_rows64)(res);
1,297,175✔
470
}
471

472
TAOS_FIELD *taos_fetch_fields(TAOS_RES *res) {
161,993,186✔
473
  CHECK_PTR(fp_taos_fetch_fields);
161,993,186✔
474
  return (*fp_taos_fetch_fields)(res);
161,993,186✔
475
}
476

477
TAOS_FIELD_E *taos_fetch_fields_e(TAOS_RES *res) {
171✔
478
  CHECK_PTR(fp_taos_fetch_fields_e);
171✔
479
  return (*fp_taos_fetch_fields_e)(res);
171✔
480
}
481

482
int taos_select_db(TAOS *taos, const char *db) {
38,679✔
483
  CHECK_INT(fp_taos_select_db);
38,679✔
484
  return (*fp_taos_select_db)(taos, db);
38,679✔
485
}
486

487
int taos_print_row(char *str, TAOS_ROW row, TAOS_FIELD *fields, int num_fields) {
8,610,749✔
488
  CHECK_INT(fp_taos_print_row);
8,610,749✔
489
  return (*fp_taos_print_row)(str, row, fields, num_fields);
8,610,749✔
490
}
491

492
int taos_print_row_with_size(char *str, uint32_t size, TAOS_ROW row, TAOS_FIELD *fields, int num_fields) {
8,618,948✔
493
  CHECK_INT(fp_taos_print_row_with_size);
8,618,948✔
494
  return (*fp_taos_print_row_with_size)(str, size, row, fields, num_fields);
8,618,948✔
495
}
496

497
void taos_stop_query(TAOS_RES *res) {
67,080,475✔
498
  CHECK_VOID(fp_taos_stop_query);
67,080,475✔
499
  (*fp_taos_stop_query)(res);
67,080,475✔
500
}
501

502
bool taos_is_null(TAOS_RES *res, int32_t row, int32_t col) {
×
503
  CHECK_BOOL(fp_taos_is_null);
×
504
  return (*fp_taos_is_null)(res, row, col);
×
505
}
506

507
int taos_is_null_by_column(TAOS_RES *res, int columnIndex, bool result[], int *rows) {
715,614,090✔
508
  CHECK_INT(fp_taos_is_null_by_column);
715,614,090✔
509
  return (*fp_taos_is_null_by_column)(res, columnIndex, result, rows);
715,614,090✔
510
}
511

512
bool taos_is_update_query(TAOS_RES *res) {
287,739✔
513
  CHECK_BOOL(fp_taos_is_update_query);
287,739✔
514
  return (*fp_taos_is_update_query)(res);
287,739✔
515
}
516

517
int taos_fetch_block(TAOS_RES *res, TAOS_ROW *rows) {
284,203,583✔
518
  CHECK_INT(fp_taos_fetch_block);
284,203,583✔
519
  return (*fp_taos_fetch_block)(res, rows);
284,203,583✔
520
}
521

522
int taos_fetch_block_s(TAOS_RES *res, int *numOfRows, TAOS_ROW *rows) {
×
523
  CHECK_INT(fp_taos_fetch_block_s);
×
524
  return (*fp_taos_fetch_block_s)(res, numOfRows, rows);
×
525
}
526

527
int taos_fetch_raw_block(TAOS_RES *res, int *numOfRows, void **pData) {
2,316✔
528
  CHECK_INT(fp_taos_fetch_raw_block);
2,316✔
529
  return (*fp_taos_fetch_raw_block)(res, numOfRows, pData);
2,316✔
530
}
531

532
int *taos_get_column_data_offset(TAOS_RES *res, int columnIndex) {
215,761,327✔
533
  CHECK_PTR(fp_taos_get_column_data_offset);
215,761,327✔
534
  return (*fp_taos_get_column_data_offset)(res, columnIndex);
215,761,327✔
535
}
536

537
int taos_validate_sql(TAOS *taos, const char *sql) {
×
538
  CHECK_INT(fp_taos_validate_sql);
×
539
  return (*fp_taos_validate_sql)(taos, sql);
×
540
}
541

542
void taos_reset_current_db(TAOS *taos) {
×
543
  CHECK_VOID(fp_taos_reset_current_db);
×
544
  (*fp_taos_reset_current_db)(taos);
×
545
}
546

547
int *taos_fetch_lengths(TAOS_RES *res) {
1,425,566,681✔
548
  CHECK_PTR(fp_taos_fetch_lengths);
1,425,566,681✔
549
  return (*fp_taos_fetch_lengths)(res);
1,425,566,681✔
550
}
551

552
TAOS_ROW *taos_result_block(TAOS_RES *res) {
×
553
  CHECK_PTR(fp_taos_result_block);
×
554
  return (*fp_taos_result_block)(res);
×
555
}
556

557
const char *taos_get_server_info(TAOS *taos) {
3,909✔
558
  CHECK_PTR(fp_taos_get_server_info);
3,909✔
559
  return (*fp_taos_get_server_info)(taos);
3,909✔
560
}
561

562
const char *taos_get_client_info() {
1,295,296✔
563
  if (fp_taos_get_client_info == NULL) {
1,295,296✔
564
    return td_version;
405,960✔
565
  } else {
566
    return (*fp_taos_get_client_info)();
889,336✔
567
  }
568
}
569

570
int taos_get_current_db(TAOS *taos, char *database, int len, int *required) {
×
571
  CHECK_INT(fp_taos_get_current_db);
×
572
  return (*fp_taos_get_current_db)(taos, database, len, required);
×
573
}
574

575
int taos_get_connection_info(TAOS *taos, TSDB_CONNECTION_INFO info, char *buffer, int* len) {
×
576
  CHECK_INT(fp_taos_get_connection_info);
×
577
  return (*fp_taos_get_connection_info)(taos, info, buffer, len);
×
578
}
579

580
const char *taos_errstr(TAOS_RES *res) {
67,051,207✔
581
  (void)taos_init();
67,051,207✔
582
  if (fp_taos_errstr == NULL) {
67,051,587✔
583
    return tstrerror(terrno);
×
584
  }
585
  return (*fp_taos_errstr)(res);
67,051,587✔
586
}
587

588
int taos_errno(TAOS_RES *res) {
1,187,811,201✔
589
  (void)taos_init();
1,187,811,201✔
590
  if (fp_taos_errno == NULL) {
1,187,811,844✔
591
    return terrno;
×
592
  }
593
  return (*fp_taos_errno)(res);
1,187,811,844✔
594
}
595

596
void taos_query_a(TAOS *taos, const char *sql, __taos_async_fn_t fp, void *param) {
841✔
597
  CHECK_VOID(fp_taos_query_a);
841✔
598
  (*fp_taos_query_a)(taos, sql, fp, param);
841✔
599
}
600

601
void taos_query_a_with_reqid(TAOS *taos, const char *sql, __taos_async_fn_t fp, void *param, int64_t reqid) {
×
602
  CHECK_VOID(fp_taos_query_a_with_reqid);
×
603
  (*fp_taos_query_a_with_reqid)(taos, sql, fp, param, reqid);
×
604
}
605

606
void taos_fetch_rows_a(TAOS_RES *res, __taos_async_fn_t fp, void *param) {
26,667,833✔
607
  CHECK_VOID(fp_taos_fetch_rows_a);
26,667,833✔
608
  (*fp_taos_fetch_rows_a)(res, fp, param);
26,667,833✔
609
}
610

611
void taos_fetch_raw_block_a(TAOS_RES *res, __taos_async_fn_t fp, void *param) {
122✔
612
  CHECK_VOID(fp_taos_fetch_raw_block_a);
122✔
613
  (*fp_taos_fetch_raw_block_a)(res, fp, param);
122✔
614
}
615

616
const void *taos_get_raw_block(TAOS_RES *res) {
76✔
617
  CHECK_PTR(fp_taos_get_raw_block);
76✔
618
  return (*fp_taos_get_raw_block)(res);
76✔
619
}
620

621
int taos_get_db_route_info(TAOS *taos, const char *db, TAOS_DB_ROUTE_INFO *dbInfo) {
×
622
  CHECK_INT(fp_taos_get_db_route_info);
×
623
  return (*fp_taos_get_db_route_info)(taos, db, dbInfo);
×
624
}
625

626
int taos_get_table_vgId(TAOS *taos, const char *db, const char *table, int *vgId) {
×
627
  CHECK_INT(fp_taos_get_table_vgId);
×
628
  return (*fp_taos_get_table_vgId)(taos, db, table, vgId);
×
629
}
630

631
int taos_get_tables_vgId(TAOS *taos, const char *db, const char *table[], int tableNum, int *vgId) {
×
632
  CHECK_INT(fp_taos_get_tables_vgId);
×
633
  return (*fp_taos_get_tables_vgId)(taos, db, table, tableNum, vgId);
×
634
}
635

636
int taos_load_table_info(TAOS *taos, const char *tableNameList) {
1,158✔
637
  CHECK_INT(fp_taos_load_table_info);
1,158✔
638
  return (*fp_taos_load_table_info)(taos, tableNameList);
1,158✔
639
}
640

641
void taos_set_hb_quit(int8_t quitByKill) {
889,512✔
642
  if (taos_init() != 0) {
889,512✔
643
    return;
×
644
  }
645

646
  CHECK_VOID(fp_taos_set_hb_quit);
889,512✔
647
  return (*fp_taos_set_hb_quit)(quitByKill);
889,512✔
648
}
649

650
int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t fp, void *param, int type) {
1,260✔
651
  CHECK_INT(fp_taos_set_notify_cb);
1,260✔
652
  return (*fp_taos_set_notify_cb)(taos, fp, param, type);
1,260✔
653
}
654

655
void taos_fetch_whitelist_a(TAOS *taos, __taos_async_whitelist_fn_t fp, void *param) {
×
656
  CHECK_VOID(fp_taos_fetch_whitelist_a);
×
657
  return (*fp_taos_fetch_whitelist_a)(taos, fp, param);
×
658
}
659

660
void taos_fetch_whitelist_dual_stack_a(TAOS *taos, __taos_async_whitelist_dual_stack_fn_t fp, void *param) {
×
661
  CHECK_VOID(fp_taos_fetch_whitelist_dual_stack_a);
×
662
  return (*fp_taos_fetch_whitelist_dual_stack_a)(taos, fp, param);
×
663
}
664

665
void taos_fetch_ip_whitelist_a(TAOS *taos, __taos_async_ip_whitelist_fn_t fp, void *param) {
×
666
  CHECK_VOID(fp_taos_fetch_ip_whitelist_a);
×
667
  return (*fp_taos_fetch_ip_whitelist_a)(taos, fp, param);
×
668
}
669

670
void taos_fetch_datetime_whitelist_a(TAOS *taos, __taos_async_datetime_whitelist_fn_t fp, void *param) {
×
671
  CHECK_VOID(fp_taos_fetch_datetime_whitelist_a);
×
672
  return (*fp_taos_fetch_datetime_whitelist_a)(taos, fp, param);
×
673
}
674

675
int taos_set_conn_mode(TAOS *taos, int mode, int value) {
2,337✔
676
  CHECK_INT(fp_taos_set_conn_mode);
2,337✔
677
  return (*fp_taos_set_conn_mode)(taos, mode, value);
2,337✔
678
}
679

680
TAOS_RES *taos_schemaless_insert(TAOS *taos, char *lines[], int numLines, int protocol, int precision) {
434,079✔
681
  CHECK_PTR(fp_taos_schemaless_insert);
434,079✔
682
  return (*fp_taos_schemaless_insert)(taos, lines, numLines, protocol, precision);
434,079✔
683
}
684

685
TAOS_RES *taos_schemaless_insert_with_reqid(TAOS *taos, char *lines[], int numLines, int protocol, int precision,
×
686
                                            int64_t reqid) {
687
  CHECK_PTR(fp_taos_schemaless_insert_with_reqid);
×
688
  return (*fp_taos_schemaless_insert_with_reqid)(taos, lines, numLines, protocol, precision, reqid);
×
689
}
690

691
TAOS_RES *taos_schemaless_insert_raw(TAOS *taos, char *lines, int len, int32_t *totalRows, int protocol,
18✔
692
                                     int precision) {
693
  CHECK_PTR(fp_taos_schemaless_insert_raw);
18✔
694
  return (*fp_taos_schemaless_insert_raw)(taos, lines, len, totalRows, protocol, precision);
18✔
695
}
696

697
TAOS_RES *taos_schemaless_insert_raw_with_reqid(TAOS *taos, char *lines, int len, int32_t *totalRows, int protocol,
24✔
698
                                                int precision, int64_t reqid) {
699
  CHECK_PTR(fp_taos_schemaless_insert_raw_with_reqid);
24✔
700
  return (*fp_taos_schemaless_insert_raw_with_reqid)(taos, lines, len, totalRows, protocol, precision, reqid);
24✔
701
}
702

703
TAOS_RES *taos_schemaless_insert_ttl(TAOS *taos, char *lines[], int numLines, int protocol, int precision,
×
704
                                     int32_t ttl) {
705
  CHECK_PTR(fp_taos_schemaless_insert_ttl);
×
706
  return (*fp_taos_schemaless_insert_ttl)(taos, lines, numLines, protocol, precision, ttl);
×
707
}
708

709
TAOS_RES *taos_schemaless_insert_ttl_with_reqid(TAOS *taos, char *lines[], int numLines, int protocol, int precision,
33,898✔
710
                                                int32_t ttl, int64_t reqid) {
711
  CHECK_PTR(fp_taos_schemaless_insert_ttl_with_reqid);
33,898✔
712
  return (*fp_taos_schemaless_insert_ttl_with_reqid)(taos, lines, numLines, protocol, precision, ttl, reqid);
33,898✔
713
}
714

715
TAOS_RES *taos_schemaless_insert_raw_ttl(TAOS *taos, char *lines, int len, int32_t *totalRows, int protocol,
×
716
                                         int precision, int32_t ttl) {
717
  CHECK_PTR(fp_taos_schemaless_insert_raw_ttl);
×
718
  return (*fp_taos_schemaless_insert_raw_ttl)(taos, lines, len, totalRows, protocol, precision, ttl);
×
719
}
720

721
TAOS_RES *taos_schemaless_insert_raw_ttl_with_reqid(TAOS *taos, char *lines, int len, int32_t *totalRows, int protocol,
85✔
722
                                                    int precision, int32_t ttl, int64_t reqid) {
723
  CHECK_PTR(fp_taos_schemaless_insert_raw_ttl_with_reqid);
85✔
724
  return (*fp_taos_schemaless_insert_raw_ttl_with_reqid)(taos, lines, len, totalRows, protocol, precision, ttl, reqid);
85✔
725
}
726

727
TAOS_RES *taos_schemaless_insert_raw_ttl_with_reqid_tbname_key(TAOS *taos, char *lines, int len, int32_t *totalRows,
×
728
                                                               int protocol, int precision, int32_t ttl, int64_t reqid,
729
                                                               char *tbnameKey) {
730
  CHECK_PTR(fp_taos_schemaless_insert_raw_ttl_with_reqid_tbname_key);
×
731
  return (*fp_taos_schemaless_insert_raw_ttl_with_reqid_tbname_key)(taos, lines, len, totalRows, protocol, precision,
×
732
                                                                    ttl, reqid, tbnameKey);
733
}
734

735
TAOS_RES *taos_schemaless_insert_ttl_with_reqid_tbname_key(TAOS *taos, char *lines[], int numLines, int protocol,
33,898✔
736
                                                           int precision, int32_t ttl, int64_t reqid, char *tbnameKey) {
737
  CHECK_PTR(fp_taos_schemaless_insert_ttl_with_reqid_tbname_key);
33,898✔
738
  return (*fp_taos_schemaless_insert_ttl_with_reqid_tbname_key)(taos, lines, numLines, protocol, precision, ttl, reqid,
33,898✔
739
                                                                tbnameKey);
740
}
741

742
tmq_conf_t *tmq_conf_new() {
30,515✔
743
  (void)taos_init();
30,515✔
744
  CHECK_PTR(fp_tmq_conf_new);
30,515✔
745
  return (*fp_tmq_conf_new)();
30,515✔
746
}
747

748
tmq_conf_res_t tmq_conf_set(tmq_conf_t *conf, const char *key, const char *value) {
175,204✔
749
  CHECK_INT(fp_tmq_conf_set);
175,204✔
750
  return (*fp_tmq_conf_set)(conf, key, value);
175,204✔
751
}
752

753
void tmq_conf_destroy(tmq_conf_t *conf) {
30,515✔
754
  CHECK_VOID(fp_tmq_conf_destroy);
30,515✔
755
  (*fp_tmq_conf_destroy)(conf);
30,515✔
756
}
757

758
void tmq_conf_set_auto_commit_cb(tmq_conf_t *conf, tmq_commit_cb *cb, void *param) {
988✔
759
  CHECK_VOID(fp_tmq_conf_set_auto_commit_cb);
988✔
760
  (*fp_tmq_conf_set_auto_commit_cb)(conf, cb, param);
988✔
761
}
762

763
tmq_list_t *tmq_list_new() {
34,292✔
764
  (void)taos_init();
34,292✔
765
  CHECK_PTR(fp_tmq_list_new);
34,321✔
766
  return (*fp_tmq_list_new)();
34,321✔
767
}
768

769
int32_t tmq_list_append(tmq_list_t *tlist, const char *val) {
32,136✔
770
  CHECK_INT(fp_tmq_list_append);
32,136✔
771
  return (*fp_tmq_list_append)(tlist, val);
32,136✔
772
}
773

774
void tmq_list_destroy(tmq_list_t *tlist) {
34,326✔
775
  CHECK_VOID(fp_tmq_list_destroy);
34,326✔
776
  (*fp_tmq_list_destroy)(tlist);
34,326✔
777
}
778

779
int32_t tmq_list_get_size(const tmq_list_t *tlist) {
1,880✔
780
  CHECK_INT(fp_tmq_list_get_size);
1,880✔
781
  return (*fp_tmq_list_get_size)(tlist);
1,880✔
782
}
783

784
char **tmq_list_to_c_array(const tmq_list_t *tlist) {
1,880✔
785
  CHECK_PTR(fp_tmq_list_to_c_array);
1,880✔
786
  return (*fp_tmq_list_to_c_array)(tlist);
1,880✔
787
}
788

789
tmq_t *tmq_consumer_new(tmq_conf_t *conf, char *errstr, int32_t errstrLen) {
30,505✔
790
  (void)taos_init();
30,505✔
791
  CHECK_PTR(fp_tmq_consumer_new);
30,515✔
792
  return (*fp_tmq_consumer_new)(conf, errstr, errstrLen);
30,515✔
793
}
794

795
int32_t tmq_subscribe(tmq_t *tmq, const tmq_list_t *topic_list) {
32,446✔
796
  CHECK_INT(fp_tmq_subscribe);
32,446✔
797
  return (*fp_tmq_subscribe)(tmq, topic_list);
32,446✔
798
}
799

800
int32_t tmq_unsubscribe(tmq_t *tmq) {
19,410✔
801
  CHECK_INT(fp_tmq_unsubscribe);
19,410✔
802
  return (*fp_tmq_unsubscribe)(tmq);
19,410✔
803
}
804

805
int32_t tmq_subscription(tmq_t *tmq, tmq_list_t **topics) {
1,880✔
806
  CHECK_INT(fp_tmq_subscription);
1,880✔
807
  return (*fp_tmq_subscription)(tmq, topics);
1,880✔
808
}
809

810
TAOS_RES *tmq_consumer_poll(tmq_t *tmq, int64_t timeout) {
324,639✔
811
  CHECK_PTR(fp_tmq_consumer_poll);
324,639✔
812
  return (*fp_tmq_consumer_poll)(tmq, timeout);
324,639✔
813
}
814

815
int32_t tmq_consumer_close(tmq_t *tmq) {
30,575✔
816
  CHECK_INT(fp_tmq_consumer_close);
30,575✔
817
  return (*fp_tmq_consumer_close)(tmq);
30,575✔
818
}
819

820
int32_t tmq_commit_sync(tmq_t *tmq, const TAOS_RES *msg) {
8,981✔
821
  CHECK_INT(fp_tmq_commit_sync);
8,981✔
822
  return (*fp_tmq_commit_sync)(tmq, msg);
8,981✔
823
}
824

825
void tmq_commit_async(tmq_t *tmq, const TAOS_RES *msg, tmq_commit_cb *cb, void *param) {
×
826
  CHECK_VOID(fp_tmq_commit_async);
×
827
  (*fp_tmq_commit_async)(tmq, msg, cb, param);
×
828
}
829

830
int32_t tmq_commit_offset_sync(tmq_t *tmq, const char *pTopicName, int32_t vgId, int64_t offset) {
2,390✔
831
  CHECK_INT(fp_tmq_commit_offset_sync);
2,390✔
832
  return (*fp_tmq_commit_offset_sync)(tmq, pTopicName, vgId, offset);
2,390✔
833
}
834

835
void tmq_commit_offset_async(tmq_t *tmq, const char *pTopicName, int32_t vgId, int64_t offset, tmq_commit_cb *cb,
×
836
                             void *param) {
837
  CHECK_VOID(fp_tmq_commit_offset_async);
×
838
  (*fp_tmq_commit_offset_async)(tmq, pTopicName, vgId, offset, cb, param);
×
839
}
840

841
int32_t tmq_get_topic_assignment(tmq_t *tmq, const char *pTopicName, tmq_topic_assignment **assignment,
1,899✔
842
                                 int32_t *numOfAssignment) {
843
  CHECK_INT(fp_tmq_get_topic_assignment);
1,899✔
844
  return (*fp_tmq_get_topic_assignment)(tmq, pTopicName, assignment, numOfAssignment);
1,899✔
845
}
846

847
void tmq_free_assignment(tmq_topic_assignment *pAssignment) {
1,866✔
848
  CHECK_VOID(fp_tmq_free_assignment);
1,866✔
849
  (*fp_tmq_free_assignment)(pAssignment);
1,866✔
850
}
851

852
int32_t tmq_offset_seek(tmq_t *tmq, const char *pTopicName, int32_t vgId, int64_t offset) {
1,418✔
853
  CHECK_INT(fp_tmq_offset_seek);
1,418✔
854
  return (*fp_tmq_offset_seek)(tmq, pTopicName, vgId, offset);
1,418✔
855
}
856

857
int64_t tmq_position(tmq_t *tmq, const char *pTopicName, int32_t vgId) {
3,576✔
858
  CHECK_INT(fp_tmq_position);
3,576✔
859
  return (*fp_tmq_position)(tmq, pTopicName, vgId);
3,576✔
860
}
861

862
int64_t tmq_committed(tmq_t *tmq, const char *pTopicName, int32_t vgId) {
4,172✔
863
  CHECK_INT(fp_tmq_committed);
4,172✔
864
  return (*fp_tmq_committed)(tmq, pTopicName, vgId);
4,172✔
865
}
866

867
TAOS *tmq_get_connect(tmq_t *tmq) {
×
868
  CHECK_PTR(fp_tmq_get_connect);
×
869
  return (*fp_tmq_get_connect)(tmq);
×
870
}
871

872
const char *tmq_get_table_name(TAOS_RES *res) {
8,837,565✔
873
  CHECK_PTR(fp_tmq_get_table_name);
8,837,565✔
874
  return (*fp_tmq_get_table_name)(res);
8,837,565✔
875
}
876

877
tmq_res_t tmq_get_res_type(TAOS_RES *res) {
292,524✔
878
  CHECK_INT(fp_tmq_get_res_type);
292,524✔
879
  return (*fp_tmq_get_res_type)(res);
292,524✔
880
}
881

882
const char *tmq_get_topic_name(TAOS_RES *res) {
5,002✔
883
  CHECK_PTR(fp_tmq_get_topic_name);
5,002✔
884
  return (*fp_tmq_get_topic_name)(res);
5,002✔
885
}
886

887
const char *tmq_get_db_name(TAOS_RES *res) {
4,821✔
888
  CHECK_PTR(fp_tmq_get_db_name);
4,821✔
889
  return (*fp_tmq_get_db_name)(res);
4,821✔
890
}
891

892
int32_t tmq_get_vgroup_id(TAOS_RES *res) {
5,002✔
893
  CHECK_INT(fp_tmq_get_vgroup_id);
5,002✔
894
  return (*fp_tmq_get_vgroup_id)(res);
5,002✔
895
}
896

897
int64_t tmq_get_vgroup_offset(TAOS_RES *res) {
145,668✔
898
  CHECK_INT(fp_tmq_get_vgroup_offset);
145,668✔
899
  return (*fp_tmq_get_vgroup_offset)(res);
145,668✔
900
}
901

902
const char *tmq_err2str(int32_t code) {
827✔
903
  CHECK_PTR(fp_tmq_err2str);
827✔
904
  return (*fp_tmq_err2str)(code);
827✔
905
}
906

907
int32_t tmq_get_raw(TAOS_RES *res, tmq_raw_data *raw) {
36✔
908
  CHECK_INT(fp_tmq_get_raw);
36✔
909
  return (*fp_tmq_get_raw)(res, raw);
36✔
910
}
911

912
int32_t tmq_write_raw(TAOS *taos, tmq_raw_data raw) {
×
913
  CHECK_INT(fp_tmq_write_raw);
×
914
  return (*fp_tmq_write_raw)(taos, raw);
×
915
}
916

917
int taos_write_raw_block(TAOS *taos, int numOfRows, char *pData, const char *tbname) {
×
918
  CHECK_INT(fp_taos_write_raw_block);
×
919
  return (*fp_taos_write_raw_block)(taos, numOfRows, pData, tbname);
×
920
}
921

922
int taos_write_raw_block_with_reqid(TAOS *taos, int numOfRows, char *pData, const char *tbname, int64_t reqid) {
×
923
  CHECK_INT(fp_taos_write_raw_block_with_reqid);
×
924
  return (*fp_taos_write_raw_block_with_reqid)(taos, numOfRows, pData, tbname, reqid);
×
925
}
926

927
int taos_write_raw_block_with_fields(TAOS *taos, int rows, char *pData, const char *tbname, TAOS_FIELD *fields,
×
928
                                     int numFields) {
929
  CHECK_INT(fp_taos_write_raw_block_with_fields);
×
930
  return (*fp_taos_write_raw_block_with_fields)(taos, rows, pData, tbname, fields, numFields);
×
931
}
932

933
int taos_write_raw_block_with_fields_with_reqid(TAOS *taos, int rows, char *pData, const char *tbname,
×
934
                                                TAOS_FIELD *fields, int numFields, int64_t reqid) {
935
  CHECK_INT(fp_taos_write_raw_block_with_fields_with_reqid);
×
936
  return (*fp_taos_write_raw_block_with_fields_with_reqid)(taos, rows, pData, tbname, fields, numFields, reqid);
×
937
}
938

939
void tmq_free_raw(tmq_raw_data raw) {
×
940
  CHECK_VOID(fp_tmq_free_raw);
×
941
  (*fp_tmq_free_raw)(raw);
×
942
}
943

944
char *tmq_get_json_meta(TAOS_RES *res) {
1,928✔
945
  CHECK_PTR(fp_tmq_get_json_meta);
1,928✔
946
  return (*fp_tmq_get_json_meta)(res);
1,928✔
947
}
948

949
void tmq_free_json_meta(char *jsonMeta) {
1,928✔
950
  CHECK_VOID(fp_tmq_free_json_meta);
1,928✔
951
  return (*fp_tmq_free_json_meta)(jsonMeta);
1,928✔
952
}
953

954
TSDB_SERVER_STATUS taos_check_server_status(const char *fqdn, int port, char *details, int maxlen) {
223✔
955
  CHECK_INT(fp_taos_check_server_status);
223✔
956
  return (*fp_taos_check_server_status)(fqdn, port, details, maxlen);
223✔
957
}
958

959
void taos_write_crashinfo(int signum, void *sigInfo, void *context) {
×
960
  (void)taos_init();
×
961
  CHECK_VOID(fp_taos_write_crashinfo);
×
962
  (*fp_taos_write_crashinfo)(signum, sigInfo, context);
×
963
}
964

965
char *getBuildInfo() {
×
966
  (void)taos_init();
×
967
  CHECK_PTR(fp_getBuildInfo);
×
968
  return (*fp_getBuildInfo)();
×
969
}
970

971
int32_t taos_connect_is_alive(TAOS *taos) {
×
972
  CHECK_INT(fp_taos_connect_is_alive);
×
973
  return (*fp_taos_connect_is_alive)(taos);
×
974
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc