Coverage Report

Created: 2026-07-16 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/tdengine/include/util/tpriv.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2019 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
#ifndef _TD_UTIL_PRIV_H_
17
#define _TD_UTIL_PRIV_H_
18
19
#include "os.h"
20
#include "taosdef.h"
21
#include "tarray.h"
22
#include "thash.h"
23
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
28
/* * Separation of Duties (SoD) Mandatory Activation Phases
29
 */
30
31
/* Phase 0: Stable. Fully satisfied, no transition is in progress. */
32
#define TSDB_SOD_PHASE_STABLE 0
33
34
/* Phase 1: Initial: Bootstrapped by CLI 'taosd --SoD=mandatory', but SoD requirements are not yet met.
35
 * Awaiting initial role assignment.
36
 * Operations restricted to whitelist: CREATE/DROP/ALTER USER, GRANT/REVOKE ROLE, SHOW USERS, SHOW SECURITY_POLICIES.
37
 */
38
#define TSDB_SOD_PHASE_INITIAL 1
39
40
/* Phase 2: Enforcing. Triggered by SQL command: ALTER CLUSTER 'SoD' 'MANDATORY' or ALTER CLUSTER 'Separation_Of_Duties' 'MANDATORY'.
41
 * Awaiting transition completion.
42
 * Destructive operations are blocked: DISABLE USER, DROP USER, REVOKE ROLE.
43
 */
44
#define TSDB_SOD_PHASE_ENFORCE 2
45
46
0
#define T_ROLE_SYSDBA       0x01
47
0
#define T_ROLE_SYSSEC       0x02
48
0
#define T_ROLE_SYSAUDIT     0x04
49
0
#define T_ROLE_SYSAUDIT_LOG 0x08
50
0
#define T_ROLE_SYSINFO_0    0x10
51
0
#define T_ROLE_SYSINFO_1    0x20
52
53
0
#define TSDB_ROLE_SYSDBA       "SYSDBA"
54
0
#define TSDB_ROLE_SYSSEC       "SYSSEC"
55
0
#define TSDB_ROLE_SYSAUDIT     "SYSAUDIT"
56
0
#define TSDB_ROLE_SYSAUDIT_LOG "SYSAUDIT_LOG"
57
0
#define TSDB_ROLE_SYSINFO_0    "SYSINFO_0"
58
0
#define TSDB_ROLE_SYSINFO_1    "SYSINFO_1"
59
#ifdef GRANTS_CFG  // cloud edition
60
#define TSDB_ROLE_DEFAULT TSDB_ROLE_SYSINFO_0
61
#else
62
#define TSDB_ROLE_DEFAULT TSDB_ROLE_SYSINFO_1
63
#endif
64
65
0
#define TSDB_WORD_AUDIT       "audit"
66
0
#define TSDB_WORD_BASIC       "basic"
67
0
#define TSDB_WORD_DEBUG       "debug"
68
0
#define TSDB_WORD_PASS        "pass"
69
0
#define TSDB_WORD_POLICY      "policy"
70
0
#define TSDB_WORD_POLICIES    "policies"
71
0
#define TSDB_WORD_PRIVILEGED  "privileged"
72
0
#define TSDB_WORD_SECURITY    "security"
73
0
#define TSDB_WORD_SELF        "self"
74
0
#define TSDB_WORD_SYSTEM      "system"
75
0
#define TSDB_WORD_VARIABLE    "variable"
76
0
#define TSDB_WORD_VARIABLES   "variables"
77
0
#define TSDB_WORD_INFORMATION "information"
78
79
#define PRIV_INFO_TABLE_VERSION 6  // N.B. increase this version for any update of privInfoTable
80
81
0
#define IS_WILDCARD_OBJ(objName) ((objName)[0] == '*' && (objName)[1] == '\0')
82
0
#define IS_SPECIFIC_OBJ(objName) ((objName)[0] != '\0' && !IS_WILDCARD_OBJ(objName))
83
84
typedef enum {
85
  PRIV_TYPE_UNKNOWN = -1,
86
  // ==================== Common Privilege ====================
87
  PRIV_CM_ALL = 0,          // ALL PRIVILEGES
88
  PRIV_CM_ALTER = 1,        // ALTER PRIVILEGE
89
  PRIV_CM_DROP = 2,         // DROP PRIVILEGE
90
  PRIV_CM_SHOW = 3,         // SHOW PRIVILEGE
91
  PRIV_CM_SHOW_CREATE = 4,  // SHOW CREATE PRIVILEGE
92
  PRIV_CM_START = 5,        // START PRIVILEGE
93
  PRIV_CM_STOP = 6,         // STOP PRIVILEGE
94
  PRIV_CM_RECALC = 7,       // RECALC PRIVILEGE
95
  PRIV_CM_KILL = 8,         // KILL PRIVILEGE
96
  PRIV_CM_SUBSCRIBE = 9,    // SUBSCRIBE PRIVILEGE
97
  PRIV_CM_READ = 10,        // Legacy READ PRIVILEGE (converted to specific privileges)
98
  PRIV_CM_WRITE = 11,       // Legacy WRITE PRIVILEGE (converted to specific privileges)
99
  PRIV_CM_CREATE = 12,      // CREATE PRIVILEGE
100
  PRIV_CM_MAX = 29,         // MAX COMMON PRIVILEGE
101
  // ==================== DB Privileges(5~49) ====================
102
  PRIV_DB_CREATE = 30,  // CREATE DATABASE
103
  PRIV_DB_USE,          // USE DATABASE
104
  PRIV_DB_FLUSH,        // FLUSH DATABASE
105
  PRIV_DB_COMPACT,      // COMPACT DATABASE
106
  PRIV_DB_TRIM,         // TRIM DATABASE
107
  PRIV_DB_ROLLUP,       // ROLLUP DATABASE
108
  PRIV_DB_SCAN,         // SCAN DATABASE
109
  PRIV_DB_SSMIGRATE,    // SSMIGRATE DATABASE
110
111
  // VGroup Operations
112
  PRIV_VG_BALANCE = 50,    // BALANCE VGROUP
113
  PRIV_VG_BALANCE_LEADER,  // BALANCE VGROUP LEADER
114
  PRIV_VG_MERGE,           // MERGE VGROUP
115
  PRIV_VG_REDISTRIBUTE,    // REDISTRIBUTE VGROUP
116
  PRIV_VG_SPLIT,           // SPLIT VGROUP
117
118
  // DB Show Operations
119
  PRIV_SHOW_VNODES = 60,  // SHOW VNODES
120
  PRIV_SHOW_VGROUPS,      // SHOW VGROUPS
121
  PRIV_SHOW_COMPACTS,     // SHOW COMPACTS
122
  PRIV_SHOW_RETENTIONS,   // SHOW RETENTIONS
123
  PRIV_SHOW_SCANS,        // SHOW SCANS
124
  PRIV_SHOW_SSMIGRATES,   // SHOW SSMIGRATES
125
126
  // ==================== Table Privileges(50-69)  ================
127
  PRIV_TBL_CREATE = 70,  // CREATE TABLE
128
  PRIV_TBL_SELECT = 71,  // SELECT TABLE
129
  PRIV_TBL_INSERT = 72,  // INSERT TABLE
130
  PRIV_TBL_UPDATE = 73,  // UPDATE TABLE(reserved)
131
  PRIV_TBL_DELETE = 74,  // DELETE TABLE
132
133
  // ==================== Other Privileges ================
134
  // function management
135
  PRIV_FUNC_CREATE = 80,  // CREATE FUNCTION
136
  PRIV_FUNC_DROP,         // DROP FUNCTION
137
  PRIV_FUNC_SHOW,         // SHOW FUNCTIONS
138
139
  // index management
140
  PRIV_IDX_CREATE = 84,  // CREATE INDEX
141
142
  // view management
143
  PRIV_VIEW_CREATE = 88,  // CREATE VIEW
144
  PRIV_VIEW_SELECT,       // SELECT VIEW
145
146
  // SMA management
147
  PRIV_RSMA_CREATE = 95,  // CREATE RSMA
148
  PRIV_TSMA_CREATE,       // CREATE TSMA
149
150
  // mount management
151
  PRIV_MOUNT_CREATE = 100,  // CREATE MOUNT
152
  PRIV_MOUNT_DROP,          // DROP MOUNT
153
  PRIV_MOUNT_SHOW,          // SHOW MOUNTS
154
155
  // password management
156
  PRIV_PASS_ALTER = 105,  // ALTER PASS
157
  PRIV_PASS_ALTER_SELF,   // ALTER SELF PASS
158
159
  // role management
160
  PRIV_ROLE_CREATE = 110,  // CREATE ROLE
161
  PRIV_ROLE_DROP,          // DROP ROLE
162
  PRIV_ROLE_SHOW,          // SHOW ROLES
163
  PRIV_ROLE_LOCK,          // LOCK ROLE
164
  PRIV_ROLE_UNLOCK,        // UNLOCK ROLE
165
166
  // user management
167
  PRIV_USER_CREATE = 130,   // CREATE USER
168
  PRIV_USER_DROP,           // DROP USER
169
  PRIV_USER_SET_SECURITY,   // SET USER SECURITY INFO
170
  PRIV_USER_SET_AUDIT,      // SET USER AUDIT INFO
171
  PRIV_USER_SET_BASIC,      // SET USER BASIC INFO
172
  PRIV_USER_UNLOCK,         // UNLOCK USER
173
  PRIV_USER_LOCK,           // LOCK USER
174
  PRIV_USER_SHOW,           // SHOW USERS
175
  PRIV_USER_ALTER,          // ALTER USER
176
  PRIV_USER_SHOW_SECURITY,  // SHOW USERS SECURITY INFO
177
178
  // audit management
179
  PRIV_AUDIT_DB_DROP = 140,  // DROP AUDIT DATABASE
180
  PRIV_AUDIT_DB_ALTER,       // ALTER AUDIT DATABASE
181
  PRIV_AUDIT_DB_USE,         // USE AUDIT DATABASE(reserved for future use)
182
  PRIV_AUDIT_TBL_CREATE,     // CREATE AUDIT TABLE
183
  PRIV_AUDIT_TBL_SELECT,     // SELECT AUDIT TABLE
184
  PRIV_AUDIT_TBL_INSERT,     // INSERT AUDIT TABLE
185
186
  // token management
187
  PRIV_TOKEN_CREATE = 150,  // CREATE TOKEN
188
  PRIV_TOKEN_DROP,          // DROP TOKEN
189
  PRIV_TOKEN_ALTER,         // ALTER TOKEN
190
  PRIV_TOKEN_SHOW,          // SHOW TOKENS
191
192
  // key management
193
  PRIV_KEY_UPDATE = 160,  // UPDATE KEY
194
  PRIV_TOTP_CREATE,       // CREATE TOTP
195
  PRIV_TOTP_DROP,         // DROP TOTP
196
197
  // grant/revoke privileges
198
  PRIV_GRANT_PRIVILEGE = 170,  // GRANT PRIVILEGE
199
  PRIV_REVOKE_PRIVILEGE,       // REVOKE PRIVILEGE
200
  PRIV_SHOW_PRIVILEGES,        // SHOW PRIVILEGES
201
  PRIV_GRANT_SYSDBA,           // GRANT SYSDBA PRIVILEGE
202
  PRIV_REVOKE_SYSDBA,          // REVOKE SYSDBA PRIVILEGE
203
  PRIV_GRANT_SYSSEC,           // GRANT SYSSEC PRIVILEGE
204
  PRIV_REVOKE_SYSSEC,          // REVOKE SYSSEC PRIVILEGE
205
  PRIV_GRANT_SYSAUDIT,         // GRANT SYSAUDIT PRIVILEGE
206
  PRIV_REVOKE_SYSAUDIT,        // REVOKE SYSAUDIT PRIVILEGE
207
208
  // node management
209
  PRIV_NODE_CREATE = 190,  // CREATE NODE
210
  PRIV_NODE_DROP,          // DROP NODE
211
  PRIV_NODES_SHOW,         // SHOW NODES
212
  PRIV_NODE_ALTER,         // ALTER NODE
213
214
  // system variables
215
  PRIV_VAR_SECURITY_ALTER = 200,  // ALTER SECURITY VARIABLE
216
  PRIV_VAR_AUDIT_ALTER,           // ALTER AUDIT VARIABLE
217
  PRIV_VAR_SYSTEM_ALTER,          // ALTER SYSTEM VARIABLE
218
  PRIV_VAR_DEBUG_ALTER,           // ALTER DEBUG VARIABLE
219
  PRIV_VAR_SECURITY_SHOW,         // SHOW SECURITY VARIABLES
220
  PRIV_VAR_AUDIT_SHOW,            // SHOW AUDIT VARIABLES
221
  PRIV_VAR_SYSTEM_SHOW,           // SHOW SYSTEM VARIABLES
222
  PRIV_VAR_DEBUG_SHOW,            // SHOW DEBUG VARIABLES
223
224
  // topic management
225
  PRIV_TOPIC_CREATE = 210,  // CREATE TOPIC
226
  PRIV_CONSUMER_SHOW,       // SHOW CONSUMERS
227
  PRIV_SUBSCRIPTION_SHOW,   // SHOW SUBSCRIPTIONS
228
229
  // stream management
230
  PRIV_STREAM_CREATE = 220,  // CREATE STREAM
231
232
  // system operation management
233
  PRIV_TRANS_SHOW = 230,  // SHOW TRANS
234
  PRIV_TRANS_KILL,        // KILL TRANS
235
  PRIV_CONN_SHOW,         // SHOW CONNECTIONS
236
  PRIV_CONN_KILL,         // KILL CONNECTION
237
  PRIV_QUERY_SHOW,        // SHOW QUERIES
238
  PRIV_QUERY_KILL,        // KILL QUERY
239
240
  // system info
241
  PRIV_INFO_SCHEMA_READ_BASIC = 240,  // READ INFORMATION_SCHEMA BASIC
242
  PRIV_INFO_SCHEMA_READ_SEC,          // READ INFORMATION_SCHEMA SECURITY
243
  PRIV_INFO_SCHEMA_READ_AUDIT,        // READ INFORMATION_SCHEMA AUDIT
244
  PRIV_INFO_SCHEMA_READ_PRIVILEGED,   // READ INFORMATION_SCHEMA PRIVILEGED
245
  PRIV_PERF_SCHEMA_READ_BASIC,        // READ PERFORMANCE_SCHEMA BASIC
246
  PRIV_PERF_SCHEMA_READ_PRIVILEGED,   // READ PERFORMANCE_SCHEMA PRIVILEGED
247
  PRIV_GRANTS_SHOW,                   // SHOW GRANTS
248
  PRIV_CLUSTER_SHOW,                  // SHOW CLUSTER
249
  PRIV_APPS_SHOW,                     // SHOW APPS
250
251
  // xnode task
252
  PRIV_XNODE_TASK_CREATE = 250,  // CREATE XNODE TASK
253
254
  // security policy management
255
  PRIV_SECURITY_POLICY_ALTER = 252,   // ALTER SECURITY POLICY(SoD/MAC/Object Security Levels)
256
  PRIV_SECURITY_POLICIES_SHOW = 253,  // SHOW SECURITY POLICIES
257
258
  // extended privileges can be defined here (255 bits reserved in total)
259
  // ==================== Maximum Privilege Bit ====================
260
  MAX_PRIV_TYPE = 255
261
} EPrivType;
262
263
0
#define PRIV_GROUP_CNT ((MAX_PRIV_TYPE + 63) / 64)
264
typedef struct {
265
  uint64_t set[PRIV_GROUP_CNT];
266
} SPrivSet;
267
268
0
#define PRIV_GROUP(type)  ((type) / 64)
269
0
#define PRIV_OFFSET(type) ((type) & 63)
270
#define PRIV_TYPE(type)   ((SPrivSet){.set[PRIV_GROUP(type)] = 1ULL << PRIV_OFFSET(type)})
271
272
0
#define PRIV_HAS(privSet, type) (((privSet)->set[PRIV_GROUP(type)] & (1ULL << PRIV_OFFSET(type))) != 0)
273
274
#define PRIV_SET(privSet, type, val)   \
275
  do {                                 \
276
    if (PRIV_HAS((privSet), (type))) { \
277
      (val) = 1;                       \
278
    }                                  \
279
  } while (0)
