-
Notifications
You must be signed in to change notification settings - Fork 5k
Expand file tree
/
Copy pathcmdnodes.h
More file actions
1276 lines (1097 loc) · 33.1 KB
/
cmdnodes.h
File metadata and controls
1276 lines (1097 loc) · 33.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_CMD_NODES_H_
#define _TD_CMD_NODES_H_
#include "tmsg.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "query.h"
#include "querynodes.h"
#include "tdef.h"
#include "tglobal.h"
#define DESCRIBE_RESULT_COLS 4
#define DESCRIBE_RESULT_COLS_COMPRESS 7
#define DESCRIBE_RESULT_COLS_REF 5
#define DESCRIBE_RESULT_FIELD_LEN (TSDB_DB_NAME_LEN + TSDB_NAME_DELIMITER_LEN + TSDB_COL_FNAME_LEN + VARSTR_HEADER_SIZE)
#define DESCRIBE_RESULT_TYPE_LEN (20 + VARSTR_HEADER_SIZE)
#define DESCRIBE_RESULT_NOTE_LEN (16 + VARSTR_HEADER_SIZE)
#define DESCRIBE_RESULT_COPRESS_OPTION_LEN (TSDB_CL_COMPRESS_OPTION_LEN + VARSTR_HEADER_SIZE)
#define DESCRIBE_RESULT_COL_REF_LEN (TSDB_COL_FNAME_LEN + VARSTR_HEADER_SIZE)
#define SHOW_CREATE_DB_RESULT_COLS 2
#define SHOW_CREATE_DB_RESULT_FIELD1_LEN (TSDB_DB_NAME_LEN + VARSTR_HEADER_SIZE)
#define SHOW_CREATE_DB_RESULT_FIELD2_LEN (TSDB_MAX_BINARY_LEN + VARSTR_HEADER_SIZE)
#define SHOW_CREATE_TB_RESULT_COLS 2
#define SHOW_CREATE_TB_RESULT_FIELD1_LEN (TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE)
// Use tsMaxSQLLength * 3 for buffer size to accommodate CREATE TABLE statement
// Note: This is evaluated at runtime, so it will use the configured tsMaxSQLLength value
#define SHOW_CREATE_TB_RESULT_FIELD2_LEN ((int32_t)(tsMaxSQLLength * 3))
#define SHOW_CREATE_VIEW_RESULT_COLS 2
#define SHOW_CREATE_VIEW_RESULT_FIELD1_LEN (TSDB_VIEW_FNAME_LEN + 4 + VARSTR_HEADER_SIZE)
// Use tsMaxSQLLength + header for buffer size to accommodate CREATE VIEW statement
// Note: This is evaluated at runtime, so it will use the configured tsMaxSQLLength value
#define SHOW_CREATE_VIEW_RESULT_FIELD2_LEN ((int32_t)(tsMaxSQLLength + VARSTR_HEADER_SIZE))
#define SHOW_LOCAL_VARIABLES_RESULT_COLS 5
#define SHOW_LOCAL_VARIABLES_RESULT_FIELD1_LEN (TSDB_CONFIG_OPTION_LEN + VARSTR_HEADER_SIZE)
#define SHOW_LOCAL_VARIABLES_RESULT_FIELD2_LEN (TSDB_CONFIG_PATH_LEN + VARSTR_HEADER_SIZE)
#define SHOW_LOCAL_VARIABLES_RESULT_FIELD3_LEN (TSDB_CONFIG_SCOPE_LEN + VARSTR_HEADER_SIZE)
#define SHOW_LOCAL_VARIABLES_RESULT_FIELD4_LEN (TSDB_CONFIG_CATEGORY_LEN + VARSTR_HEADER_SIZE)
#define SHOW_LOCAL_VARIABLES_RESULT_FIELD5_LEN (TSDB_CONFIG_INFO_LEN + VARSTR_HEADER_SIZE)
#define COMPACT_DB_RESULT_COLS 3
#define COMPACT_DB_RESULT_FIELD1_LEN 32
#define COMPACT_DB_RESULT_FIELD3_LEN 128
#define SCAN_DB_RESULT_COLS 3
#define SCAN_DB_RESULT_FIELD1_LEN 32
#define SCAN_DB_RESULT_FIELD3_LEN 128
#define SHOW_ALIVE_RESULT_COLS 1
#define CREATE_TOKEN_RESULT_COLS 1
#define CREATE_TOKEN_RESULT_FIELD1_LEN (TSDB_TOKEN_LEN + VARSTR_HEADER_SIZE)
#define CREATE_TOTP_SECRET_RESULT_COLS 1
#define CREATE_TOTP_SECRET_RESULT_FIELD1_LEN ((TSDB_TOTP_SECRET_LEN * 8 + 4) / 5 + 1 + VARSTR_HEADER_SIZE)
#define BIT_FLAG_MASK(n) (1 << n)
#define BIT_FLAG_SET_MASK(val, mask) ((val) |= (mask))
#define BIT_FLAG_UNSET_MASK(val, mask) ((val) &= ~(mask))
#define BIT_FLAG_TEST_MASK(val, mask) (((val) & (mask)) != 0)
#define PRIVILEGE_TYPE_ALL BIT_FLAG_MASK(0)
#define PRIVILEGE_TYPE_READ BIT_FLAG_MASK(1)
#define PRIVILEGE_TYPE_WRITE BIT_FLAG_MASK(2)
#define PRIVILEGE_TYPE_SUBSCRIBE BIT_FLAG_MASK(3)
#define PRIVILEGE_TYPE_ALTER BIT_FLAG_MASK(4)
#define EVENT_NONE 0
#define EVENT_WINDOW_CLOSE BIT_FLAG_MASK(0)
#define EVENT_WINDOW_OPEN BIT_FLAG_MASK(1)
#define NOTIFY_NONE 0
#define NOTIFY_HISTORY BIT_FLAG_MASK(0)
#define NOTIFY_ON_FAILURE_PAUSE BIT_FLAG_MASK(1)
#define NOTIFY_HAS_FILTER BIT_FLAG_MASK(2)
#define CALC_SLIDING_OVERLAP BIT_FLAG_MASK(3)
typedef struct SDatabaseOptions {
ENodeType type;
int32_t buffer;
char cacheModelStr[TSDB_CACHE_MODEL_STR_LEN];
int8_t cacheModel;
int32_t cacheLastSize;
int8_t compressionLevel;
int8_t encryptAlgorithm;
int32_t daysPerFile;
char dnodeListStr[TSDB_DNODE_LIST_LEN];
char encryptAlgorithmStr[TSDB_ENCRYPT_ALGR_NAME_LEN];
SValueNode* pDaysPerFile;
int32_t fsyncPeriod;
int32_t maxRowsPerBlock;
int32_t minRowsPerBlock;
SNodeList* pKeep;
int64_t keep[3];
SValueNode* pKeepTimeOffsetNode;
int32_t keepTimeOffset;
int32_t pages;
int32_t pagesize;
int32_t tsdbPageSize;
char precisionStr[3];
int8_t precision;
int8_t replica;
char strictStr[TSDB_DB_STRICT_STR_LEN];
int8_t strict;
int8_t walLevel;
int32_t numOfVgroups;
int8_t singleStable;
SNodeList* pRetentions;
int8_t schemaless;
int32_t walRetentionPeriod;
int32_t walRetentionSize;
int32_t walRollPeriod;
int32_t walSegmentSize;
bool walRetentionPeriodIsSet;
bool walRetentionSizeIsSet;
bool walRollPeriodIsSet;
int32_t sstTrigger;
int32_t tablePrefix;
int32_t tableSuffix;
int32_t ssChunkSize;
int32_t ssKeepLocal;
SValueNode* ssKeepLocalStr;
int8_t ssCompact;
int8_t withArbitrator;
int8_t isAudit;
int8_t allowDrop;
// for auto-compact
int32_t compactTimeOffset; // hours
int32_t compactInterval; // minutes
int32_t compactStartTime; // minutes
int32_t compactEndTime; // minutes
SValueNode* pCompactTimeOffsetNode;
SValueNode* pCompactIntervalNode;
SNodeList* pCompactTimeRangeList;
// for cache
SDbCfgInfo* pDbCfg;
} SDatabaseOptions;
typedef struct SCreateDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
bool ignoreExists;
SDatabaseOptions* pOptions;
} SCreateDatabaseStmt;
typedef struct SUseDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
} SUseDatabaseStmt;
typedef struct SDropDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
bool ignoreNotExists;
bool force;
} SDropDatabaseStmt;
typedef struct SAlterDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
SDatabaseOptions* pOptions;
} SAlterDatabaseStmt;
typedef struct SFlushDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
} SFlushDatabaseStmt;
typedef struct STrimDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
int32_t maxSpeed;
} STrimDatabaseStmt;
typedef struct SSsMigrateDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
} SSsMigrateDatabaseStmt;
typedef struct SCompactDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
SNode* pStart;
SNode* pEnd;
bool metaOnly;
bool force;
} SCompactDatabaseStmt;
typedef struct SRollupDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
SNode* pStart;
SNode* pEnd;
} SRollupDatabaseStmt;
typedef struct SScanDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
SNode* pStart;
SNode* pEnd;
} SScanDatabaseStmt;
typedef struct SCreateMountStmt {
ENodeType type;
int32_t dnodeId;
bool ignoreExists;
char mountName[TSDB_MOUNT_NAME_LEN];
char mountPath[TSDB_MOUNT_PATH_LEN];
} SCreateMountStmt;
typedef struct SDropMountStmt {
ENodeType type;
char mountName[TSDB_MOUNT_NAME_LEN];
bool ignoreNotExists;
} SDropMountStmt;
typedef struct SCompactVgroupsStmt {
ENodeType type;
SNode* pDbName;
SNodeList* vgidList;
SNode* pStart;
SNode* pEnd;
bool metaOnly;
bool force;
} SCompactVgroupsStmt;
typedef struct SRollupVgroupsStmt {
ENodeType type;
SNode* pDbName;
SNodeList* vgidList;
SNode* pStart;
SNode* pEnd;
} SRollupVgroupsStmt;
typedef struct SScanVgroupsStmt {
ENodeType type;
SNode* pDbName;
SNodeList* vgidList;
SNode* pStart;
SNode* pEnd;
} SScanVgroupsStmt;
typedef struct STableOptions {
ENodeType type;
bool virtualStb;
bool commentNull;
char comment[TSDB_TB_COMMENT_LEN];
SNodeList* pMaxDelay;
int64_t maxDelay1;
int64_t maxDelay2;
SNodeList* pWatermark;
int64_t watermark1;
int64_t watermark2;
SNodeList* pDeleteMark;
int64_t deleteMark1;
int64_t deleteMark2;
SNodeList* pRollupFuncs;
int32_t ttl;
SNodeList* pSma;
SValueNode* pKeepNode;
int32_t keep;
} STableOptions;
typedef struct SColumnOptions {
ENodeType type;
bool commentNull;
char comment[TSDB_CL_COMMENT_LEN];
char encode[TSDB_CL_COMPRESS_OPTION_LEN];
char compress[TSDB_CL_COMPRESS_OPTION_LEN];
char compressLevel[TSDB_CL_COMPRESS_OPTION_LEN];
bool bPrimaryKey;
bool hasRef;
char refDb[TSDB_DB_NAME_LEN];
char refTable[TSDB_TABLE_NAME_LEN];
char refColumn[TSDB_COL_NAME_LEN];
} SColumnOptions;
typedef struct SColumnDefNode {
ENodeType type;
char colName[TSDB_COL_NAME_LEN];
SDataType dataType;
SNode* pOptions;
bool sma;
} SColumnDefNode;
typedef struct SCreateTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
SNodeList* pCols;
SNodeList* pTags;
STableOptions* pOptions;
} SCreateTableStmt;
typedef struct SCreateVTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
SNodeList* pCols;
} SCreateVTableStmt;
typedef struct SCreateVSubTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
char useDbName[TSDB_DB_NAME_LEN];
char useTableName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
SNodeList* pSpecificTags;
SNodeList* pValsOfTags;
SNodeList* pSpecificColRefs;
SNodeList* pColRefs;
SNodeList* pSpecificTagRefs; // tag_name FROM db.table.tag_col (same as specific_column_ref)
SNodeList* pTagRefs; // db.table.tag_col (same as column_ref, positional)
} SCreateVSubTableStmt;
typedef struct SCreateSubTableClause {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
char useDbName[TSDB_DB_NAME_LEN];
char useTableName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
SNodeList* pSpecificTags;
SNodeList* pValsOfTags;
STableOptions* pOptions;
} SCreateSubTableClause;
typedef struct SCreateSubTableFromFileClause {
ENodeType type;
char useDbName[TSDB_DB_NAME_LEN];
char useTableName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
SNodeList* pSpecificTags;
char filePath[PATH_MAX];
} SCreateSubTableFromFileClause;
typedef struct SCreateMultiTablesStmt {
ENodeType type;
SNodeList* pSubTables;
} SCreateMultiTablesStmt;
typedef struct SDropTableClause {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
bool ignoreNotExists;
SArray* pTsmas;
} SDropTableClause;
typedef struct SDropTableStmt {
ENodeType type;
SNodeList* pTables;
bool withTsma;
bool withOpt;
} SDropTableStmt;
typedef struct SDropSuperTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
bool ignoreNotExists;
bool withOpt;
} SDropSuperTableStmt;
typedef struct SDropVirtualTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
bool ignoreNotExists;
bool withOpt;
} SDropVirtualTableStmt;
typedef struct SAlterTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
int8_t alterType;
char colName[TSDB_COL_NAME_LEN];
char newColName[TSDB_COL_NAME_LEN];
STableOptions* pOptions;
SDataType dataType;
SValueNode* pVal;
SColumnOptions* pColOptions;
SNodeList* pNodeListTagValue;
char refDbName[TSDB_DB_NAME_LEN];
char refTableName[TSDB_TABLE_NAME_LEN];
char refColName[TSDB_COL_NAME_LEN];
} SAlterTableStmt;
typedef struct SAlterTableMultiStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
int8_t alterType;
SNodeList* pNodeListTagValue;
} SAlterTableMultiStmt;
// ip range for user options
typedef struct SIpRangeNode{
ENodeType type;
SIpRange range;
} SIpRangeNode;
// date time range for user options
typedef struct SDateTimeRangeNode {
ENodeType type;
SDateTimeRange range;
} SDateTimeRangeNode;
typedef struct SUserOptions {
ENodeType type;
bool hasPassword;
bool hasTotpseed;
bool hasEnable;
bool hasSysinfo;
bool hasIsImport;
bool hasCreatedb;
bool hasChangepass;
bool hasSessionPerUser;
bool hasConnectTime;
bool hasConnectIdleTime;
bool hasCallPerSession;
bool hasVnodePerCall;
bool hasFailedLoginAttempts;
bool hasPasswordLifeTime;
bool hasPasswordReuseTime;
bool hasPasswordReuseMax;
bool hasPasswordLockTime;
bool hasPasswordGraceTime;
bool hasInactiveAccountTime;
bool hasAllowTokenNum;
char password[TSDB_USER_PASSWORD_LONGLEN];
char totpseed[TSDB_USER_TOTPSEED_MAX_LEN + 1];
int8_t enable;
int8_t sysinfo;
int8_t isImport;
int8_t createdb;
int8_t changepass;
int32_t sessionPerUser;
int32_t connectTime;
int32_t connectIdleTime;
int32_t callPerSession;
int32_t vnodePerCall;
int32_t failedLoginAttempts;
int32_t passwordLifeTime;
int32_t passwordReuseTime;
int32_t passwordReuseMax;
int32_t passwordLockTime;
int32_t passwordGraceTime;
int32_t inactiveAccountTime;
int32_t allowTokenNum;
SNodeList* pIpRanges;
SNodeList* pDropIpRanges; // only for alter user
SNodeList* pTimeRanges;
SNodeList* pDropTimeRanges; // only for alter user
} SUserOptions;
typedef struct SCreateUserStmt {
ENodeType type;
bool hasSessionPerUser;
bool hasConnectTime;
bool hasConnectIdleTime;
bool hasCallPerSession;
bool hasVnodePerCall;
bool hasFailedLoginAttempts;
bool hasPasswordLifeTime;
bool hasPasswordReuseTime;
bool hasPasswordReuseMax;
bool hasPasswordLockTime;
bool hasPasswordGraceTime;
bool hasInactiveAccountTime;
bool hasAllowTokenNum;
char userName[TSDB_USER_LEN];
char password[TSDB_USER_PASSWORD_LONGLEN];
char totpseed[TSDB_USER_TOTPSEED_MAX_LEN + 1];
int8_t ignoreExists;
int8_t sysinfo;
int8_t createDb;
int8_t isImport;
int8_t changepass;
int8_t enable;
int32_t sessionPerUser;
int32_t connectTime;
int32_t connectIdleTime;
int32_t callPerSession;
int32_t vnodePerCall;
int32_t failedLoginAttempts;
int32_t passwordLifeTime;
int32_t passwordReuseTime;
int32_t passwordReuseMax;
int32_t passwordLockTime;
int32_t passwordGraceTime;
int32_t inactiveAccountTime;
int32_t allowTokenNum;
int32_t numIpRanges;
SIpRange* pIpRanges;
int32_t numTimeRanges;
SDateTimeRange* pTimeRanges;
// for privilege check
SUserOptions userOps;
} SCreateUserStmt;
typedef struct SCreateEncryptAlgrStmt {
ENodeType type;
char algorithmId[TSDB_ENCRYPT_ALGR_NAME_LEN];
char name[TSDB_ENCRYPT_ALGR_NAME_LEN];
char desc[TSDB_ENCRYPT_ALGR_DESC_LEN];
char algrType[TSDB_ENCRYPT_ALGR_TYPE_LEN];
char osslAlgrName[TSDB_ENCRYPT_ALGR_NAME_LEN];
} SCreateEncryptAlgrStmt;
typedef struct SAlterUserStmt {
ENodeType type;
char userName[TSDB_USER_LEN];
SUserOptions* pUserOptions;
} SAlterUserStmt;
typedef struct SDropUserStmt {
ENodeType type;
char userName[TSDB_USER_LEN];
bool ignoreNotExists;
} SDropUserStmt;
typedef struct SCreateRoleStmt {
ENodeType type;
char name[TSDB_ROLE_LEN];
bool ignoreExists;
} SCreateRoleStmt;
typedef struct SDropRoleStmt {
ENodeType type;
char name[TSDB_ROLE_LEN];
bool ignoreNotExists;
} SDropRoleStmt;
typedef struct SAlterRoleStmt {
ENodeType type;
char name[TSDB_ROLE_LEN];
int8_t alterType;
union {
uint8_t flag;
struct {
uint8_t lock : 1; // 1: lock, 0: unlock
uint8_t reserve : 7;
};
};
} SAlterRoleStmt;
typedef struct STokenOptions {
ENodeType type;
bool hasEnable;
bool hasTtl;
bool hasProvider;
bool hasExtraInfo;
int8_t enable;
int32_t ttl;
char provider[TSDB_TOKEN_PROVIDER_LEN];
char extraInfo[TSDB_TOKEN_EXTRA_INFO_LEN];
} STokenOptions;
typedef struct SCreateTokenStmt {
ENodeType type;
char name[TSDB_TOKEN_NAME_LEN];
char user[TSDB_USER_LEN];
int8_t enable;
int8_t ignoreExists;
int32_t ttl;
char provider[TSDB_TOKEN_PROVIDER_LEN];
char extraInfo[TSDB_TOKEN_EXTRA_INFO_LEN];
} SCreateTokenStmt;
typedef struct SAlterTokenStmt {
ENodeType type;
char name[TSDB_TOKEN_NAME_LEN];
STokenOptions* pTokenOptions;
} SAlterTokenStmt;
typedef struct SDropTokenStmt {
ENodeType type;
char name[TSDB_TOKEN_NAME_LEN];
bool ignoreNotExists;
} SDropTokenStmt;
typedef struct SCreateTotpSecretStmt {
ENodeType type;
char user[TSDB_USER_LEN];
} SCreateTotpSecretStmt;
typedef struct SDropTotpSecretStmt {
ENodeType type;
char user[TSDB_USER_LEN];
} SDropTotpSecretStmt;
typedef struct SDropEncryptAlgrStmt {
ENodeType type;
char algorithmId[TSDB_ENCRYPT_ALGR_NAME_LEN];
} SDropEncryptAlgrStmt;
typedef struct SCreateDnodeStmt {
ENodeType type;
char fqdn[TSDB_FQDN_LEN];
int32_t port;
} SCreateDnodeStmt;
typedef struct SDropDnodeStmt {
ENodeType type;
int32_t dnodeId;
char fqdn[TSDB_FQDN_LEN];
int32_t port;
bool force;
bool unsafe;
} SDropDnodeStmt;
typedef struct SAlterDnodeStmt {
ENodeType type;
int32_t dnodeId;
char config[TSDB_DNODE_CONFIG_LEN];
char value[TSDB_DNODE_VALUE_LEN];
} SAlterDnodeStmt;
typedef struct {
ENodeType type;
char url[TSDB_ANALYTIC_ANODE_URL_LEN + 3];
} SCreateAnodeStmt;
typedef struct {
ENodeType type;
int32_t anodeId;
} SDropAnodeStmt;
typedef struct {
ENodeType type;
int32_t anodeId;
} SUpdateAnodeStmt;
typedef struct SBnodeOptions {
ENodeType type;
char protoStr[TSDB_BNODE_OPT_PROTO_STR_LEN];
int8_t proto;
} SBnodeOptions;
typedef struct {
ENodeType type;
int32_t dnodeId;
SBnodeOptions* pOptions;
} SCreateBnodeStmt;
typedef struct {
ENodeType type;
int32_t dnodeId;
} SDropBnodeStmt;
typedef struct {
ENodeType type;
int32_t dnodeId;
} SUpdateBnodeStmt;
typedef struct {
ENodeType type;
// xTaskOptions opts;
// taosX Agent ID.
int32_t via;
int32_t triggerLen;
char trigger[TSDB_XNODE_TASK_TRIGGER_LEN + 3];
int32_t healthLen;
char health[TSDB_XNODE_TASK_TRIGGER_LEN + 3];
int32_t parserLen;
char* parser;
int32_t optionsNum;
char* options[TSDB_XNODE_TASK_OPTIONS_MAX_NUM]; // options in the form of "key=value", e.g., "group.id=task1",
// "via=1", "parser=taosx"
} SXnodeTaskOptions;
typedef struct {
ENodeType type;
int32_t xnodeId;
char url[TSDB_XNODE_URL_LEN + 3];
bool force;
} SDropXnodeStmt;
typedef struct {
ENodeType type;
int32_t xnodeId;
} SDrainXnodeStmt;
typedef struct {
ENodeType type;
int32_t id;
CowStr url;
CowStr token;
CowStr user;
CowStr pass;
SXnodeTaskOptions* options;
} SAlterXnodeStmt;
typedef struct {
ENodeType type;
xTaskSource source;
// ENodeXTaskSourceType sourceType;
// char database[TSDB_DB_NAME_LEN + 3];
// char topic[TSDB_TOPIC_NAME_LEN + 3];
// char dsn[TSDB_XNODE_TASK_SOURCE_LEN + 3];
} SXTaskSource;
typedef struct {
ENodeType type;
xTaskSink sink;
} SXTaskSink;
typedef struct {
ENodeType type;
char url[TSDB_XNODE_URL_LEN + 3];
// Create xnode with new user.
char user[TSDB_USER_LEN + 3];
// Create xnode with new user password. `user` and `pass` should exist along with each other.
char pass[TSDB_USER_PASSWORD_LONGLEN + 3];
char token[TSDB_TOKEN_LEN + 3];
} SCreateXnodeStmt;
typedef struct {
ENodeType type;
char name[TSDB_TABLE_NAME_LEN + 3];
SXTaskSource* source;
SXTaskSink* sink;
SXnodeTaskOptions* options;
} SCreateXnodeTaskStmt;
typedef struct {
ENodeType type;
int32_t tid; // task id.
CowStr name;
SXTaskSource* source;
SXTaskSink* sink;
SXnodeTaskOptions* options;
} SUpdateXnodeTaskStmt;
typedef struct {
ENodeType type;
int32_t tid; // task id.
CowStr name;
} SStartXnodeTaskStmt, SStopXnodeTaskStmt;
typedef struct {
ENodeType type;
int32_t id; // Short for XNode task id.
char* name;
bool force; // DROP XNODE TASK FORCE 'name'
} SDropXnodeTaskStmt;
typedef struct {
ENodeType type;
int32_t tid;
SXnodeTaskOptions* options;
} SCreateXnodeJobStmt;
typedef struct {
ENodeType type;
int32_t jid;
SXnodeTaskOptions* options;
} SAlterXnodeJobStmt, SRebalanceXnodeJobStmt;
typedef struct {
ENodeType type;
int32_t jid;
int32_t tid;
SXnodeTaskOptions* options;
SNode* pWhere;
} SDropXnodeJobStmt;
typedef struct {
ENodeType type;
SNode* pWhere;
} SRebalanceXnodeJobWhereStmt;
typedef struct {
ENodeType type;
char name[TSDB_XNODE_TASK_NAME_LEN + 3];
SXnodeTaskOptions* options;
} SCreateXnodeAgentStmt;
typedef struct {
ENodeType type;
int32_t id;
CowStr name;
SXnodeTaskOptions* options;
} SAlterXnodeAgentStmt;
typedef SDropXnodeTaskStmt SDropXnodeAgentStmt;
typedef struct SShowStmt {
ENodeType type;
SNode* pDbName; // SValueNode
SNode* pTbName; // SValueNode
EOperatorType tableCondType;
EShowKind showKind; // show databases: user/system, show tables: normal/child, others NULL
bool withFull; // for show users full;
SNode* pWhere; // WHERE clause
} SShowStmt;
typedef struct SShowCreateDatabaseStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char dbFName[TSDB_DB_FNAME_LEN];
void* pCfg; // SDbCfgInfo
} SShowCreateDatabaseStmt;
typedef struct SShowAliveStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
} SShowAliveStmt;
typedef struct SShowCreateTableStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
void* pDbCfg; // SDbCfgInfo
void* pTableCfg; // STableCfg
} SShowCreateTableStmt;
typedef struct SShowCreateViewStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char viewName[TSDB_VIEW_NAME_LEN];
bool hasPrivilege;
void* pViewMeta;
} SShowCreateViewStmt;
typedef struct SShowCreateRsmaStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char rsmaName[TSDB_TABLE_NAME_LEN];
void* pRsmaMeta; // SRsmaInfoRsp;
void* pTableCfg; // STableCfg
bool hasPrivilege;
} SShowCreateRsmaStmt;
typedef struct SShowTableDistributedStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
} SShowTableDistributedStmt;
typedef struct SShowDBUsageStmt {
ENodeType type;
char dbName[TSDB_DB_NAME_LEN];
} SShowDBUsageStmt;
typedef struct SShowDnodeVariablesStmt {
ENodeType type;
SNode* pDnodeId;
SNode* pLikePattern;
} SShowDnodeVariablesStmt;
typedef struct SShowVnodesStmt {
ENodeType type;
SNode* pDnodeId;
SNode* pDnodeEndpoint;
} SShowVnodesStmt;
typedef struct SShowTableTagsStmt {
ENodeType type;
SNode* pDbName; // SValueNode
SNode* pTbName; // SValueNode
SNodeList* pTags;
} SShowTableTagsStmt;
typedef struct SShowCompactsStmt {
ENodeType type;
} SShowCompactsStmt;
typedef struct SShowScansStmt {
ENodeType type;
} SShowScansStmt;
typedef struct SShowCompactDetailsStmt {
ENodeType type;
SNode* pId;
} SShowCompactDetailsStmt;
typedef SShowCompactDetailsStmt SShowRetentionDetailsStmt;
typedef struct SShowScanDetailsStmt {
ENodeType type;
SNode* pScanId;
} SShowScanDetailsStmt;
typedef struct SShowSsMigratesStmt {
ENodeType type;
} SShowSsMigratesStmt;
typedef struct SShowTokensStmt {
ENodeType type;
} SShowTokensStmt;
typedef struct SShowTransactionDetailsStmt {
ENodeType type;
SNode* pTransactionId;
} SShowTransactionDetailsStmt;
typedef enum EIndexType { INDEX_TYPE_SMA = 1, INDEX_TYPE_FULLTEXT, INDEX_TYPE_NORMAL } EIndexType;
typedef struct SIndexOptions {
ENodeType type;
SNodeList* pFuncs;
SNode* pInterval;
SNode* pOffset;
SNode* pSliding;
int8_t tsPrecision;
SNode* pStreamOptions;
} SIndexOptions;
typedef struct SCreateIndexStmt {
ENodeType type;
EIndexType indexType;
bool ignoreExists;
char indexDbName[TSDB_DB_NAME_LEN];
char indexName[TSDB_INDEX_NAME_LEN];
char dbName[TSDB_DB_NAME_LEN];
char tableName[TSDB_TABLE_NAME_LEN];
SNodeList* pCols;
SIndexOptions* pOptions;
} SCreateIndexStmt;
typedef struct SDropIndexStmt {
ENodeType type;
bool ignoreNotExists;
char indexDbName[TSDB_DB_NAME_LEN];
char indexName[TSDB_INDEX_NAME_LEN];
} SDropIndexStmt;
typedef struct SCreateComponentNodeStmt {
ENodeType type;
int32_t dnodeId;
} SCreateComponentNodeStmt;
typedef struct SDropComponentNodeStmt {
ENodeType type;
int32_t dnodeId;
} SDropComponentNodeStmt;
typedef struct SRestoreComponentNodeStmt {
ENodeType type;
int32_t dnodeId;
} SRestoreComponentNodeStmt;
typedef struct SCreateTopicStmt {
ENodeType type;
char topicName[TSDB_TOPIC_NAME_LEN];
char subDbName[TSDB_DB_NAME_LEN];
char subSTbName[TSDB_TABLE_NAME_LEN];
bool ignoreExists;
int8_t withMeta;
SNode* pQuery;
SNode* pWhere;
bool reload;
} SCreateTopicStmt;
typedef struct SDropTopicStmt {
ENodeType type;