280
281
typedef struct {
282
  SPrivSet privSet;
283
  int32_t  nPrivArgs;
284
  int16_t  objType;     // EPrivObjType
285
  void*    selectCols;  // SNodeList*
286
  void*    insertCols;  // SNodeList*
287
  void*    updateCols;  // SNodeList*
288
} SPrivSetArgs;
289
290
#define PRIV_SET_TYPE(type)                                                   \
291
0
  ((SPrivSetArgs){.nPrivArgs = 1,                                             \
292
0
                  .privSet.set[PRIV_GROUP(type)] = 1ULL << PRIV_OFFSET(type), \
293
0
                  .selectCols = NULL,                                         \
294
0
                  .insertCols = NULL,                                         \
295
0
                  .updateCols = NULL})
296
297
#define PRIV_SET_COLS(type, select, insert, update)                                                \
298
0
  ((SPrivSetArgs){.nPrivArgs = 1,                                                                  \
299
0
                  .privSet = ((select) == NULL && (insert) == NULL && (update) == NULL             \
300
0
                                  ? (SPrivSet){.set[PRIV_GROUP(type)] = 1ULL << PRIV_OFFSET(type)} \
301
0
                                  : (SPrivSet){0}),                                                \
302
0
                  .selectCols = (void*)(select),                                                   \
303
0
                  .insertCols = (void*)(insert),                                                   \
304
0
                  .updateCols = (void*)(update)})
305
306
typedef enum {
307
  PRIV_CATEGORY_UNKNOWN = -1,
308
  PRIV_CATEGORY_SYSTEM,
309
  PRIV_CATEGORY_OBJECT,
310
  PRIV_CATEGORY_COMMON,
311
  PRIV_CATEGORY_MAX,
312
} EPrivCategory;
313
314
typedef enum {
315
  PRIV_OBJ_UNKNOWN = -1,
316
  PRIV_OBJ_CLUSTER = 0,
317
  PRIV_OBJ_NODE = 1,
318
  PRIV_OBJ_DB = 2,
319
  PRIV_OBJ_TBL = 3,
320
  PRIV_OBJ_FUNC = 4,
321
  PRIV_OBJ_IDX = 5,
322
  PRIV_OBJ_VIEW = 6,
323
  PRIV_OBJ_USER = 7,
324
  PRIV_OBJ_ROLE = 8,
325
  PRIV_OBJ_RSMA = 9,
326
  PRIV_OBJ_TSMA = 10,
327
  PRIV_OBJ_TOPIC = 11,
328
  PRIV_OBJ_STREAM = 12,
329
  PRIV_OBJ_MOUNT = 13,
330
  PRIV_OBJ_AUDIT = 14,
331
  PRIV_OBJ_TOKEN = 15,
332
  PRIV_OBJ_NONE = 16,   // not specified
333
  PRIV_OBJ_XTASK = 17,  // xnode task
334
  PRIV_OBJ_MAX = 18,
335
} EPrivObjType;
336
337
typedef enum {
338
  PRIV_RW_ATTR_UNKNOWN = 0,
339
  PRIV_RW_ATTR_READ = 0x01,
340
  PRIV_RW_ATTR_WRITE = 0x02,
341
  PRIV_RW_ATTR_RW = 0x03,
342
} EPrivRwAttr;
343
344
typedef struct {
345
  int16_t     privType;  // EPrivType
346
  int8_t      category;  // EPrivCategory
347
  int8_t      objType;   // EPrivObjType
348
  int8_t      objLevel;  // 0: DB, function, 1: table, view
349
  uint8_t     sysType;
350
  uint8_t     rwAttr;  // 0x01 for read, 0x02 for write, 0x03 for read/write
351
  const char* dbName;  // "" for *, otherwise specific db name
352
  const char* name;
353
} SPrivInfo;
354
355
/*
356
 * The SPrivTblPolicy only applies to tables, such as READ/WRITE/DELETE TABLE.
357
 * It defines the row-level or table-level privileges for a table, maybe combined with columns and tag conditions.
358
 * It's recommended to decrease the number of SPrivPolicy considering the performance.
359
 */
360
typedef struct {
361
  SArray* cols;  // SColNameFlag, NULL means all columns, sorted by colId.
362
  char*   cond;  // NULL if no condition of columns or tags.
363
  int32_t condLen;
364
  int64_t updateUs;
365
} SPrivTblPolicy;
366
367
typedef struct {
368
  SArray* policy;  // element of SArray: SPrivTblPolicy, only support 1 element currently
369
} SPrivTblPolicies;
370
371
typedef struct {
372
  SPrivSet policy;
373
} SPrivObjPolicies;
374
375
typedef struct {
376
  SPrivSet* privSet;
377
  uint64_t  curPriv;
378
  int32_t   groupIndex;
379
} SPrivIter;
380
381
typedef struct {
382
  SPrivInfo* privInfo;
383
  int32_t    privInfoCnt;
384
  int32_t    index;
385
} SPrivInfoIter;
386
387
0
static FORCE_INLINE void privAddSet(SPrivSet* privSet1, SPrivSet* privSet2) {
388
0
  for (int32_t i = 0; i < PRIV_GROUP_CNT; ++i) {
389
0
    if (privSet2->set[i]) {
390
0
      privSet1->set[i] |= privSet2->set[i];
391
0
    }
392
0
  }
393
0
}
Unexecuted instantiation: sql-fuzzer.c:privAddSet
Unexecuted instantiation: parser.c:privAddSet
Unexecuted instantiation: parTranslater.c:privAddSet
Unexecuted instantiation: parUtil.c:privAddSet
Unexecuted instantiation: parAstParser.c:privAddSet
Unexecuted instantiation: parAuthenticator.c:privAddSet
Unexecuted instantiation: parCalcConst.c:privAddSet
Unexecuted instantiation: parInsertSql.c:privAddSet
Unexecuted instantiation: parInsertUtil.c:privAddSet
Unexecuted instantiation: taos_lemon_sql.tab.c:privAddSet
Unexecuted instantiation: parAstCreater.c:privAddSet
Unexecuted instantiation: parInsertSml.c:privAddSet
Unexecuted instantiation: planner.c:privAddSet
Unexecuted instantiation: planLogicCreater.c:privAddSet
Unexecuted instantiation: planOptimizer.c:privAddSet
Unexecuted instantiation: planPhysiCreater.c:privAddSet
Unexecuted instantiation: planScaleOut.c:privAddSet
Unexecuted instantiation: planSpliter.c:privAddSet
Unexecuted instantiation: planUtil.c:privAddSet
Unexecuted instantiation: planValidator.c:privAddSet
Unexecuted instantiation: catalog.c:privAddSet
Unexecuted instantiation: ctgAsync.c:privAddSet
Unexecuted instantiation: ctgCache.c:privAddSet
Unexecuted instantiation: ctgDbg.c:privAddSet
Unexecuted instantiation: ctgRemote.c:privAddSet
Unexecuted instantiation: ctgRent.c:privAddSet
Unexecuted instantiation: ctgUtil.c:privAddSet
Unexecuted instantiation: functionMgt.c:privAddSet
Unexecuted instantiation: tudf.c:privAddSet
Unexecuted instantiation: builtins.c:privAddSet
Unexecuted instantiation: builtinsimpl.c:privAddSet
Unexecuted instantiation: thistogram.c:privAddSet
Unexecuted instantiation: tpercentile.c:privAddSet
Unexecuted instantiation: tavgfunction.c:privAddSet
Unexecuted instantiation: tminmax.c:privAddSet
Unexecuted instantiation: tminmaxavx.c:privAddSet
Unexecuted instantiation: filter.c:privAddSet
Unexecuted instantiation: scalar.c:privAddSet
Unexecuted instantiation: sclfunc.c:privAddSet
Unexecuted instantiation: sclvector.c:privAddSet
Unexecuted instantiation: nodesCloneFuncs.c:privAddSet
Unexecuted instantiation: nodesCodeFuncs.c:privAddSet
Unexecuted instantiation: nodesEqualFuncs.c:privAddSet
Unexecuted instantiation: nodesMatchFuncs.c:privAddSet
Unexecuted instantiation: nodesMsgFuncs.c:privAddSet
Unexecuted instantiation: nodesToSQLFuncs.c:privAddSet
Unexecuted instantiation: nodesTraverseFuncs.c:privAddSet
Unexecuted instantiation: nodesUtilFuncs.c:privAddSet
Unexecuted instantiation: queryUtil.c:privAddSet
Unexecuted instantiation: querymsg.c:privAddSet
Unexecuted instantiation: trans.c:privAddSet
Unexecuted instantiation: transCli.c:privAddSet
Unexecuted instantiation: transComm.c:privAddSet
Unexecuted instantiation: transSasl.c:privAddSet
Unexecuted instantiation: transSvr.c:privAddSet
Unexecuted instantiation: transTLS.c:privAddSet
Unexecuted instantiation: thttp.c:privAddSet
Unexecuted instantiation: geomFunc.c:privAddSet
Unexecuted instantiation: tconfig.c:privAddSet
Unexecuted instantiation: tdigest.c:privAddSet
Unexecuted instantiation: tlog.c:privAddSet
Unexecuted instantiation: tmempool.c:privAddSet
Unexecuted instantiation: mpDirect.c:privAddSet
Unexecuted instantiation: systable.c:privAddSet
Unexecuted instantiation: tdatablock.c:privAddSet
Unexecuted instantiation: tdataformat.c:privAddSet
Unexecuted instantiation: tglobal.c:privAddSet
Unexecuted instantiation: tmisce.c:privAddSet
Unexecuted instantiation: tname.c:privAddSet
Unexecuted instantiation: tpriv.c:privAddSet
Unexecuted instantiation: ttime.c:privAddSet
Unexecuted instantiation: tvariant.c:privAddSet
Unexecuted instantiation: streamMsg.c:privAddSet
Unexecuted instantiation: tmsg.c:privAddSet
Unexecuted instantiation: xnode.c:privAddSet
Unexecuted instantiation: tencrypt.c:privAddSet
Unexecuted instantiation: streamJson.c:privAddSet
394
395
0
static FORCE_INLINE void privAddType(SPrivSet* privSet, EPrivType type) {
396
0
  if (type < 0 || type > MAX_PRIV_TYPE) return;
397
0
  privSet->set[PRIV_GROUP(type)] |= 1ULL << PRIV_OFFSET(type);
398
0
}
Unexecuted instantiation: sql-fuzzer.c:privAddType
Unexecuted instantiation: parser.c:privAddType
Unexecuted instantiation: parTranslater.c:privAddType
Unexecuted instantiation: parUtil.c:privAddType
Unexecuted instantiation: parAstParser.c:privAddType
Unexecuted instantiation: parAuthenticator.c:privAddType
Unexecuted instantiation: parCalcConst.c:privAddType
Unexecuted instantiation: parInsertSql.c:privAddType
Unexecuted instantiation: parInsertUtil.c:privAddType
Unexecuted instantiation: taos_lemon_sql.tab.c:privAddType
Unexecuted instantiation: parAstCreater.c:privAddType
Unexecuted instantiation: parInsertSml.c:privAddType
Unexecuted instantiation: planner.c:privAddType
Unexecuted instantiation: planLogicCreater.c:privAddType
Unexecuted instantiation: planOptimizer.c:privAddType
Unexecuted instantiation: planPhysiCreater.c:privAddType
Unexecuted instantiation: planScaleOut.c:privAddType
Unexecuted instantiation: planSpliter.c:privAddType
Unexecuted instantiation: planUtil.c:privAddType
Unexecuted instantiation: planValidator.c:privAddType
Unexecuted instantiation: catalog.c:privAddType
Unexecuted instantiation: ctgAsync.c:privAddType
Unexecuted instantiation: ctgCache.c:privAddType
Unexecuted instantiation: ctgDbg.c:privAddType
Unexecuted instantiation: ctgRemote.c:privAddType
Unexecuted instantiation: ctgRent.c:privAddType
Unexecuted instantiation: ctgUtil.c:privAddType
Unexecuted instantiation: functionMgt.c:privAddType
Unexecuted instantiation: tudf.c:privAddType
Unexecuted instantiation: builtins.c:privAddType
Unexecuted instantiation: builtinsimpl.c:privAddType
Unexecuted instantiation: thistogram.c:privAddType
Unexecuted instantiation: tpercentile.c:privAddType
Unexecuted instantiation: tavgfunction.c:privAddType
Unexecuted instantiation: tminmax.c:privAddType
Unexecuted instantiation: tminmaxavx.c:privAddType
Unexecuted instantiation: filter.c:privAddType
Unexecuted instantiation: scalar.c:privAddType
Unexecuted instantiation: sclfunc.c:privAddType
Unexecuted instantiation: sclvector.c:privAddType
Unexecuted instantiation: nodesCloneFuncs.c:privAddType
Unexecuted instantiation: nodesCodeFuncs.c:privAddType
Unexecuted instantiation: nodesEqualFuncs.c:privAddType
Unexecuted instantiation: nodesMatchFuncs.c:privAddType
Unexecuted instantiation: nodesMsgFuncs.c:privAddType
Unexecuted instantiation: nodesToSQLFuncs.c:privAddType
Unexecuted instantiation: nodesTraverseFuncs.c:privAddType
Unexecuted instantiation: nodesUtilFuncs.c:privAddType
Unexecuted instantiation: queryUtil.c:privAddType
Unexecuted instantiation: querymsg.c:privAddType
Unexecuted instantiation: trans.c:privAddType
Unexecuted instantiation: transCli.c:privAddType
Unexecuted instantiation: transComm.c:privAddType
Unexecuted instantiation: transSasl.c:privAddType
Unexecuted instantiation: transSvr.c:privAddType
Unexecuted instantiation: transTLS.c:privAddType
Unexecuted instantiation: thttp.c:privAddType
Unexecuted instantiation: geomFunc.c:privAddType
Unexecuted instantiation: tconfig.c:privAddType
Unexecuted instantiation: tdigest.c:privAddType
Unexecuted instantiation: tlog.c:privAddType
Unexecuted instantiation: tmempool.c:privAddType
Unexecuted instantiation: mpDirect.c:privAddType
Unexecuted instantiation: systable.c:privAddType
Unexecuted instantiation: tdatablock.c:privAddType
Unexecuted instantiation: tdataformat.c:privAddType
Unexecuted instantiation: tglobal.c:privAddType
Unexecuted instantiation: tmisce.c:privAddType
Unexecuted instantiation: tname.c:privAddType
Unexecuted instantiation: tpriv.c:privAddType
Unexecuted instantiation: ttime.c:privAddType
Unexecuted instantiation: tvariant.c:privAddType
Unexecuted instantiation: streamMsg.c:privAddType
Unexecuted instantiation: tmsg.c:privAddType
Unexecuted instantiation: xnode.c:privAddType
Unexecuted instantiation: tencrypt.c:privAddType
Unexecuted instantiation: streamJson.c:privAddType
399
400
0
static FORCE_INLINE void privRemoveSet(SPrivSet* privSet1, const SPrivSet* privSet2) {
401
0
  for (int i = 0; i < PRIV_GROUP_CNT; i++) {
402
0
    privSet1->set[i] &= ~privSet2->set[i];
403
0
  }
404
0
}
Unexecuted instantiation: sql-fuzzer.c:privRemoveSet
Unexecuted instantiation: parser.c:privRemoveSet
Unexecuted instantiation: parTranslater.c:privRemoveSet
Unexecuted instantiation: parUtil.c:privRemoveSet
Unexecuted instantiation: parAstParser.c:privRemoveSet
Unexecuted instantiation: parAuthenticator.c:privRemoveSet
Unexecuted instantiation: parCalcConst.c:privRemoveSet
Unexecuted instantiation: parInsertSql.c:privRemoveSet
Unexecuted instantiation: parInsertUtil.c:privRemoveSet
Unexecuted instantiation: taos_lemon_sql.tab.c:privRemoveSet
Unexecuted instantiation: parAstCreater.c:privRemoveSet
Unexecuted instantiation: parInsertSml.c:privRemoveSet
Unexecuted instantiation: planner.c:privRemoveSet
Unexecuted instantiation: planLogicCreater.c:privRemoveSet
Unexecuted instantiation: planOptimizer.c:privRemoveSet
Unexecuted instantiation: planPhysiCreater.c:privRemoveSet
Unexecuted instantiation: planScaleOut.c:privRemoveSet
Unexecuted instantiation: planSpliter.c:privRemoveSet
Unexecuted instantiation: planUtil.c:privRemoveSet
Unexecuted instantiation: planValidator.c:privRemoveSet
Unexecuted instantiation: catalog.c:privRemoveSet
Unexecuted instantiation: ctgAsync.c:privRemoveSet
Unexecuted instantiation: ctgCache.c:privRemoveSet
Unexecuted instantiation: ctgDbg.c:privRemoveSet
Unexecuted instantiation: ctgRemote.c:privRemoveSet
Unexecuted instantiation: ctgRent.c:privRemoveSet
Unexecuted instantiation: ctgUtil.c:privRemoveSet
Unexecuted instantiation: functionMgt.c:privRemoveSet
Unexecuted instantiation: tudf.c:privRemoveSet
Unexecuted instantiation: builtins.c:privRemoveSet
Unexecuted instantiation: builtinsimpl.c:privRemoveSet
Unexecuted instantiation: thistogram.c:privRemoveSet
Unexecuted instantiation: tpercentile.c:privRemoveSet
Unexecuted instantiation: tavgfunction.c:privRemoveSet
Unexecuted instantiation: tminmax.c:privRemoveSet
Unexecuted instantiation: tminmaxavx.c:privRemoveSet
Unexecuted instantiation: filter.c:privRemoveSet
Unexecuted instantiation: scalar.c:privRemoveSet
Unexecuted instantiation: sclfunc.c:privRemoveSet
Unexecuted instantiation: sclvector.c:privRemoveSet
Unexecuted instantiation: nodesCloneFuncs.c:privRemoveSet
Unexecuted instantiation: nodesCodeFuncs.c:privRemoveSet
Unexecuted instantiation: nodesEqualFuncs.c:privRemoveSet
Unexecuted instantiation: nodesMatchFuncs.c:privRemoveSet
Unexecuted instantiation: nodesMsgFuncs.c:privRemoveSet
Unexecuted instantiation: nodesToSQLFuncs.c:privRemoveSet
Unexecuted instantiation: nodesTraverseFuncs.c:privRemoveSet
Unexecuted instantiation: nodesUtilFuncs.c:privRemoveSet
Unexecuted instantiation: queryUtil.c:privRemoveSet
Unexecuted instantiation: querymsg.c:privRemoveSet
Unexecuted instantiation: trans.c:privRemoveSet
Unexecuted instantiation: transCli.c:privRemoveSet
Unexecuted instantiation: transComm.c:privRemoveSet
Unexecuted instantiation: transSasl.c:privRemoveSet
Unexecuted instantiation: transSvr.c:privRemoveSet
Unexecuted instantiation: transTLS.c:privRemoveSet
Unexecuted instantiation: thttp.c:privRemoveSet
Unexecuted instantiation: geomFunc.c:privRemoveSet
Unexecuted instantiation: tconfig.c:privRemoveSet
Unexecuted instantiation: tdigest.c:privRemoveSet
Unexecuted instantiation: tlog.c:privRemoveSet
Unexecuted instantiation: tmempool.c:privRemoveSet
Unexecuted instantiation: mpDirect.c:privRemoveSet
Unexecuted instantiation: systable.c:privRemoveSet
Unexecuted instantiation: tdatablock.c:privRemoveSet
Unexecuted instantiation: tdataformat.c:privRemoveSet
Unexecuted instantiation: tglobal.c:privRemoveSet
Unexecuted instantiation: tmisce.c:privRemoveSet
Unexecuted instantiation: tname.c:privRemoveSet
Unexecuted instantiation: tpriv.c:privRemoveSet
Unexecuted instantiation: ttime.c:privRemoveSet
Unexecuted instantiation: tvariant.c:privRemoveSet
Unexecuted instantiation: streamMsg.c:privRemoveSet
Unexecuted instantiation: tmsg.c:privRemoveSet
Unexecuted instantiation: xnode.c:privRemoveSet
Unexecuted instantiation: tencrypt.c:privRemoveSet
Unexecuted instantiation: streamJson.c:privRemoveSet
405
406
0
static FORCE_INLINE void privRemoveType(SPrivSet* privSet, EPrivType type) {
407
0
  if (type < 0 || type > MAX_PRIV_TYPE) return;
408
0
  privSet->set[PRIV_GROUP(type)] &= ~(1ULL << PRIV_OFFSET(type));
409
0
}
Unexecuted instantiation: sql-fuzzer.c:privRemoveType
Unexecuted instantiation: parser.c:privRemoveType
Unexecuted instantiation: parTranslater.c:privRemoveType
Unexecuted instantiation: parUtil.c:privRemoveType
Unexecuted instantiation: parAstParser.c:privRemoveType
Unexecuted instantiation: parAuthenticator.c:privRemoveType
Unexecuted instantiation: parCalcConst.c:privRemoveType
Unexecuted instantiation: parInsertSql.c:privRemoveType
Unexecuted instantiation: parInsertUtil.c:privRemoveType
Unexecuted instantiation: taos_lemon_sql.tab.c:privRemoveType
Unexecuted instantiation: parAstCreater.c:privRemoveType
Unexecuted instantiation: parInsertSml.c:privRemoveType
Unexecuted instantiation: planner.c:privRemoveType
Unexecuted instantiation: planLogicCreater.c:privRemoveType
Unexecuted instantiation: planOptimizer.c:privRemoveType
Unexecuted instantiation: planPhysiCreater.c:privRemoveType
Unexecuted instantiation: planScaleOut.c:privRemoveType
Unexecuted instantiation: planSpliter.c:privRemoveType
Unexecuted instantiation: planUtil.c:privRemoveType
Unexecuted instantiation: planValidator.c:privRemoveType
Unexecuted instantiation: catalog.c:privRemoveType
Unexecuted instantiation: ctgAsync.c:privRemoveType
Unexecuted instantiation: ctgCache.c:privRemoveType
Unexecuted instantiation: ctgDbg.c:privRemoveType
Unexecuted instantiation: ctgRemote.c:privRemoveType
Unexecuted instantiation: ctgRent.c:privRemoveType
Unexecuted instantiation: ctgUtil.c:privRemoveType
Unexecuted instantiation: functionMgt.c:privRemoveType
Unexecuted instantiation: tudf.c:privRemoveType
Unexecuted instantiation: builtins.c:privRemoveType
Unexecuted instantiation: builtinsimpl.c:privRemoveType
Unexecuted instantiation: thistogram.c:privRemoveType
Unexecuted instantiation: tpercentile.c:privRemoveType
Unexecuted instantiation: tavgfunction.c:privRemoveType
Unexecuted instantiation: tminmax.c:privRemoveType
Unexecuted instantiation: tminmaxavx.c:privRemoveType
Unexecuted instantiation: filter.c:privRemoveType
Unexecuted instantiation: scalar.c:privRemoveType
Unexecuted instantiation: sclfunc.c:privRemoveType
Unexecuted instantiation: sclvector.c:privRemoveType
Unexecuted instantiation: nodesCloneFuncs.c:privRemoveType
Unexecuted instantiation: nodesCodeFuncs.c:privRemoveType
Unexecuted instantiation: nodesEqualFuncs.c:privRemoveType
Unexecuted instantiation: nodesMatchFuncs.c:privRemoveType
Unexecuted instantiation: nodesMsgFuncs.c:privRemoveType
Unexecuted instantiation: nodesToSQLFuncs.c:privRemoveType
Unexecuted instantiation: nodesTraverseFuncs.c:privRemoveType
Unexecuted instantiation: nodesUtilFuncs.c:privRemoveType
Unexecuted instantiation: queryUtil.c:privRemoveType
Unexecuted instantiation: querymsg.c:privRemoveType
Unexecuted instantiation: trans.c:privRemoveType
Unexecuted instantiation: transCli.c:privRemoveType
Unexecuted instantiation: transComm.c:privRemoveType
Unexecuted instantiation: transSasl.c:privRemoveType
Unexecuted instantiation: transSvr.c:privRemoveType
Unexecuted instantiation: transTLS.c:privRemoveType
Unexecuted instantiation: thttp.c:privRemoveType
Unexecuted instantiation: geomFunc.c:privRemoveType
Unexecuted instantiation: tconfig.c:privRemoveType
Unexecuted instantiation: tdigest.c:privRemoveType
Unexecuted instantiation: tlog.c:privRemoveType
Unexecuted instantiation: tmempool.c:privRemoveType
Unexecuted instantiation: mpDirect.c:privRemoveType
Unexecuted instantiation: systable.c:privRemoveType
Unexecuted instantiation: tdatablock.c:privRemoveType
Unexecuted instantiation: tdataformat.c:privRemoveType
Unexecuted instantiation: tglobal.c:privRemoveType
Unexecuted instantiation: tmisce.c:privRemoveType
Unexecuted instantiation: tname.c:privRemoveType
Unexecuted instantiation: tpriv.c:privRemoveType
Unexecuted instantiation: ttime.c:privRemoveType
Unexecuted instantiation: tvariant.c:privRemoveType
Unexecuted instantiation: streamMsg.c:privRemoveType
Unexecuted instantiation: tmsg.c:privRemoveType
Unexecuted instantiation: xnode.c:privRemoveType
Unexecuted instantiation: tencrypt.c:privRemoveType
Unexecuted instantiation: streamJson.c:privRemoveType
410
411
0
static FORCE_INLINE bool privIsEmptySet(SPrivSet* privSet) {
412
0
  for (int i = 0; i < PRIV_GROUP_CNT; i++) {
413
0
    if (privSet->set[i] != 0) return false;
414
0
  }
415
0
  return true;
416
0
}
Unexecuted instantiation: sql-fuzzer.c:privIsEmptySet
Unexecuted instantiation: parser.c:privIsEmptySet
Unexecuted instantiation: parTranslater.c:privIsEmptySet
Unexecuted instantiation: parUtil.c:privIsEmptySet
Unexecuted instantiation: parAstParser.c:privIsEmptySet
Unexecuted instantiation: parAuthenticator.c:privIsEmptySet
Unexecuted instantiation: parCalcConst.c:privIsEmptySet
Unexecuted instantiation: parInsertSql.c:privIsEmptySet
Unexecuted instantiation: parInsertUtil.c:privIsEmptySet
Unexecuted instantiation: taos_lemon_sql.tab.c:privIsEmptySet
Unexecuted instantiation: parAstCreater.c:privIsEmptySet
Unexecuted instantiation: parInsertSml.c:privIsEmptySet
Unexecuted instantiation: planner.c:privIsEmptySet
Unexecuted instantiation: planLogicCreater.c:privIsEmptySet
Unexecuted instantiation: planOptimizer.c:privIsEmptySet
Unexecuted instantiation: planPhysiCreater.c:privIsEmptySet
Unexecuted instantiation: planScaleOut.c:privIsEmptySet
Unexecuted instantiation: planSpliter.c:privIsEmptySet
Unexecuted instantiation: planUtil.c:privIsEmptySet
Unexecuted instantiation: planValidator.c:privIsEmptySet
Unexecuted instantiation: catalog.c:privIsEmptySet
Unexecuted instantiation: ctgAsync.c:privIsEmptySet
Unexecuted instantiation: ctgCache.c:privIsEmptySet
Unexecuted instantiation: ctgDbg.c:privIsEmptySet
Unexecuted instantiation: ctgRemote.c:privIsEmptySet
Unexecuted instantiation: ctgRent.c:privIsEmptySet
Unexecuted instantiation: ctgUtil.c:privIsEmptySet
Unexecuted instantiation: functionMgt.c:privIsEmptySet
Unexecuted instantiation: tudf.c:privIsEmptySet
Unexecuted instantiation: builtins.c:privIsEmptySet
Unexecuted instantiation: builtinsimpl.c:privIsEmptySet
Unexecuted instantiation: thistogram.c:privIsEmptySet
Unexecuted instantiation: tpercentile.c:privIsEmptySet
Unexecuted instantiation: tavgfunction.c:privIsEmptySet
Unexecuted instantiation: tminmax.c:privIsEmptySet
Unexecuted instantiation: tminmaxavx.c:privIsEmptySet
Unexecuted instantiation: filter.c:privIsEmptySet
Unexecuted instantiation: scalar.c:privIsEmptySet
Unexecuted instantiation: sclfunc.c:privIsEmptySet
Unexecuted instantiation: sclvector.c:privIsEmptySet
Unexecuted instantiation: nodesCloneFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesCodeFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesEqualFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesMatchFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesMsgFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesToSQLFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesTraverseFuncs.c:privIsEmptySet
Unexecuted instantiation: nodesUtilFuncs.c:privIsEmptySet
Unexecuted instantiation: queryUtil.c:privIsEmptySet
Unexecuted instantiation: querymsg.c:privIsEmptySet
Unexecuted instantiation: trans.c:privIsEmptySet
Unexecuted instantiation: transCli.c:privIsEmptySet
Unexecuted instantiation: transComm.c:privIsEmptySet
Unexecuted instantiation: transSasl.c:privIsEmptySet
Unexecuted instantiation: transSvr.c:privIsEmptySet
Unexecuted instantiation: transTLS.c:privIsEmptySet
Unexecuted instantiation: thttp.c:privIsEmptySet
Unexecuted instantiation: geomFunc.c:privIsEmptySet
Unexecuted instantiation: tconfig.c:privIsEmptySet
Unexecuted instantiation: tdigest.c:privIsEmptySet
Unexecuted instantiation: tlog.c:privIsEmptySet
Unexecuted instantiation: tmempool.c:privIsEmptySet
Unexecuted instantiation: mpDirect.c:privIsEmptySet
Unexecuted instantiation: systable.c:privIsEmptySet
Unexecuted instantiation: tdatablock.c:privIsEmptySet
Unexecuted instantiation: tdataformat.c:privIsEmptySet
Unexecuted instantiation: tglobal.c:privIsEmptySet
Unexecuted instantiation: tmisce.c:privIsEmptySet
Unexecuted instantiation: tname.c:privIsEmptySet
Unexecuted instantiation: tpriv.c:privIsEmptySet
Unexecuted instantiation: ttime.c:privIsEmptySet
Unexecuted instantiation: tvariant.c:privIsEmptySet
Unexecuted instantiation: streamMsg.c:privIsEmptySet
Unexecuted instantiation: tmsg.c:privIsEmptySet
Unexecuted instantiation: xnode.c:privIsEmptySet
Unexecuted instantiation: tencrypt.c:privIsEmptySet
Unexecuted instantiation: streamJson.c:privIsEmptySet
417
418
0
static FORCE_INLINE void privTblPolicyFree(void* policy) {
419
0
  taosMemoryFree(((SPrivTblPolicy*)policy)->cond);
420
0
  taosArrayDestroy(((SPrivTblPolicy*)policy)->cols);
421
0
}
Unexecuted instantiation: sql-fuzzer.c:privTblPolicyFree
Unexecuted instantiation: parser.c:privTblPolicyFree
Unexecuted instantiation: parTranslater.c:privTblPolicyFree
Unexecuted instantiation: parUtil.c:privTblPolicyFree
Unexecuted instantiation: parAstParser.c:privTblPolicyFree
Unexecuted instantiation: parAuthenticator.c:privTblPolicyFree
Unexecuted instantiation: parCalcConst.c:privTblPolicyFree
Unexecuted instantiation: parInsertSql.c:privTblPolicyFree
Unexecuted instantiation: parInsertUtil.c:privTblPolicyFree
Unexecuted instantiation: taos_lemon_sql.tab.c:privTblPolicyFree
Unexecuted instantiation: parAstCreater.c:privTblPolicyFree
Unexecuted instantiation: parInsertSml.c:privTblPolicyFree
Unexecuted instantiation: planner.c:privTblPolicyFree
Unexecuted instantiation: planLogicCreater.c:privTblPolicyFree
Unexecuted instantiation: planOptimizer.c:privTblPolicyFree
Unexecuted instantiation: planPhysiCreater.c:privTblPolicyFree
Unexecuted instantiation: planScaleOut.c:privTblPolicyFree
Unexecuted instantiation: planSpliter.c:privTblPolicyFree
Unexecuted instantiation: planUtil.c:privTblPolicyFree
Unexecuted instantiation: planValidator.c:privTblPolicyFree
Unexecuted instantiation: catalog.c:privTblPolicyFree
Unexecuted instantiation: ctgAsync.c:privTblPolicyFree
Unexecuted instantiation: ctgCache.c:privTblPolicyFree
Unexecuted instantiation: ctgDbg.c:privTblPolicyFree
Unexecuted instantiation: ctgRemote.c:privTblPolicyFree
Unexecuted instantiation: ctgRent.c:privTblPolicyFree
Unexecuted instantiation: ctgUtil.c:privTblPolicyFree
Unexecuted instantiation: functionMgt.c:privTblPolicyFree
Unexecuted instantiation: tudf.c:privTblPolicyFree
Unexecuted instantiation: builtins.c:privTblPolicyFree
Unexecuted instantiation: builtinsimpl.c:privTblPolicyFree
Unexecuted instantiation: thistogram.c:privTblPolicyFree
Unexecuted instantiation: tpercentile.c:privTblPolicyFree
Unexecuted instantiation: tavgfunction.c:privTblPolicyFree
Unexecuted instantiation: tminmax.c:privTblPolicyFree
Unexecuted instantiation: tminmaxavx.c:privTblPolicyFree
Unexecuted instantiation: filter.c:privTblPolicyFree
Unexecuted instantiation: scalar.c:privTblPolicyFree
Unexecuted instantiation: sclfunc.c:privTblPolicyFree
Unexecuted instantiation: sclvector.c:privTblPolicyFree
Unexecuted instantiation: nodesCloneFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesCodeFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesEqualFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesMatchFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesMsgFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesToSQLFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesTraverseFuncs.c:privTblPolicyFree
Unexecuted instantiation: nodesUtilFuncs.c:privTblPolicyFree
Unexecuted instantiation: queryUtil.c:privTblPolicyFree
Unexecuted instantiation: querymsg.c:privTblPolicyFree
Unexecuted instantiation: trans.c:privTblPolicyFree
Unexecuted instantiation: transCli.c:privTblPolicyFree
Unexecuted instantiation: transComm.c:privTblPolicyFree
Unexecuted instantiation: transSasl.c:privTblPolicyFree
Unexecuted instantiation: transSvr.c:privTblPolicyFree
Unexecuted instantiation: transTLS.c:privTblPolicyFree
Unexecuted instantiation: thttp.c:privTblPolicyFree
Unexecuted instantiation: geomFunc.c:privTblPolicyFree
Unexecuted instantiation: tconfig.c:privTblPolicyFree
Unexecuted instantiation: tdigest.c:privTblPolicyFree
Unexecuted instantiation: tlog.c:privTblPolicyFree
Unexecuted instantiation: tmempool.c:privTblPolicyFree
Unexecuted instantiation: mpDirect.c:privTblPolicyFree
Unexecuted instantiation: systable.c:privTblPolicyFree
Unexecuted instantiation: tdatablock.c:privTblPolicyFree
Unexecuted instantiation: tdataformat.c:privTblPolicyFree
Unexecuted instantiation: tglobal.c:privTblPolicyFree
Unexecuted instantiation: tmisce.c:privTblPolicyFree
Unexecuted instantiation: tname.c:privTblPolicyFree
Unexecuted instantiation: tpriv.c:privTblPolicyFree
Unexecuted instantiation: ttime.c:privTblPolicyFree
Unexecuted instantiation: tvariant.c:privTblPolicyFree
Unexecuted instantiation: streamMsg.c:privTblPolicyFree
Unexecuted instantiation: tmsg.c:privTblPolicyFree
Unexecuted instantiation: xnode.c:privTblPolicyFree
Unexecuted instantiation: tencrypt.c:privTblPolicyFree
Unexecuted instantiation: streamJson.c:privTblPolicyFree
422
423
0
static FORCE_INLINE void privTblPoliciesFree(void* pTblPolicies) {
424
0
  SPrivTblPolicies* tbPolicies = (SPrivTblPolicies*)pTblPolicies;
425
0
  taosArrayDestroyEx(tbPolicies->policy, privTblPolicyFree);
426
0
}
Unexecuted instantiation: sql-fuzzer.c:privTblPoliciesFree
Unexecuted instantiation: parser.c:privTblPoliciesFree
Unexecuted instantiation: parTranslater.c:privTblPoliciesFree
Unexecuted instantiation: parUtil.c:privTblPoliciesFree
Unexecuted instantiation: parAstParser.c:privTblPoliciesFree
Unexecuted instantiation: parAuthenticator.c:privTblPoliciesFree
Unexecuted instantiation: parCalcConst.c:privTblPoliciesFree
Unexecuted instantiation: parInsertSql.c:privTblPoliciesFree
Unexecuted instantiation: parInsertUtil.c:privTblPoliciesFree
Unexecuted instantiation: taos_lemon_sql.tab.c:privTblPoliciesFree
Unexecuted instantiation: parAstCreater.c:privTblPoliciesFree
Unexecuted instantiation: parInsertSml.c:privTblPoliciesFree
Unexecuted instantiation: planner.c:privTblPoliciesFree
Unexecuted instantiation: planLogicCreater.c:privTblPoliciesFree
Unexecuted instantiation: planOptimizer.c:privTblPoliciesFree
Unexecuted instantiation: planPhysiCreater.c:privTblPoliciesFree
Unexecuted instantiation: planScaleOut.c:privTblPoliciesFree
Unexecuted instantiation: planSpliter.c:privTblPoliciesFree
Unexecuted instantiation: planUtil.c:privTblPoliciesFree
Unexecuted instantiation: planValidator.c:privTblPoliciesFree
Unexecuted instantiation: catalog.c:privTblPoliciesFree
Unexecuted instantiation: ctgAsync.c:privTblPoliciesFree
Unexecuted instantiation: ctgCache.c:privTblPoliciesFree
Unexecuted instantiation: ctgDbg.c:privTblPoliciesFree
Unexecuted instantiation: ctgRemote.c:privTblPoliciesFree
Unexecuted instantiation: ctgRent.c:privTblPoliciesFree
Unexecuted instantiation: ctgUtil.c:privTblPoliciesFree
Unexecuted instantiation: functionMgt.c:privTblPoliciesFree
Unexecuted instantiation: tudf.c:privTblPoliciesFree
Unexecuted instantiation: builtins.c:privTblPoliciesFree
Unexecuted instantiation: builtinsimpl.c:privTblPoliciesFree
Unexecuted instantiation: thistogram.c:privTblPoliciesFree
Unexecuted instantiation: tpercentile.c:privTblPoliciesFree
Unexecuted instantiation: tavgfunction.c:privTblPoliciesFree
Unexecuted instantiation: tminmax.c:privTblPoliciesFree
Unexecuted instantiation: tminmaxavx.c:privTblPoliciesFree
Unexecuted instantiation: filter.c:privTblPoliciesFree
Unexecuted instantiation: scalar.c:privTblPoliciesFree
Unexecuted instantiation: sclfunc.c:privTblPoliciesFree
Unexecuted instantiation: sclvector.c:privTblPoliciesFree
Unexecuted instantiation: nodesCloneFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesCodeFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesEqualFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesMatchFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesMsgFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesToSQLFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesTraverseFuncs.c:privTblPoliciesFree
Unexecuted instantiation: nodesUtilFuncs.c:privTblPoliciesFree
Unexecuted instantiation: queryUtil.c:privTblPoliciesFree
Unexecuted instantiation: querymsg.c:privTblPoliciesFree
Unexecuted instantiation: trans.c:privTblPoliciesFree
Unexecuted instantiation: transCli.c:privTblPoliciesFree
Unexecuted instantiation: transComm.c:privTblPoliciesFree
Unexecuted instantiation: transSasl.c:privTblPoliciesFree
Unexecuted instantiation: transSvr.c:privTblPoliciesFree
Unexecuted instantiation: transTLS.c:privTblPoliciesFree
Unexecuted instantiation: thttp.c:privTblPoliciesFree
Unexecuted instantiation: geomFunc.c:privTblPoliciesFree
Unexecuted instantiation: tconfig.c:privTblPoliciesFree
Unexecuted instantiation: tdigest.c:privTblPoliciesFree
Unexecuted instantiation: tlog.c:privTblPoliciesFree
Unexecuted instantiation: tmempool.c:privTblPoliciesFree
Unexecuted instantiation: mpDirect.c:privTblPoliciesFree
Unexecuted instantiation: systable.c:privTblPoliciesFree
Unexecuted instantiation: tdatablock.c:privTblPoliciesFree
Unexecuted instantiation: tdataformat.c:privTblPoliciesFree
Unexecuted instantiation: tglobal.c:privTblPoliciesFree
Unexecuted instantiation: tmisce.c:privTblPoliciesFree
Unexecuted instantiation: tname.c:privTblPoliciesFree
Unexecuted instantiation: tpriv.c:privTblPoliciesFree
Unexecuted instantiation: ttime.c:privTblPoliciesFree
Unexecuted instantiation: tvariant.c:privTblPoliciesFree
Unexecuted instantiation: streamMsg.c:privTblPoliciesFree
Unexecuted instantiation: tmsg.c:privTblPoliciesFree
Unexecuted instantiation: xnode.c:privTblPoliciesFree
Unexecuted instantiation: tencrypt.c:privTblPoliciesFree
Unexecuted instantiation: streamJson.c:privTblPoliciesFree
427
428
0
static FORCE_INLINE bool privDbKeyMatch(const char* key, const char* dbFName, int32_t len) {
429
0
  const char* p = strchr(key, '.');
430
0
  if (p) ++p;
431
0
  return p && strncmp(p, dbFName, len) == 0 && (p[len] == '.' || p[len] == '\0');
432
0
}
Unexecuted instantiation: sql-fuzzer.c:privDbKeyMatch
Unexecuted instantiation: parser.c:privDbKeyMatch
Unexecuted instantiation: parTranslater.c:privDbKeyMatch
Unexecuted instantiation: parUtil.c:privDbKeyMatch
Unexecuted instantiation: parAstParser.c:privDbKeyMatch
Unexecuted instantiation: parAuthenticator.c:privDbKeyMatch
Unexecuted instantiation: parCalcConst.c:privDbKeyMatch
Unexecuted instantiation: parInsertSql.c:privDbKeyMatch
Unexecuted instantiation: parInsertUtil.c:privDbKeyMatch
Unexecuted instantiation: taos_lemon_sql.tab.c:privDbKeyMatch
Unexecuted instantiation: parAstCreater.c:privDbKeyMatch
Unexecuted instantiation: parInsertSml.c:privDbKeyMatch
Unexecuted instantiation: planner.c:privDbKeyMatch
Unexecuted instantiation: planLogicCreater.c:privDbKeyMatch
Unexecuted instantiation: planOptimizer.c:privDbKeyMatch
Unexecuted instantiation: planPhysiCreater.c:privDbKeyMatch
Unexecuted instantiation: planScaleOut.c:privDbKeyMatch
Unexecuted instantiation: planSpliter.c:privDbKeyMatch
Unexecuted instantiation: planUtil.c:privDbKeyMatch
Unexecuted instantiation: planValidator.c:privDbKeyMatch
Unexecuted instantiation: catalog.c:privDbKeyMatch
Unexecuted instantiation: ctgAsync.c:privDbKeyMatch
Unexecuted instantiation: ctgCache.c:privDbKeyMatch
Unexecuted instantiation: ctgDbg.c:privDbKeyMatch
Unexecuted instantiation: ctgRemote.c:privDbKeyMatch
Unexecuted instantiation: ctgRent.c:privDbKeyMatch
Unexecuted instantiation: ctgUtil.c:privDbKeyMatch
Unexecuted instantiation: functionMgt.c:privDbKeyMatch
Unexecuted instantiation: tudf.c:privDbKeyMatch
Unexecuted instantiation: builtins.c:privDbKeyMatch
Unexecuted instantiation: builtinsimpl.c:privDbKeyMatch
Unexecuted instantiation: thistogram.c:privDbKeyMatch
Unexecuted instantiation: tpercentile.c:privDbKeyMatch
Unexecuted instantiation: tavgfunction.c:privDbKeyMatch
Unexecuted instantiation: tminmax.c:privDbKeyMatch
Unexecuted instantiation: tminmaxavx.c:privDbKeyMatch
Unexecuted instantiation: filter.c:privDbKeyMatch
Unexecuted instantiation: scalar.c:privDbKeyMatch
Unexecuted instantiation: sclfunc.c:privDbKeyMatch
Unexecuted instantiation: sclvector.c:privDbKeyMatch
Unexecuted instantiation: nodesCloneFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesCodeFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesEqualFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesMatchFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesMsgFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesToSQLFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesTraverseFuncs.c:privDbKeyMatch
Unexecuted instantiation: nodesUtilFuncs.c:privDbKeyMatch
Unexecuted instantiation: queryUtil.c:privDbKeyMatch
Unexecuted instantiation: querymsg.c:privDbKeyMatch
Unexecuted instantiation: trans.c:privDbKeyMatch
Unexecuted instantiation: transCli.c:privDbKeyMatch
Unexecuted instantiation: transComm.c:privDbKeyMatch
Unexecuted instantiation: transSasl.c:privDbKeyMatch
Unexecuted instantiation: transSvr.c:privDbKeyMatch
Unexecuted instantiation: transTLS.c:privDbKeyMatch
Unexecuted instantiation: thttp.c:privDbKeyMatch
Unexecuted instantiation: geomFunc.c:privDbKeyMatch
Unexecuted instantiation: tconfig.c:privDbKeyMatch
Unexecuted instantiation: tdigest.c:privDbKeyMatch
Unexecuted instantiation: tlog.c:privDbKeyMatch
Unexecuted instantiation: tmempool.c:privDbKeyMatch
Unexecuted instantiation: mpDirect.c:privDbKeyMatch
Unexecuted instantiation: systable.c:privDbKeyMatch
Unexecuted instantiation: tdatablock.c:privDbKeyMatch
Unexecuted instantiation: tdataformat.c:privDbKeyMatch
Unexecuted instantiation: tglobal.c:privDbKeyMatch
Unexecuted instantiation: tmisce.c:privDbKeyMatch
Unexecuted instantiation: tname.c:privDbKeyMatch
Unexecuted instantiation: tpriv.c:privDbKeyMatch
Unexecuted instantiation: ttime.c:privDbKeyMatch
Unexecuted instantiation: tvariant.c:privDbKeyMatch
Unexecuted instantiation: streamMsg.c:privDbKeyMatch
Unexecuted instantiation: tmsg.c:privDbKeyMatch
Unexecuted instantiation: xnode.c:privDbKeyMatch
Unexecuted instantiation: tencrypt.c:privDbKeyMatch
Unexecuted instantiation: streamJson.c:privDbKeyMatch
433
434
0
static FORCE_INLINE int32_t privPopCnt(SPrivSet* privSet) {
435
0
  int32_t count = 0;
436
0
  for (int32_t i = 0; i < PRIV_GROUP_CNT; ++i) {
437
0
    uint64_t chunk = privSet->set[i];
438
0
    while (chunk != 0) {
439
0
      chunk &= (chunk - 1);
440
0
      ++count;
441
0
    }
442
0
  }
443
0
  return count;
444
0
}
Unexecuted instantiation: sql-fuzzer.c:privPopCnt
Unexecuted instantiation: parser.c:privPopCnt
Unexecuted instantiation: parTranslater.c:privPopCnt
Unexecuted instantiation: parUtil.c:privPopCnt
Unexecuted instantiation: parAstParser.c:privPopCnt
Unexecuted instantiation: parAuthenticator.c:privPopCnt
Unexecuted instantiation: parCalcConst.c:privPopCnt
Unexecuted instantiation: parInsertSql.c:privPopCnt
Unexecuted instantiation: parInsertUtil.c:privPopCnt
Unexecuted instantiation: taos_lemon_sql.tab.c:privPopCnt
Unexecuted instantiation: parAstCreater.c:privPopCnt
Unexecuted instantiation: parInsertSml.c:privPopCnt
Unexecuted instantiation: planner.c:privPopCnt
Unexecuted instantiation: planLogicCreater.c:privPopCnt
Unexecuted instantiation: planOptimizer.c:privPopCnt
Unexecuted instantiation: planPhysiCreater.c:privPopCnt
Unexecuted instantiation: planScaleOut.c:privPopCnt
Unexecuted instantiation: planSpliter.c:privPopCnt
Unexecuted instantiation: planUtil.c:privPopCnt
Unexecuted instantiation: planValidator.c:privPopCnt
Unexecuted instantiation: catalog.c:privPopCnt
Unexecuted instantiation: ctgAsync.c:privPopCnt
Unexecuted instantiation: ctgCache.c:privPopCnt
Unexecuted instantiation: ctgDbg.c:privPopCnt
Unexecuted instantiation: ctgRemote.c:privPopCnt
Unexecuted instantiation: ctgRent.c:privPopCnt
Unexecuted instantiation: ctgUtil.c:privPopCnt
Unexecuted instantiation: functionMgt.c:privPopCnt
Unexecuted instantiation: tudf.c:privPopCnt
Unexecuted instantiation: builtins.c:privPopCnt
Unexecuted instantiation: builtinsimpl.c:privPopCnt
Unexecuted instantiation: thistogram.c:privPopCnt
Unexecuted instantiation: tpercentile.c:privPopCnt
Unexecuted instantiation: tavgfunction.c:privPopCnt
Unexecuted instantiation: tminmax.c:privPopCnt
Unexecuted instantiation: tminmaxavx.c:privPopCnt
Unexecuted instantiation: filter.c:privPopCnt
Unexecuted instantiation: scalar.c:privPopCnt
Unexecuted instantiation: sclfunc.c:privPopCnt
Unexecuted instantiation: sclvector.c:privPopCnt
Unexecuted instantiation: nodesCloneFuncs.c:privPopCnt
Unexecuted instantiation: nodesCodeFuncs.c:privPopCnt
Unexecuted instantiation: nodesEqualFuncs.c:privPopCnt
Unexecuted instantiation: nodesMatchFuncs.c:privPopCnt
Unexecuted instantiation: nodesMsgFuncs.c:privPopCnt
Unexecuted instantiation: nodesToSQLFuncs.c:privPopCnt
Unexecuted instantiation: nodesTraverseFuncs.c:privPopCnt
Unexecuted instantiation: nodesUtilFuncs.c:privPopCnt
Unexecuted instantiation: queryUtil.c:privPopCnt
Unexecuted instantiation: querymsg.c:privPopCnt
Unexecuted instantiation: trans.c:privPopCnt
Unexecuted instantiation: transCli.c:privPopCnt
Unexecuted instantiation: transComm.c:privPopCnt
Unexecuted instantiation: transSasl.c:privPopCnt
Unexecuted instantiation: transSvr.c:privPopCnt
Unexecuted instantiation: transTLS.c:privPopCnt
Unexecuted instantiation: thttp.c:privPopCnt
Unexecuted instantiation: geomFunc.c:privPopCnt
Unexecuted instantiation: tconfig.c:privPopCnt
Unexecuted instantiation: tdigest.c:privPopCnt
Unexecuted instantiation: tlog.c:privPopCnt
Unexecuted instantiation: tmempool.c:privPopCnt
Unexecuted instantiation: mpDirect.c:privPopCnt
Unexecuted instantiation: systable.c:privPopCnt
Unexecuted instantiation: tdatablock.c:privPopCnt
Unexecuted instantiation: tdataformat.c:privPopCnt
Unexecuted instantiation: tglobal.c:privPopCnt
Unexecuted instantiation: tmisce.c:privPopCnt
Unexecuted instantiation: tname.c:privPopCnt
Unexecuted instantiation: tpriv.c:privPopCnt
Unexecuted instantiation: ttime.c:privPopCnt
Unexecuted instantiation: tvariant.c:privPopCnt
Unexecuted instantiation: streamMsg.c:privPopCnt
Unexecuted instantiation: tmsg.c:privPopCnt
Unexecuted instantiation: xnode.c:privPopCnt
Unexecuted instantiation: tencrypt.c:privPopCnt
Unexecuted instantiation: streamJson.c:privPopCnt
445
446
0
static FORCE_INLINE int32_t privTblPrivCnt(SHashObj* privTbls) {
447
0
  int32_t nPrivs = 0;
448
0
  void*   pIter = NULL;
449
0
  while ((pIter = taosHashIterate(privTbls, pIter))) {
450
0
    nPrivs += taosArrayGetSize(((SPrivTblPolicies*)pIter)->policy);
451
0
  }
452
0
  return nPrivs;
453
0
}
Unexecuted instantiation: sql-fuzzer.c:privTblPrivCnt
Unexecuted instantiation: parser.c:privTblPrivCnt
Unexecuted instantiation: parTranslater.c:privTblPrivCnt
Unexecuted instantiation: parUtil.c:privTblPrivCnt
Unexecuted instantiation: parAstParser.c:privTblPrivCnt
Unexecuted instantiation: parAuthenticator.c:privTblPrivCnt
Unexecuted instantiation: parCalcConst.c:privTblPrivCnt
Unexecuted instantiation: parInsertSql.c:privTblPrivCnt
Unexecuted instantiation: parInsertUtil.c:privTblPrivCnt
Unexecuted instantiation: taos_lemon_sql.tab.c:privTblPrivCnt
Unexecuted instantiation: parAstCreater.c:privTblPrivCnt
Unexecuted instantiation: parInsertSml.c:privTblPrivCnt
Unexecuted instantiation: planner.c:privTblPrivCnt
Unexecuted instantiation: planLogicCreater.c:privTblPrivCnt
Unexecuted instantiation: planOptimizer.c:privTblPrivCnt
Unexecuted instantiation: planPhysiCreater.c:privTblPrivCnt
Unexecuted instantiation: planScaleOut.c:privTblPrivCnt
Unexecuted instantiation: planSpliter.c:privTblPrivCnt
Unexecuted instantiation: planUtil.c:privTblPrivCnt
Unexecuted instantiation: planValidator.c:privTblPrivCnt
Unexecuted instantiation: catalog.c:privTblPrivCnt
Unexecuted instantiation: ctgAsync.c:privTblPrivCnt
Unexecuted instantiation: ctgCache.c:privTblPrivCnt
Unexecuted instantiation: ctgDbg.c:privTblPrivCnt
Unexecuted instantiation: ctgRemote.c:privTblPrivCnt
Unexecuted instantiation: ctgRent.c:privTblPrivCnt
Unexecuted instantiation: ctgUtil.c:privTblPrivCnt
Unexecuted instantiation: functionMgt.c:privTblPrivCnt
Unexecuted instantiation: tudf.c:privTblPrivCnt
Unexecuted instantiation: builtins.c:privTblPrivCnt
Unexecuted instantiation: builtinsimpl.c:privTblPrivCnt
Unexecuted instantiation: thistogram.c:privTblPrivCnt
Unexecuted instantiation: tpercentile.c:privTblPrivCnt
Unexecuted instantiation: tavgfunction.c:privTblPrivCnt
Unexecuted instantiation: tminmax.c:privTblPrivCnt
Unexecuted instantiation: tminmaxavx.c:privTblPrivCnt
Unexecuted instantiation: filter.c:privTblPrivCnt
Unexecuted instantiation: scalar.c:privTblPrivCnt
Unexecuted instantiation: sclfunc.c:privTblPrivCnt
Unexecuted instantiation: sclvector.c:privTblPrivCnt
Unexecuted instantiation: nodesCloneFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesCodeFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesEqualFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesMatchFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesMsgFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesToSQLFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesTraverseFuncs.c:privTblPrivCnt
Unexecuted instantiation: nodesUtilFuncs.c:privTblPrivCnt
Unexecuted instantiation: queryUtil.c:privTblPrivCnt
Unexecuted instantiation: querymsg.c:privTblPrivCnt
Unexecuted instantiation: trans.c:privTblPrivCnt
Unexecuted instantiation: transCli.c:privTblPrivCnt
Unexecuted instantiation: transComm.c:privTblPrivCnt
Unexecuted instantiation: transSasl.c:privTblPrivCnt
Unexecuted instantiation: transSvr.c:privTblPrivCnt
Unexecuted instantiation: transTLS.c:privTblPrivCnt
Unexecuted instantiation: thttp.c:privTblPrivCnt
Unexecuted instantiation: geomFunc.c:privTblPrivCnt
Unexecuted instantiation: tconfig.c:privTblPrivCnt
Unexecuted instantiation: tdigest.c:privTblPrivCnt
Unexecuted instantiation: tlog.c:privTblPrivCnt
Unexecuted instantiation: tmempool.c:privTblPrivCnt
Unexecuted instantiation: mpDirect.c:privTblPrivCnt
Unexecuted instantiation: systable.c:privTblPrivCnt
Unexecuted instantiation: tdatablock.c:privTblPrivCnt
Unexecuted instantiation: tdataformat.c:privTblPrivCnt
Unexecuted instantiation: tglobal.c:privTblPrivCnt
Unexecuted instantiation: tmisce.c:privTblPrivCnt
Unexecuted instantiation: tname.c:privTblPrivCnt
Unexecuted instantiation: tpriv.c:privTblPrivCnt
Unexecuted instantiation: ttime.c:privTblPrivCnt
Unexecuted instantiation: tvariant.c:privTblPrivCnt
Unexecuted instantiation: streamMsg.c:privTblPrivCnt
Unexecuted instantiation: tmsg.c:privTblPrivCnt
Unexecuted instantiation: xnode.c:privTblPrivCnt
Unexecuted instantiation: tencrypt.c:privTblPrivCnt
Unexecuted instantiation: streamJson.c:privTblPrivCnt
454
455
int32_t privCheckConflicts(const SPrivSet* privSet, EPrivCategory* pCategory, EPrivObjType* pObjType,
456
                           uint8_t* pObjLevel, EPrivType* conflict0, EPrivType* conflict1);
457
int32_t privExpandAll(SPrivSet* privSet, EPrivObjType pObjType, uint8_t pObjLevel);
458
int32_t privExpandRw(SPrivSet* privSet, EPrivObjType pObjType, uint8_t pObjLevel);
459
int32_t privUpgradeRwDb(SHashObj* objPrivs, const char* dbFName, const char* tbName, uint8_t rwAttr);
460
void    privIterInit(SPrivIter* pIter, SPrivSet* privSet);
461
bool    privIterNext(SPrivIter* iter, SPrivInfo** ppPrivInfo);
462
void    privInfoIterInit(SPrivInfoIter* pIter);
463
bool    privInfoIterNext(SPrivInfoIter* iter, SPrivInfo** ppPrivInfo);
464
465
int32_t privTblPolicyCopy(SPrivTblPolicy* dest, SPrivTblPolicy* src);
466
int32_t privTblPoliciesAdd(SPrivTblPolicies* dest, SPrivTblPolicies* src, bool deepCopy, bool setUpdateTimeMax);
467
int32_t privTblPoliciesMerge(SPrivTblPolicies* dest, SPrivTblPolicies* src, bool updateWithLatest);
468
469
int32_t privObjKeyF(const SPrivInfo* pPrivInfo, const char* fname, const char* tb, char* buf, int32_t bufLen);
470
int32_t privObjKey(const SPrivInfo* pPrivInfo, int32_t acctId, const char* name, const char* tb, char* buf,
471
                   int32_t bufLen);
472
int32_t privObjKeyParse(const char* str, EPrivObjType* pObjType, char* db, int32_t dbLen, char* tb, int32_t tbLen,
473
                        bool fullDb);
474
475
void             privAddSetByObjType(SPrivSet* fromSet, SPrivSet* toSet, uint8_t objType);
476
const char*      privObjGetName(EPrivObjType objType);
477
int32_t          privObjGetLevel(EPrivObjType objType);
478
const char*      privInfoGetName(EPrivType privType);
479
const SPrivInfo* privInfoGet(EPrivType privType);
480
EPrivObjType     privDeduceObjType(SPrivSet* privSet);
481
int32_t          getSysRoleType(const char* roleName);
482
bool             isPrivInheritName(const char* name);
483
bool             privHasObjPrivilege(SHashObj* privs, int32_t acctId, const char* objName, const char* tbName,
484
                                     const SPrivInfo* privInfo, bool recursive);
485
SPrivTblPolicy* privGetConstraintTblPrivileges(SHashObj* privs, int32_t acctId, const char* objName, const char* tbName,
486
                                               const SPrivInfo* privInfo);
487
488
#ifdef __cplusplus
489
}
490
#endif
491
492
#endif /*_TD_UTIL_PRIV_H_*/