From 26c9b757deb41d61d632eceed1a2f2744740e11e Mon Sep 17 00:00:00 2001 From: "cris.pei" Date: Mon, 17 Jun 2024 20:13:00 +0800 Subject: [PATCH] Add the command-line argument '--output-config' for generating configuration in test cases that increase the compatibility of message types and error codes --- source/common/test/CMakeLists.txt | 30 +- source/common/test/msgTypeTable.ini | 556 ++++++++++++++++++++++++ source/common/test/tmsgTest.cpp | 274 +++++++++++- source/util/test/CMakeLists.txt | 23 +- source/util/test/errorCodeTable.ini | 632 ++++++++++++++++++++++++++++ source/util/test/terrorTest.cpp | 209 ++++++++- 6 files changed, 1696 insertions(+), 28 deletions(-) create mode 100644 source/common/test/msgTypeTable.ini create mode 100644 source/util/test/errorCodeTable.ini diff --git a/source/common/test/CMakeLists.txt b/source/common/test/CMakeLists.txt index bacc766990..b49c8885c1 100644 --- a/source/common/test/CMakeLists.txt +++ b/source/common/test/CMakeLists.txt @@ -40,12 +40,24 @@ add_test( COMMAND dataformatTest ) -# tmsg test -add_executable(tmsgTest "") -target_sources(tmsgTest - PRIVATE - "tmsgTest.cpp" - "../src/tmsg.c" -) -target_include_directories(tmsgTest PUBLIC "${TD_SOURCE_DIR}/include/common/") -target_link_libraries(tmsgTest PUBLIC os util gtest gtest_main) \ No newline at end of file +if (${TD_LINUX}) + # tmsg test + add_executable(tmsgTest "") + target_sources(tmsgTest + PRIVATE + "tmsgTest.cpp" + "../src/tmsg.c" + ) + target_include_directories(tmsgTest PUBLIC "${TD_SOURCE_DIR}/include/common/") + target_link_libraries(tmsgTest PUBLIC os util gtest gtest_main) + add_test( + NAME tmsgTest + COMMAND tmsgTest + ) + + # config file for msg type table + SET(MSG_TBL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/msgTypeTable.ini) + add_custom_command(TARGET tmsgTest POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MSG_TBL_FILE} $ + ) +endif () \ No newline at end of file diff --git a/source/common/test/msgTypeTable.ini b/source/common/test/msgTypeTable.ini new file mode 100644 index 0000000000..bdb6aece0c --- /dev/null +++ b/source/common/test/msgTypeTable.ini @@ -0,0 +1,556 @@ +TDMT_DND_CREATE_MNODE = 1 +TDMT_DND_CREATE_MNODE_RSP = 2 +TDMT_DND_DROP_MNODE = 3 +TDMT_DND_DROP_MNODE_RSP = 4 +TDMT_DND_CREATE_QNODE = 5 +TDMT_DND_CREATE_QNODE_RSP = 6 +TDMT_DND_DROP_QNODE = 7 +TDMT_DND_DROP_QNODE_RSP = 8 +TDMT_DND_CREATE_SNODE = 9 +TDMT_DND_CREATE_SNODE_RSP = 10 +TDMT_DND_DROP_SNODE = 11 +TDMT_DND_DROP_SNODE_RSP = 12 +TDMT_DND_CREATE_BNODE = 13 +TDMT_DND_CREATE_BNODE_RSP = 14 +TDMT_DND_DROP_BNODE = 15 +TDMT_DND_DROP_BNODE_RSP = 16 +TDMT_DND_CREATE_VNODE = 17 +TDMT_DND_CREATE_VNODE_RSP = 18 +TDMT_DND_DROP_VNODE = 19 +TDMT_DND_DROP_VNODE_RSP = 20 +TDMT_DND_SERVER_STATUS = 21 +TDMT_DND_SERVER_STATUS_RSP = 22 +TDMT_DND_NET_TEST = 23 +TDMT_DND_NET_TEST_RSP = 24 +TDMT_DND_CONFIG_DNODE = 25 +TDMT_DND_CONFIG_DNODE_RSP = 26 +TDMT_DND_SYSTABLE_RETRIEVE = 27 +TDMT_DND_SYSTABLE_RETRIEVE_RSP = 28 +TDMT_DND_UNUSED_CODE = 29 +TDMT_DND_UNUSED_CODE_RSP = 30 +TDMT_DND_ALTER_MNODE_TYPE = 31 +TDMT_DND_ALTER_MNODE_TYPE_RSP = 32 +TDMT_DND_ALTER_VNODE_TYPE = 33 +TDMT_DND_ALTER_VNODE_TYPE_RSP = 34 +TDMT_DND_CHECK_VNODE_LEARNER_CATCHUP = 35 +TDMT_DND_CHECK_VNODE_LEARNER_CATCHUP_RSP = 36 +TDMT_DND_CREATE_ENCRYPT_KEY = 37 +TDMT_DND_CREATE_ENCRYPT_KEY_RSP = 38 +TDMT_DND_MAX_MSG = 39 +TDMT_DND_MAX_MSG_RSP = 40 +TDMT_MND_CONNECT = 257 +TDMT_MND_CONNECT_RSP = 258 +TDMT_MND_CREATE_ACCT = 259 +TDMT_MND_CREATE_ACCT_RSP = 260 +TDMT_MND_ALTER_ACCT = 261 +TDMT_MND_ALTER_ACCT_RSP = 262 +TDMT_MND_DROP_ACCT = 263 +TDMT_MND_DROP_ACCT_RSP = 264 +TDMT_MND_CREATE_USER = 265 +TDMT_MND_CREATE_USER_RSP = 266 +TDMT_MND_ALTER_USER = 267 +TDMT_MND_ALTER_USER_RSP = 268 +TDMT_MND_DROP_USER = 269 +TDMT_MND_DROP_USER_RSP = 270 +TDMT_MND_GET_USER_AUTH = 271 +TDMT_MND_GET_USER_AUTH_RSP = 272 +TDMT_MND_CREATE_DNODE = 273 +TDMT_MND_CREATE_DNODE_RSP = 274 +TDMT_MND_CONFIG_DNODE = 275 +TDMT_MND_CONFIG_DNODE_RSP = 276 +TDMT_MND_DROP_DNODE = 277 +TDMT_MND_DROP_DNODE_RSP = 278 +TDMT_MND_CREATE_MNODE = 279 +TDMT_MND_CREATE_MNODE_RSP = 280 +TDMT_MND_ALTER_MNODE = 281 +TDMT_MND_ALTER_MNODE_RSP = 282 +TDMT_MND_DROP_MNODE = 283 +TDMT_MND_DROP_MNODE_RSP = 284 +TDMT_MND_CREATE_QNODE = 285 +TDMT_MND_CREATE_QNODE_RSP = 286 +TDMT_MND_ALTER_QNODE = 287 +TDMT_MND_ALTER_QNODE_RSP = 288 +TDMT_MND_DROP_QNODE = 289 +TDMT_MND_DROP_QNODE_RSP = 290 +TDMT_MND_QNODE_LIST = 291 +TDMT_MND_QNODE_LIST_RSP = 292 +TDMT_MND_DNODE_LIST = 293 +TDMT_MND_DNODE_LIST_RSP = 294 +TDMT_MND_CREATE_SNODE = 295 +TDMT_MND_CREATE_SNODE_RSP = 296 +TDMT_MND_ALTER_SNODE = 297 +TDMT_MND_ALTER_SNODE_RSP = 298 +TDMT_MND_DROP_SNODE = 299 +TDMT_MND_DROP_SNODE_RSP = 300 +TDMT_MND_CREATE_BNODE = 301 +TDMT_MND_CREATE_BNODE_RSP = 302 +TDMT_MND_ALTER_BNODE = 303 +TDMT_MND_ALTER_BNODE_RSP = 304 +TDMT_MND_DROP_BNODE = 305 +TDMT_MND_DROP_BNODE_RSP = 306 +TDMT_MND_CREATE_DB = 307 +TDMT_MND_CREATE_DB_RSP = 308 +TDMT_MND_DROP_DB = 309 +TDMT_MND_DROP_DB_RSP = 310 +TDMT_MND_USE_DB = 311 +TDMT_MND_USE_DB_RSP = 312 +TDMT_MND_ALTER_DB = 313 +TDMT_MND_ALTER_DB_RSP = 314 +TDMT_MND_SYNC_DB = 315 +TDMT_MND_SYNC_DB_RSP = 316 +TDMT_MND_COMPACT_DB = 317 +TDMT_MND_COMPACT_DB_RSP = 318 +TDMT_MND_TRIM_DB = 319 +TDMT_MND_TRIM_DB_RSP = 320 +TDMT_MND_GET_DB_CFG = 321 +TDMT_MND_GET_DB_CFG_RSP = 322 +TDMT_MND_VGROUP_LIST = 323 +TDMT_MND_VGROUP_LIST_RSP = 324 +TDMT_MND_CREATE_FUNC = 325 +TDMT_MND_CREATE_FUNC_RSP = 326 +TDMT_MND_RETRIEVE_FUNC = 327 +TDMT_MND_RETRIEVE_FUNC_RSP = 328 +TDMT_MND_DROP_FUNC = 329 +TDMT_MND_DROP_FUNC_RSP = 330 +TDMT_MND_CREATE_STB = 331 +TDMT_MND_CREATE_STB_RSP = 332 +TDMT_MND_ALTER_STB = 333 +TDMT_MND_ALTER_STB_RSP = 334 +TDMT_MND_DROP_STB = 335 +TDMT_MND_DROP_STB_RSP = 336 +TDMT_MND_TABLE_META = 337 +TDMT_MND_TABLE_META_RSP = 338 +TDMT_MND_CREATE_SMA = 339 +TDMT_MND_CREATE_SMA_RSP = 340 +TDMT_MND_DROP_SMA = 341 +TDMT_MND_DROP_SMA_RSP = 342 +TDMT_MND_CREATE_STREAM = 343 +TDMT_MND_CREATE_STREAM_RSP = 344 +TDMT_MND_ALTER_STREAM = 345 +TDMT_MND_ALTER_STREAM_RSP = 346 +TDMT_MND_DROP_STREAM = 347 +TDMT_MND_DROP_STREAM_RSP = 348 +TDMT_MND_RECOVER_STREAM = 349 +TDMT_MND_RECOVER_STREAM_RSP = 350 +TDMT_MND_CREATE_INDEX = 351 +TDMT_MND_CREATE_INDEX_RSP = 352 +TDMT_MND_DROP_INDEX = 353 +TDMT_MND_DROP_INDEX_RSP = 354 +TDMT_MND_GET_INDEX = 355 +TDMT_MND_GET_INDEX_RSP = 356 +TDMT_MND_GET_TABLE_INDEX = 357 +TDMT_MND_GET_TABLE_INDEX_RSP = 358 +TDMT_MND_BATCH_META = 359 +TDMT_MND_BATCH_META_RSP = 360 +TDMT_MND_TABLE_CFG = 361 +TDMT_MND_TABLE_CFG_RSP = 362 +TDMT_MND_TMQ_CREATE_TOPIC = 363 +TDMT_MND_TMQ_CREATE_TOPIC_RSP = 364 +TDMT_MND_UNUSED1 = 365 +TDMT_MND_UNUSED1_RSP = 366 +TDMT_MND_TMQ_DROP_TOPIC = 367 +TDMT_MND_TMQ_DROP_TOPIC_RSP = 368 +TDMT_MND_TMQ_SUBSCRIBE = 369 +TDMT_MND_TMQ_SUBSCRIBE_RSP = 370 +TDMT_MND_TMQ_ASK_EP = 371 +TDMT_MND_TMQ_ASK_EP_RSP = 372 +TDMT_MND_TMQ_CONSUMER_RECOVER = 373 +TDMT_MND_TMQ_CONSUMER_RECOVER_RSP = 374 +TDMT_MND_TMQ_HB = 375 +TDMT_MND_TMQ_HB_RSP = 376 +TDMT_MND_TMQ_DO_REBALANCE = 377 +TDMT_MND_TMQ_DO_REBALANCE_RSP = 378 +TDMT_MND_TMQ_DROP_CGROUP = 379 +TDMT_MND_TMQ_DROP_CGROUP_RSP = 380 +TDMT_MND_CREATE_VG = 381 +TDMT_MND_CREATE_VG_RSP = 382 +TDMT_MND_TMQ_TIMER = 383 +TDMT_MND_TMQ_TIMER_RSP = 384 +TDMT_MND_TELEM_TIMER = 385 +TDMT_MND_TELEM_TIMER_RSP = 386 +TDMT_MND_TRANS_TIMER = 387 +TDMT_MND_TRANS_TIMER_RSP = 388 +TDMT_MND_TTL_TIMER = 389 +TDMT_MND_TTL_TIMER_RSP = 390 +TDMT_MND_GRANT_HB_TIMER = 391 +TDMT_MND_GRANT_HB_TIMER_RSP = 392 +TDMT_MND_NODECHECK_TIMER = 393 +TDMT_MND_NODECHECK_TIMER_RSP = 394 +TDMT_MND_KILL_TRANS = 395 +TDMT_MND_KILL_TRANS_RSP = 396 +TDMT_MND_KILL_QUERY = 397 +TDMT_MND_KILL_QUERY_RSP = 398 +TDMT_MND_KILL_CONN = 399 +TDMT_MND_KILL_CONN_RSP = 400 +TDMT_MND_HEARTBEAT = 401 +TDMT_MND_HEARTBEAT_RSP = 402 +TDMT_MND_STATUS = 403 +TDMT_MND_STATUS_RSP = 404 +TDMT_MND_SHOW = 405 +TDMT_MND_SHOW_RSP = 406 +TDMT_MND_SYSTABLE_RETRIEVE = 407 +TDMT_MND_SYSTABLE_RETRIEVE_RSP = 408 +TDMT_MND_GRANT = 409 +TDMT_MND_GRANT_RSP = 410 +TDMT_MND_AUTH = 411 +TDMT_MND_AUTH_RSP = 412 +TDMT_MND_APPLY_MSG = 413 +TDMT_MND_APPLY_MSG_RSP = 414 +TDMT_MND_BALANCE_VGROUP = 415 +TDMT_MND_BALANCE_VGROUP_RSP = 416 +TDMT_MND_MERGE_VGROUP = 417 +TDMT_MND_MERGE_VGROUP_RSP = 418 +TDMT_MND_REDISTRIBUTE_VGROUP = 419 +TDMT_MND_REDISTRIBUTE_VGROUP_RSP = 420 +TDMT_MND_SPLIT_VGROUP = 421 +TDMT_MND_SPLIT_VGROUP_RSP = 422 +TDMT_MND_SHOW_VARIABLES = 423 +TDMT_MND_SHOW_VARIABLES_RSP = 424 +TDMT_MND_SERVER_VERSION = 425 +TDMT_MND_SERVER_VERSION_RSP = 426 +TDMT_MND_UPTIME_TIMER = 427 +TDMT_MND_UPTIME_TIMER_RSP = 428 +TDMT_MND_TMQ_LOST_CONSUMER_CLEAR = 429 +TDMT_MND_TMQ_LOST_CONSUMER_CLEAR_RSP = 430 +TDMT_MND_STREAM_HEARTBEAT = 431 +TDMT_MND_STREAM_HEARTBEAT_RSP = 432 +TDMT_MND_RETRIEVE_IP_WHITE = 433 +TDMT_MND_RETRIEVE_IP_WHITE_RSP = 434 +TDMT_MND_GET_USER_WHITELIST = 435 +TDMT_MND_GET_USER_WHITELIST_RSP = 436 +TDMT_MND_NOTIFY = 437 +TDMT_MND_NOTIFY_RSP = 438 +TDMT_MND_BALANCE_VGROUP_LEADER = 439 +TDMT_MND_BALANCE_VGROUP_LEADER_RSP = 440 +TDMT_MND_RESTORE_DNODE = 441 +TDMT_MND_RESTORE_DNODE_RSP = 442 +TDMT_MND_PAUSE_STREAM = 443 +TDMT_MND_PAUSE_STREAM_RSP = 444 +TDMT_MND_RESUME_STREAM = 445 +TDMT_MND_RESUME_STREAM_RSP = 446 +TDMT_MND_STREAM_UPDATE_CHKPT_EVT = 447 +TDMT_MND_STREAM_UPDATE_CHKPT_EVT_RSP = 448 +TDMT_MND_STREAM_BEGIN_CHECKPOINT = 449 +TDMT_MND_STREAM_BEGIN_CHECKPOINT_RSP = 450 +TDMT_MND_STREAM_CHKPT_REPORT = 451 +TDMT_MND_STREAM_CHKPT_REPORT_RSP = 452 +TDMT_MND_STREAM_NODECHANGE_CHECK = 453 +TDMT_MND_STREAM_NODECHANGE_CHECK_RSP = 454 +TDMT_MND_TRIM_DB_TIMER = 455 +TDMT_MND_TRIM_DB_TIMER_RSP = 456 +TDMT_MND_GRANT_NOTIFY = 457 +TDMT_MND_GRANT_NOTIFY_RSP = 458 +TDMT_MND_CREATE_VIEW = 459 +TDMT_MND_CREATE_VIEW_RSP = 460 +TDMT_MND_DROP_VIEW = 461 +TDMT_MND_DROP_VIEW_RSP = 462 +TDMT_MND_VIEW_META = 463 +TDMT_MND_VIEW_META_RSP = 464 +TDMT_MND_STATIS = 465 +TDMT_MND_STATIS_RSP = 466 +TDMT_MND_KILL_COMPACT = 467 +TDMT_MND_KILL_COMPACT_RSP = 468 +TDMT_MND_COMPACT_TIMER = 469 +TDMT_MND_COMPACT_TIMER_RSP = 470 +TDMT_MND_STREAM_REQ_CHKPT = 471 +TDMT_MND_STREAM_REQ_CHKPT_RSP = 472 +TDMT_MND_CONFIG_CLUSTER = 473 +TDMT_MND_CONFIG_CLUSTER_RSP = 474 +TDMT_MND_CREATE_ENCRYPT_KEY = 475 +TDMT_MND_CREATE_ENCRYPT_KEY_RSP = 476 +TDMT_MND_S3MIGRATE_DB = 477 +TDMT_MND_S3MIGRATE_DB_RSP = 478 +TDMT_MND_S3MIGRATE_DB_TIMER = 479 +TDMT_MND_S3MIGRATE_DB_TIMER_RSP = 480 +TDMT_MND_UNUSED2 = 481 +TDMT_MND_UNUSED2_RSP = 482 +TDMT_MND_CREATE_TSMA = 483 +TDMT_MND_CREATE_TSMA_RSP = 484 +TDMT_MND_DROP_TSMA = 485 +TDMT_MND_DROP_TSMA_RSP = 486 +TDMT_MND_STB_DROP = 487 +TDMT_MND_STB_DROP_RSP = 488 +TDMT_MND_GET_TABLE_TSMA = 489 +TDMT_MND_GET_TABLE_TSMA_RSP = 490 +TDMT_MND_GET_TSMA = 491 +TDMT_MND_GET_TSMA_RSP = 492 +TDMT_MND_DROP_TB_WITH_TSMA = 493 +TDMT_MND_DROP_TB_WITH_TSMA_RSP = 494 +TDMT_MND_MAX_MSG = 495 +TDMT_MND_MAX_MSG_RSP = 496 +TDMT_VND_SUBMIT = 513 +TDMT_VND_SUBMIT_RSP = 514 +TDMT_VND_CREATE_TABLE = 515 +TDMT_VND_CREATE_TABLE_RSP = 516 +TDMT_VND_ALTER_TABLE = 517 +TDMT_VND_ALTER_TABLE_RSP = 518 +TDMT_VND_DROP_TABLE = 519 +TDMT_VND_DROP_TABLE_RSP = 520 +TDMT_VND_UPDATE_TAG_VAL = 521 +TDMT_VND_UPDATE_TAG_VAL_RSP = 522 +TDMT_VND_TABLE_META = 523 +TDMT_VND_TABLE_META_RSP = 524 +TDMT_VND_TABLES_META = 525 +TDMT_VND_TABLES_META_RSP = 526 +TDMT_VND_TABLE_CFG = 527 +TDMT_VND_TABLE_CFG_RSP = 528 +TDMT_VND_BATCH_META = 529 +TDMT_VND_BATCH_META_RSP = 530 +TDMT_VND_CREATE_STB = 531 +TDMT_VND_CREATE_STB_RSP = 532 +TDMT_VND_ALTER_STB = 533 +TDMT_VND_ALTER_STB_RSP = 534 +TDMT_VND_DROP_STB = 535 +TDMT_VND_DROP_STB_RSP = 536 +TDMT_VND_UNUSED1 = 537 +TDMT_VND_UNUSED1_RSP = 538 +TDMT_VND_UNUSED2 = 539 +TDMT_VND_UNUSED2_RSP = 540 +TDMT_VND_UNUSED3 = 541 +TDMT_VND_UNUSED3_RSP = 542 +TDMT_VND_UNUSED4 = 543 +TDMT_VND_UNUSED4_RSP = 544 +TDMT_VND_UNUSED5 = 545 +TDMT_VND_UNUSED5_RSP = 546 +TDMT_VND_UNUSED6 = 547 +TDMT_VND_UNUSED6_RSP = 548 +TDMT_VND_UNUSED7 = 549 +TDMT_VND_UNUSED7_RSP = 550 +TDMT_VND_UNUSED8 = 551 +TDMT_VND_UNUSED8_RSP = 552 +TDMT_VND_UNUSED9 = 553 +TDMT_VND_UNUSED9_RSP = 554 +TDMT_VND_UNUSED10 = 555 +TDMT_VND_UNUSED10_RSP = 556 +TDMT_VND_UNUSED11 = 557 +TDMT_VND_UNUSED11_RSP = 558 +TDMT_VND_UNUSED12 = 559 +TDMT_VND_UNUSED12_RSP = 560 +TDMT_VND_UNUSED13 = 561 +TDMT_VND_UNUSED13_RSP = 562 +TDMT_VND_UNUSED14 = 563 +TDMT_VND_UNUSED14_RSP = 564 +TDMT_VND_UNUSED15 = 565 +TDMT_VND_UNUSED15_RSP = 566 +TDMT_VND_CREATE_SMA = 567 +TDMT_VND_CREATE_SMA_RSP = 568 +TDMT_VND_CANCEL_SMA = 569 +TDMT_VND_CANCEL_SMA_RSP = 570 +TDMT_VND_DROP_SMA = 571 +TDMT_VND_DROP_SMA_RSP = 572 +TDMT_VND_SUBMIT_RSMA = 573 +TDMT_VND_SUBMIT_RSMA_RSP = 574 +TDMT_VND_FETCH_RSMA = 575 +TDMT_VND_FETCH_RSMA_RSP = 576 +TDMT_VND_EXEC_RSMA = 577 +TDMT_VND_EXEC_RSMA_RSP = 578 +TDMT_VND_DELETE = 579 +TDMT_VND_DELETE_RSP = 580 +TDMT_VND_BATCH_DEL = 581 +TDMT_VND_BATCH_DEL_RSP = 582 +TDMT_VND_ALTER_CONFIG = 583 +TDMT_VND_ALTER_CONFIG_RSP = 584 +TDMT_VND_ALTER_REPLICA = 585 +TDMT_VND_ALTER_REPLICA_RSP = 586 +TDMT_VND_ALTER_CONFIRM = 587 +TDMT_VND_ALTER_CONFIRM_RSP = 588 +TDMT_VND_ALTER_HASHRANGE = 589 +TDMT_VND_ALTER_HASHRANGE_RSP = 590 +TDMT_VND_COMPACT = 591 +TDMT_VND_COMPACT_RSP = 592 +TDMT_VND_DROP_TTL_TABLE = 593 +TDMT_VND_DROP_TTL_TABLE_RSP = 594 +TDMT_VND_TRIM = 595 +TDMT_VND_TRIM_RSP = 596 +TDMT_VND_COMMIT = 597 +TDMT_VND_COMMIT_RSP = 598 +TDMT_VND_CREATE_INDEX = 599 +TDMT_VND_CREATE_INDEX_RSP = 600 +TDMT_VND_DROP_INDEX = 601 +TDMT_VND_DROP_INDEX_RSP = 602 +TDMT_VND_DISABLE_WRITE = 603 +TDMT_VND_DISABLE_WRITE_RSP = 604 +TDMT_VND_QUERY_COMPACT_PROGRESS = 605 +TDMT_VND_QUERY_COMPACT_PROGRESS_RSP = 606 +TDMT_VND_KILL_COMPACT = 607 +TDMT_VND_KILL_COMPACT_RSP = 608 +TDMT_VND_S3MIGRATE = 609 +TDMT_VND_S3MIGRATE_RSP = 610 +TDMT_VND_ARB_HEARTBEAT = 611 +TDMT_VND_ARB_HEARTBEAT_RSP = 612 +TDMT_VND_ARB_CHECK_SYNC = 613 +TDMT_VND_ARB_CHECK_SYNC_RSP = 614 +TDMT_VND_FETCH_TTL_EXPIRED_TBS = 615 +TDMT_VND_FETCH_TTL_EXPIRED_TBS_RSP = 616 +TDMT_VND_MAX_MSG = 617 +TDMT_VND_MAX_MSG_RSP = 618 +TDMT_SCH_QUERY = 769 +TDMT_SCH_QUERY_RSP = 770 +TDMT_SCH_MERGE_QUERY = 771 +TDMT_SCH_MERGE_QUERY_RSP = 772 +TDMT_SCH_QUERY_CONTINUE = 773 +TDMT_SCH_QUERY_CONTINUE_RSP = 774 +TDMT_SCH_QUERY_HEARTBEAT = 775 +TDMT_SCH_QUERY_HEARTBEAT_RSP = 776 +TDMT_SCH_FETCH = 777 +TDMT_SCH_FETCH_RSP = 778 +TDMT_SCH_MERGE_FETCH = 779 +TDMT_SCH_MERGE_FETCH_RSP = 780 +TDMT_SCH_CANCEL_TASK = 781 +TDMT_SCH_CANCEL_TASK_RSP = 782 +TDMT_SCH_DROP_TASK = 783 +TDMT_SCH_DROP_TASK_RSP = 784 +TDMT_SCH_EXPLAIN = 785 +TDMT_SCH_EXPLAIN_RSP = 786 +TDMT_SCH_LINK_BROKEN = 787 +TDMT_SCH_LINK_BROKEN_RSP = 788 +TDMT_SCH_TASK_NOTIFY = 789 +TDMT_SCH_TASK_NOTIFY_RSP = 790 +TDMT_SCH_MAX_MSG = 791 +TDMT_SCH_MAX_MSG_RSP = 792 +TDMT_STREAM_TASK_DEPLOY = 1025 +TDMT_STREAM_TASK_DEPLOY_RSP = 1026 +TDMT_STREAM_TASK_DROP = 1027 +TDMT_STREAM_TASK_DROP_RSP = 1028 +TDMT_STREAM_TASK_RUN = 1029 +TDMT_STREAM_TASK_RUN_RSP = 1030 +TDMT_STREAM_TASK_DISPATCH = 1031 +TDMT_STREAM_TASK_DISPATCH_RSP = 1032 +TDMT_STREAM_TASK_UPDATE_CHKPT = 1033 +TDMT_STREAM_TASK_UPDATE_CHKPT_RSP = 1034 +TDMT_STREAM_RETRIEVE = 1035 +TDMT_STREAM_RETRIEVE_RSP = 1036 +TDMT_STREAM_TASK_CHECKPOINT_READY = 1037 +TDMT_STREAM_TASK_CHECKPOINT_READY_RSP = 1038 +TDMT_STREAM_TASK_REPORT_CHECKPOINT = 1039 +TDMT_STREAM_TASK_REPORT_CHECKPOINT_RSP = 1040 +TDMT_STREAM_TASK_RESTORE_CHECKPOINT = 1041 +TDMT_STREAM_TASK_RESTORE_CHECKPOINT_RSP = 1042 +TDMT_STREAM_TASK_PAUSE = 1043 +TDMT_STREAM_TASK_PAUSE_RSP = 1044 +TDMT_STREAM_TASK_RESUME = 1045 +TDMT_STREAM_TASK_RESUME_RSP = 1046 +TDMT_STREAM_TASK_STOP = 1047 +TDMT_STREAM_TASK_STOP_RSP = 1048 +TDMT_STREAM_UNUSED = 1049 +TDMT_STREAM_UNUSED_RSP = 1050 +TDMT_STREAM_CREATE = 1051 +TDMT_STREAM_CREATE_RSP = 1052 +TDMT_STREAM_DROP = 1053 +TDMT_STREAM_DROP_RSP = 1054 +TDMT_STREAM_RETRIEVE_TRIGGER = 1055 +TDMT_STREAM_RETRIEVE_TRIGGER_RSP = 1056 +TDMT_STREAM_MAX_MSG = 1057 +TDMT_STREAM_MAX_MSG_RSP = 1058 +TDMT_MON_MAX_MSG = 1281 +TDMT_MON_MAX_MSG_RSP = 1282 +TDMT_SYNC_TIMEOUT = 1537 +TDMT_SYNC_TIMEOUT_RSP = 1538 +TDMT_SYNC_TIMEOUT_ELECTION = 1539 +TDMT_SYNC_TIMEOUT_ELECTION_RSP = 1540 +TDMT_SYNC_PING_REPLY = 1541 +TDMT_SYNC_PING_REPLY_RSP = 1542 +TDMT_SYNC_CLIENT_REQUEST = 1543 +TDMT_SYNC_CLIENT_REQUEST_RSP = 1544 +TDMT_SYNC_CLIENT_REQUEST_BATCH = 1545 +TDMT_SYNC_CLIENT_REQUEST_BATCH_RSP = 1546 +TDMT_SYNC_CLIENT_REQUEST_REPLY = 1547 +TDMT_SYNC_CLIENT_REQUEST_REPLY_RSP = 1548 +TDMT_SYNC_REQUEST_VOTE = 1549 +TDMT_SYNC_REQUEST_VOTE_RSP = 1550 +TDMT_SYNC_REQUEST_VOTE_REPLY = 1551 +TDMT_SYNC_REQUEST_VOTE_REPLY_RSP = 1552 +TDMT_SYNC_APPEND_ENTRIES = 1553 +TDMT_SYNC_APPEND_ENTRIES_RSP = 1554 +TDMT_SYNC_APPEND_ENTRIES_BATCH = 1555 +TDMT_SYNC_APPEND_ENTRIES_BATCH_RSP = 1556 +TDMT_SYNC_APPEND_ENTRIES_REPLY = 1557 +TDMT_SYNC_APPEND_ENTRIES_REPLY_RSP = 1558 +TDMT_SYNC_NOOP = 1559 +TDMT_SYNC_NOOP_RSP = 1560 +TDMT_SYNC_UNKNOWN = 1561 +TDMT_SYNC_UNKNOWN_RSP = 1562 +TDMT_SYNC_COMMON_RESPONSE = 1563 +TDMT_SYNC_COMMON_RESPONSE_RSP = 1564 +TDMT_SYNC_APPLY_MSG = 1565 +TDMT_SYNC_APPLY_MSG_RSP = 1566 +TDMT_SYNC_CONFIG_CHANGE = 1567 +TDMT_SYNC_CONFIG_CHANGE_RSP = 1568 +TDMT_SYNC_CONFIG_CHANGE_FINISH = 1569 +TDMT_SYNC_CONFIG_CHANGE_FINISH_RSP = 1570 +TDMT_SYNC_SNAPSHOT_SEND = 1571 +TDMT_SYNC_SNAPSHOT_SEND_RSP = 1572 +TDMT_SYNC_SNAPSHOT_RSP = 1573 +TDMT_SYNC_SNAPSHOT_RSP_RSP = 1574 +TDMT_SYNC_LEADER_TRANSFER = 1575 +TDMT_SYNC_LEADER_TRANSFER_RSP = 1576 +TDMT_SYNC_SET_MNODE_STANDBY = 1577 +TDMT_SYNC_SET_MNODE_STANDBY_RSP = 1578 +TDMT_SYNC_SET_VNODE_STANDBY = 1579 +TDMT_SYNC_SET_VNODE_STANDBY_RSP = 1580 +TDMT_SYNC_HEARTBEAT = 1581 +TDMT_SYNC_HEARTBEAT_RSP = 1582 +TDMT_SYNC_HEARTBEAT_REPLY = 1583 +TDMT_SYNC_HEARTBEAT_REPLY_RSP = 1584 +TDMT_SYNC_LOCAL_CMD = 1585 +TDMT_SYNC_LOCAL_CMD_RSP = 1586 +TDMT_SYNC_PREP_SNAPSHOT = 1587 +TDMT_SYNC_PREP_SNAPSHOT_RSP = 1588 +TDMT_SYNC_PREP_SNAPSHOT_REPLY = 1589 +TDMT_SYNC_PREP_SNAPSHOT_REPLY_RSP = 1590 +TDMT_SYNC_UNUSED_CODE = 1591 +TDMT_SYNC_UNUSED_CODE_RSP = 1592 +TDMT_SYNC_FORCE_FOLLOWER = 1593 +TDMT_SYNC_FORCE_FOLLOWER_RSP = 1594 +TDMT_SYNC_SET_ASSIGNED_LEADER = 1595 +TDMT_SYNC_SET_ASSIGNED_LEADER_RSP = 1596 +TDMT_SYNC_MAX_MSG = 1597 +TDMT_SYNC_MAX_MSG_RSP = 1598 +TDMT_VND_STREAM_SCAN_HISTORY = 1793 +TDMT_VND_STREAM_SCAN_HISTORY_RSP = 1794 +TDMT_VND_STREAM_CHECK_POINT_SOURCE = 1795 +TDMT_VND_STREAM_CHECK_POINT_SOURCE_RSP = 1796 +TDMT_VND_STREAM_TASK_UPDATE = 1797 +TDMT_VND_STREAM_TASK_UPDATE_RSP = 1798 +TDMT_VND_STREAM_TASK_RESET = 1799 +TDMT_VND_STREAM_TASK_RESET_RSP = 1800 +TDMT_VND_STREAM_TASK_CHECK = 1801 +TDMT_VND_STREAM_TASK_CHECK_RSP = 1802 +TDMT_VND_STREAM_UNUSED = 1803 +TDMT_VND_STREAM_UNUSED_RSP = 1804 +TDMT_VND_GET_STREAM_PROGRESS = 1805 +TDMT_VND_GET_STREAM_PROGRESS_RSP = 1806 +TDMT_VND_STREAM_MAX_MSG = 1807 +TDMT_VND_STREAM_MAX_MSG_RSP = 1808 +TDMT_VND_TMQ_SUBSCRIBE = 2049 +TDMT_VND_TMQ_SUBSCRIBE_RSP = 2050 +TDMT_VND_TMQ_DELETE_SUB = 2051 +TDMT_VND_TMQ_DELETE_SUB_RSP = 2052 +TDMT_VND_TMQ_COMMIT_OFFSET = 2053 +TDMT_VND_TMQ_COMMIT_OFFSET_RSP = 2054 +TDMT_VND_TMQ_SEEK = 2055 +TDMT_VND_TMQ_SEEK_RSP = 2056 +TDMT_VND_TMQ_ADD_CHECKINFO = 2057 +TDMT_VND_TMQ_ADD_CHECKINFO_RSP = 2058 +TDMT_VND_TMQ_DEL_CHECKINFO = 2059 +TDMT_VND_TMQ_DEL_CHECKINFO_RSP = 2060 +TDMT_VND_TMQ_CONSUME = 2061 +TDMT_VND_TMQ_CONSUME_RSP = 2062 +TDMT_VND_TMQ_CONSUME_PUSH = 2063 +TDMT_VND_TMQ_CONSUME_PUSH_RSP = 2064 +TDMT_VND_TMQ_VG_WALINFO = 2065 +TDMT_VND_TMQ_VG_WALINFO_RSP = 2066 +TDMT_VND_TMQ_VG_COMMITTEDINFO = 2067 +TDMT_VND_TMQ_VG_COMMITTEDINFO_RSP = 2068 +TDMT_VND_TMQ_MAX_MSG = 2069 +TDMT_VND_TMQ_MAX_MSG_RSP = 2070 +TDMT_MND_ARB_HEARTBEAT_TIMER = 2305 +TDMT_MND_ARB_HEARTBEAT_TIMER_RSP = 2306 +TDMT_MND_ARB_CHECK_SYNC_TIMER = 2307 +TDMT_MND_ARB_CHECK_SYNC_TIMER_RSP = 2308 +TDMT_MND_ARB_UPDATE_GROUP = 2309 +TDMT_MND_ARB_UPDATE_GROUP_RSP = 2310 +TDMT_MND_ARB_UPDATE_GROUP_BATCH = 2311 +TDMT_MND_ARB_UPDATE_GROUP_BATCH_RSP = 2312 +TDMT_MND_ARB_MAX_MSG = 2313 +TDMT_MND_ARB_MAX_MSG_RSP = 2314 diff --git a/source/common/test/tmsgTest.cpp b/source/common/test/tmsgTest.cpp index 910e133c64..34b0026b17 100644 --- a/source/common/test/tmsgTest.cpp +++ b/source/common/test/tmsgTest.cpp @@ -1,5 +1,14 @@ #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "tmsg.h" @@ -12,15 +21,260 @@ #undef TD_MSG_SEG_CODE_ #include "tmsgdef.h" -TEST(td_msg_test, simple_msg_test) { - // std::cout << TMSG_INFO(TDMT_VND_DROP_TABLE) << std::endl; - // std::cout << TMSG_INFO(TDMT_MND_DROP_SUPER_TABLE) << std::endl; - // std::cout << TMSG_INFO(TDMT_MND_CREATE_SUPER_TABLE) << std::endl; +#undef getline +#undef close - int32_t msgSize = sizeof(tMsgTypeInfo) / sizeof(SMsgTypeInfo); - for (int32_t i = 0; i < msgSize; ++i) { - SMsgTypeInfo *pInfo = &tMsgTypeInfo[i]; - std::cout << i * 2 + 1 << " " << pInfo->name << " " << pInfo->type << std::endl; - std::cout << i * 2 + 2 << " " << pInfo->rspName << " " << pInfo->rspType << std::endl; +using namespace std; + +enum class ParseStatus { + Success, + FileNotExist, + FileNotOpen, + ResponseWithoutRequest, + RequestWithoutResponse +}; + +typedef struct { + string name; + string rspName; + int32_t type; + int32_t rspType; +} STestMsgTypeInfo; + +string getExecutableDirectory() { + char result[PATH_MAX]; + ssize_t count = readlink("/proc/self/exe", result, PATH_MAX); + if (count != -1) { + result[count] = '\0'; + string path(result); + size_t pos = path.rfind('/'); + if (pos != string::npos) { + path.erase(pos + 1); + } + return path; + } else { + throw std::runtime_error("Failed to get the executable's directory"); } +} + + +// parses key-value pairs from strings +pair parseKeyValuePair(const string &line, char delim = '=') { + size_t pos = line.find(delim); + if (pos == string::npos) + return make_pair("", 0); + + string key = line.substr(0, pos); + + // remove leading spaces + size_t firstNotSpace = key.find_first_not_of(" "); + if (firstNotSpace != string::npos) { + key = key.substr(firstNotSpace); + } else { + key.clear(); + } + + // remove ending spaces + size_t lastNotSpace = key.find_last_not_of(" "); + if (lastNotSpace != string::npos) { + key = key.substr(0, lastNotSpace + 1); + } + + if (key.front() == '"' && key.back() == '"') + key = key.substr(1, key.size() - 2); + + if (key.front() == '\'' && key.back() == '\'') + key = key.substr(1, key.size() - 2); + + string valStr = line.substr(pos + 1); + int32_t val = stoi(valStr); + return make_pair(key, val); +} + +// read the configuration file and parse it into the STestMsgTypeInfo array +ParseStatus readConfig(const string& filePath, vector& msgTypes) { + ifstream file(filePath); + if (!file.is_open()) { + if (file.fail() && errno == ENOENT) { + cerr << "Error: The file does not exist, file: " << filePath << endl; + return ParseStatus::FileNotExist; + } else { + cerr << "Error: Could not open the file, file: " << filePath << endl; + return ParseStatus::FileNotOpen; + } + } + + auto endsWith = [](const string& str, const string& suffix) { + if (str.length() < suffix.length()) { + return false; + } + return equal(str.end() - suffix.length(), str.end(), suffix.begin()); + }; + + + bool evenLine = true; + string line; + string suffix("_RSP"); + pair reqKwInfo; + while (std::getline(file, line)) { + char delim = '#'; + if (line.find('=') != string::npos) { + delim = '='; + } else if (line.find(':') != string::npos) { + delim = ':'; + } else if (line.find('{') != string::npos || line.find('}') != string::npos) { + // TODO: parse json format + continue; + } else { + continue; + } + + auto curKwInfo = parseKeyValuePair(line, delim); + evenLine = ! evenLine; + + // check message type + if (evenLine == false) { // req msg + reqKwInfo = curKwInfo; + } else { // rsp msg + if (reqKwInfo.first.empty()) { + cerr << "Error: Found a response message without a matching request, rsp: " << curKwInfo.first << endl; + return ParseStatus::ResponseWithoutRequest; + } else if (!endsWith(curKwInfo.first, suffix)) { + cerr << "Error: A request message was not followed by a matching response, req: " << reqKwInfo.first << endl; + return ParseStatus::RequestWithoutResponse; + } else { + STestMsgTypeInfo msgInfo; + msgInfo.name = reqKwInfo.first; + msgInfo.rspName = curKwInfo.first; + msgInfo.type = reqKwInfo.second; + msgInfo.rspType = curKwInfo.second; + msgTypes.push_back(msgInfo); + + // reset req info + reqKwInfo = make_pair("", -1); + } + } + } + + if (!reqKwInfo.first.empty()) { + cerr << "Error: A request message was not followed by a matching response, req: " << reqKwInfo.first << endl; + return ParseStatus::RequestWithoutResponse; + } + + return ParseStatus::Success; +} + + +TEST(td_msg_test, msg_type_compatibility_test) { + // cout << TMSG_INFO(TDMT_VND_DROP_TABLE) << endl; + // cout << TMSG_INFO(TDMT_MND_DROP_SUPER_TABLE) << endl; + // cout << TMSG_INFO(TDMT_MND_CREATE_SUPER_TABLE) << endl; + + // int32_t msgSize = sizeof(tMsgTypeInfo) / sizeof(SMsgTypeInfo); + // for (int32_t i = 0; i < msgSize; ++i) { + // SMsgTypeInfo *pInfo = &tMsgTypeInfo[i]; + // cout << i * 2 + 1 << " " << pInfo->name << " " << pInfo->type << endl; + // cout << i * 2 + 2 << " " << pInfo->rspName << " " << pInfo->rspType << endl; + // } + + + // current msgs: to map + unordered_map map; + for (const auto& info : tMsgTypeInfo) { + map[info.name] = &info; + } + + string configFileName = "msgTypeTable.ini"; + string execDir = getExecutableDirectory(); + string configFilePath(execDir + configFileName); + + vector msgTypes; + ParseStatus status = readConfig(configFilePath, msgTypes); + + switch (status) { + case ParseStatus::Success: + for (const auto& stdInfo : msgTypes) { + auto it = map.find(stdInfo.name); + if (it == map.end()) { + FAIL() << "Error: Could not find msg: " << stdInfo.name << "."; + } else { + auto newInfo = it->second; + + ASSERT_STREQ(stdInfo.name.c_str(), newInfo->name); + ASSERT_STREQ(stdInfo.rspName.c_str(), newInfo->rspName); + ASSERT_EQ(stdInfo.type, newInfo->type) + << "Message type mismatch(" << stdInfo.name << "): expected " << stdInfo.type << ", got " << newInfo->type << "."; + ASSERT_EQ(stdInfo.rspType, newInfo->rspType) + << "Message response type mismatch(" << stdInfo.rspName << "): expected " << stdInfo.rspType << ", got " << newInfo->rspType << "."; + } + } + break; + case ParseStatus::FileNotExist: + FAIL() << "Error: The file does not exist, file: " << configFileName << "."; + break; + case ParseStatus::FileNotOpen: + FAIL() << "Error: Could not open the file, file: " << configFileName << "."; + break; + case ParseStatus::ResponseWithoutRequest: + FAIL() << "Error: Found a response message without a matching request."; + break; + case ParseStatus::RequestWithoutResponse: + FAIL() << "Error: A request message was not followed by a matching response."; + break; + default: + FAIL() << "Unknown Error."; + break; + } +} + + +size_t maxLengthOfMsgType() { + size_t maxLen = 0; + for (const auto& info : tMsgTypeInfo) { + maxLen = std::max(maxLen, strlen(info.name)); + maxLen = std::max(maxLen, strlen(info.rspName)); + } + return (maxLen / 4 + 1) * 4; +} + + +void generateConfigFile(const string& filePath) { + size_t maxStringLength = maxLengthOfMsgType(); + std::ofstream file(filePath); + if (!file.is_open()) { + cerr << "Failed to open file for writing, at: " << filePath << "." << endl; + return; + } + + for (const auto& info : tMsgTypeInfo) { + file << std::left << std::setw(maxStringLength) << info.name << "= " << info.type << endl; + file << std::left << std::setw(maxStringLength) << info.rspName << "= " << info.rspType << endl; + } + + if (file.fail()) { + cerr << "An error occurred while writing to the file." << endl; + } else { + cout << "Data successfully written to file: " << filePath << endl; + } + + file.close(); +} + + +void processCommandArgs(int argc, char** argv) { + for (int i = 1; i < argc; ++i) { + if (string(argv[i]) == "--output-config") { + string configFile = (i + 1 < argc) ? argv[++i] : "./msgTypeTable.ini"; + generateConfigFile(configFile); + exit(0); + } + } +} + + +int main(int argc, char **argv) { + processCommandArgs(argc, argv); + + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); } \ No newline at end of file diff --git a/source/util/test/CMakeLists.txt b/source/util/test/CMakeLists.txt index 89978fd5aa..0b81ba17d4 100644 --- a/source/util/test/CMakeLists.txt +++ b/source/util/test/CMakeLists.txt @@ -12,6 +12,7 @@ IF (HEADER_GTEST_INCLUDE_DIR AND (LIB_GTEST_STATIC_DIR OR LIB_GTEST_SHARED_DIR)) AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) LIST(REMOVE_ITEM SOURCE_LIST ${CMAKE_CURRENT_SOURCE_DIR}/trefTest.c) + LIST(REMOVE_ITEM SOURCE_LIST ${CMAKE_CURRENT_SOURCE_DIR}/terrorTest.cpp) ADD_EXECUTABLE(utilTest ${SOURCE_LIST}) TARGET_LINK_LIBRARIES(utilTest util common os gtest pthread) @@ -125,10 +126,18 @@ add_test( # COMMAND decompressTest #) -# terrorTest -add_executable(terrorTest "terrorTest.cpp") -target_link_libraries(terrorTest os util common gtest_main) -add_test( - NAME terrorTest - COMMAND terrorTest -) \ No newline at end of file +if (${TD_LINUX}) + # terrorTest + add_executable(terrorTest "terrorTest.cpp") + target_link_libraries(terrorTest os util common gtest_main) + add_test( + NAME terrorTest + COMMAND terrorTest + ) + + # config + SET(ERR_TBL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/errorCodeTable.ini) + add_custom_command(TARGET terrorTest POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ERR_TBL_FILE} $ + ) +endif () \ No newline at end of file diff --git a/source/util/test/errorCodeTable.ini b/source/util/test/errorCodeTable.ini new file mode 100644 index 0000000000..1da1fd7d21 --- /dev/null +++ b/source/util/test/errorCodeTable.ini @@ -0,0 +1,632 @@ +TSDB_CODE_SUCCESS = 0 +TSDB_CODE_RPC_NETWORK_UNAVAIL = -2147483637 +TSDB_CODE_RPC_FQDN_ERROR = -2147483627 +TSDB_CODE_RPC_PORT_EADDRINUSE = -2147483625 +TSDB_CODE_RPC_BROKEN_LINK = -2147483624 +TSDB_CODE_RPC_TIMEOUT = -2147483623 +TSDB_CODE_RPC_SOMENODE_NOT_CONNECTED = -2147483616 +TSDB_CODE_RPC_MAX_SESSIONS = -2147483614 +TSDB_CODE_RPC_NETWORK_ERROR = -2147483613 +TSDB_CODE_RPC_NETWORK_BUSY = -2147483612 +TSDB_CODE_TIME_UNSYNCED = -2147483629 +TSDB_CODE_OPS_NOT_SUPPORT = -2147483392 +TSDB_CODE_OUT_OF_MEMORY = -2147483390 +TSDB_CODE_FILE_CORRUPTED = -2147483388 +TSDB_CODE_REF_FULL = -2147483386 +TSDB_CODE_REF_ID_REMOVED = -2147483385 +TSDB_CODE_REF_INVALID_ID = -2147483384 +TSDB_CODE_REF_ALREADY_EXIST = -2147483383 +TSDB_CODE_REF_NOT_EXIST = -2147483382 +TSDB_CODE_APP_ERROR = -2147483376 +TSDB_CODE_ACTION_IN_PROGRESS = -2147483375 +TSDB_CODE_OUT_OF_RANGE = -2147483374 +TSDB_CODE_INVALID_MSG = -2147483371 +TSDB_CODE_INVALID_MSG_LEN = -2147483370 +TSDB_CODE_INVALID_PTR = -2147483369 +TSDB_CODE_INVALID_PARA = -2147483368 +TSDB_CODE_INVALID_CFG = -2147483367 +TSDB_CODE_INVALID_OPTION = -2147483366 +TSDB_CODE_INVALID_JSON_FORMAT = -2147483365 +TSDB_CODE_INVALID_VERSION_NUMBER = -2147483364 +TSDB_CODE_INVALID_VERSION_STRING = -2147483363 +TSDB_CODE_VERSION_NOT_COMPATIBLE = -2147483362 +TSDB_CODE_CHECKSUM_ERROR = -2147483361 +TSDB_CODE_COMPRESS_ERROR = -2147483360 +TSDB_CODE_MSG_NOT_PROCESSED = -2147483359 +TSDB_CODE_CFG_NOT_FOUND = -2147483358 +TSDB_CODE_REPEAT_INIT = -2147483357 +TSDB_CODE_DUP_KEY = -2147483356 +TSDB_CODE_NEED_RETRY = -2147483355 +TSDB_CODE_OUT_OF_RPC_MEMORY_QUEUE = -2147483354 +TSDB_CODE_INVALID_TIMESTAMP = -2147483353 +TSDB_CODE_MSG_DECODE_ERROR = -2147483352 +TSDB_CODE_MSG_ENCODE_ERROR = -2147483347 +TSDB_CODE_NO_AVAIL_DISK = -2147483351 +TSDB_CODE_NOT_FOUND = -2147483350 +TSDB_CODE_NO_DISKSPACE = -2147483349 +TSDB_CODE_TIMEOUT_ERROR = -2147483348 +TSDB_CODE_NO_ENOUGH_DISKSPACE = -2147483346 +TSDB_CODE_APP_IS_STARTING = -2147483344 +TSDB_CODE_APP_IS_STOPPING = -2147483343 +TSDB_CODE_INVALID_DATA_FMT = -2147483342 +TSDB_CODE_INVALID_CFG_VALUE = -2147483341 +TSDB_CODE_IP_NOT_IN_WHITE_LIST = -2147483340 +TSDB_CODE_FAILED_TO_CONNECT_S3 = -2147483339 +TSDB_CODE_MSG_PREPROCESSED = -2147483338 +TSDB_CODE_TSC_INVALID_OPERATION = -2147483136 +TSDB_CODE_TSC_INVALID_QHANDLE = -2147483135 +TSDB_CODE_TSC_INVALID_TIME_STAMP = -2147483134 +TSDB_CODE_TSC_INVALID_VALUE = -2147483133 +TSDB_CODE_TSC_INVALID_VERSION = -2147483132 +TSDB_CODE_TSC_INVALID_IE = -2147483131 +TSDB_CODE_TSC_INVALID_FQDN = -2147483130 +TSDB_CODE_TSC_INVALID_USER_LENGTH = -2147483129 +TSDB_CODE_TSC_INVALID_PASS_LENGTH = -2147483128 +TSDB_CODE_TSC_INVALID_DB_LENGTH = -2147483127 +TSDB_CODE_TSC_INVALID_TABLE_ID_LENGTH = -2147483126 +TSDB_CODE_TSC_INVALID_CONNECTION = -2147483125 +TSDB_CODE_TSC_QUERY_CACHE_ERASED = -2147483122 +TSDB_CODE_TSC_QUERY_CANCELLED = -2147483121 +TSDB_CODE_TSC_SORTED_RES_TOO_MANY = -2147483120 +TSDB_CODE_TSC_ACTION_IN_PROGRESS = -2147483118 +TSDB_CODE_TSC_DISCONNECTED = -2147483117 +TSDB_CODE_TSC_NO_WRITE_AUTH = -2147483116 +TSDB_CODE_TSC_CONN_KILLED = -2147483115 +TSDB_CODE_TSC_SQL_SYNTAX_ERROR = -2147483114 +TSDB_CODE_TSC_DB_NOT_SELECTED = -2147483113 +TSDB_CODE_TSC_EXCEED_SQL_LIMIT = -2147483111 +TSDB_CODE_TSC_FILE_EMPTY = -2147483110 +TSDB_CODE_TSC_LINE_SYNTAX_ERROR = -2147483109 +TSDB_CODE_TSC_NO_META_CACHED = -2147483108 +TSDB_CODE_TSC_DUP_COL_NAMES = -2147483107 +TSDB_CODE_TSC_INVALID_TAG_LENGTH = -2147483106 +TSDB_CODE_TSC_INVALID_COLUMN_LENGTH = -2147483105 +TSDB_CODE_TSC_DUP_NAMES = -2147483104 +TSDB_CODE_TSC_INVALID_JSON = -2147483103 +TSDB_CODE_TSC_INVALID_JSON_TYPE = -2147483102 +TSDB_CODE_TSC_VALUE_OUT_OF_RANGE = -2147483100 +TSDB_CODE_TSC_INVALID_INPUT = -2147483095 +TSDB_CODE_TSC_STMT_API_ERROR = -2147483094 +TSDB_CODE_TSC_STMT_TBNAME_ERROR = -2147483093 +TSDB_CODE_TSC_STMT_CLAUSE_ERROR = -2147483092 +TSDB_CODE_TSC_QUERY_KILLED = -2147483091 +TSDB_CODE_TSC_NO_EXEC_NODE = -2147483090 +TSDB_CODE_TSC_NOT_STABLE_ERROR = -2147483089 +TSDB_CODE_TSC_STMT_CACHE_ERROR = -2147483088 +TSDB_CODE_TSC_ENCODE_PARAM_ERROR = -2147483087 +TSDB_CODE_TSC_ENCODE_PARAM_NULL = -2147483086 +TSDB_CODE_TSC_COMPRESS_PARAM_ERROR = -2147483085 +TSDB_CODE_TSC_COMPRESS_LEVEL_ERROR = -2147483084 +TSDB_CODE_TSC_INTERNAL_ERROR = -2147482881 +TSDB_CODE_MND_REQ_REJECTED = -2147482880 +TSDB_CODE_MND_NO_RIGHTS = -2147482877 +TSDB_CODE_MND_INVALID_SHOWOBJ = -2147482869 +TSDB_CODE_MND_INVALID_QUERY_ID = -2147482868 +TSDB_CODE_MND_INVALID_CONN_ID = -2147482866 +TSDB_CODE_MND_USER_DISABLED = -2147482859 +TSDB_CODE_MND_INVALID_PLATFORM = -2147482858 +TSDB_CODE_SDB_OBJ_ALREADY_THERE = -2147482848 +TSDB_CODE_SDB_INVALID_TABLE_TYPE = -2147482846 +TSDB_CODE_SDB_OBJ_NOT_THERE = -2147482845 +TSDB_CODE_SDB_INVALID_ACTION_TYPE = -2147482842 +TSDB_CODE_SDB_INVALID_DATA_VER = -2147482840 +TSDB_CODE_SDB_INVALID_DATA_LEN = -2147482839 +TSDB_CODE_SDB_INVALID_DATA_CONTENT = -2147482838 +TSDB_CODE_SDB_OBJ_CREATING = -2147482836 +TSDB_CODE_SDB_OBJ_DROPPING = -2147482835 +TSDB_CODE_MND_DNODE_ALREADY_EXIST = -2147482832 +TSDB_CODE_MND_DNODE_NOT_EXIST = -2147482831 +TSDB_CODE_MND_VGROUP_NOT_EXIST = -2147482830 +TSDB_CODE_MND_CANT_DROP_LEADER = -2147482829 +TSDB_CODE_MND_NO_ENOUGH_DNODES = -2147482828 +TSDB_CODE_MND_INVALID_CLUSTER_CFG = -2147482827 +TSDB_CODE_MND_VGROUP_NOT_IN_DNODE = -2147482824 +TSDB_CODE_MND_VGROUP_ALREADY_IN_DNODE = -2147482823 +TSDB_CODE_MND_INVALID_CLUSTER_ID = -2147482821 +TSDB_CODE_MND_ACCT_ALREADY_EXIST = -2147482816 +TSDB_CODE_MND_INVALID_ACCT_OPTION = -2147482814 +TSDB_CODE_MND_ACCT_EXPIRED = -2147482813 +TSDB_CODE_MND_ACCT_NOT_EXIST = -2147482812 +TSDB_CODE_MND_TOO_MANY_ACCTS = -2147482811 +TSDB_CODE_MND_USER_ALREADY_EXIST = -2147482800 +TSDB_CODE_MND_USER_NOT_EXIST = -2147482799 +TSDB_CODE_MND_INVALID_USER_FORMAT = -2147482798 +TSDB_CODE_MND_USER_NOT_AVAILABLE = -2147482792 +TSDB_CODE_MND_INVALID_PASS_FORMAT = -2147482797 +TSDB_CODE_MND_NO_USER_FROM_CONN = -2147482796 +TSDB_CODE_MND_TOO_MANY_USERS = -2147482795 +TSDB_CODE_MND_INVALID_ALTER_OPER = -2147482794 +TSDB_CODE_MND_AUTH_FAILURE = -2147482793 +TSDB_CODE_MND_PRIVILEDGE_EXIST = -2147482791 +TSDB_CODE_MND_USER_HOST_EXIST = -2147482790 +TSDB_CODE_MND_USER_HOST_NOT_EXIST = -2147482789 +TSDB_CODE_MND_TOO_MANY_USER_HOST = -2147482788 +TSDB_CODE_MND_USER_LOCAL_HOST_NOT_DROP = -2147482787 +TSDB_CODE_MND_STB_ALREADY_EXIST = -2147482784 +TSDB_CODE_MND_STB_NOT_EXIST = -2147482782 +TSDB_CODE_MND_TOO_MANY_TAGS = -2147482780 +TSDB_CODE_MND_TOO_MANY_COLUMNS = -2147482779 +TSDB_CODE_MND_TAG_ALREADY_EXIST = -2147482775 +TSDB_CODE_MND_TAG_NOT_EXIST = -2147482774 +TSDB_CODE_MND_COLUMN_ALREADY_EXIST = -2147482773 +TSDB_CODE_MND_COLUMN_NOT_EXIST = -2147482772 +TSDB_CODE_MND_INVALID_STB_OPTION = -2147482770 +TSDB_CODE_MND_INVALID_ROW_BYTES = -2147482769 +TSDB_CODE_MND_FIELD_VALUE_OVERFLOW = -2147482768 +TSDB_CODE_MND_COLUMN_COMPRESS_ALREADY_EXIST = -2147482632 +TSDB_CODE_MND_INVALID_FUNC_NAME = -2147482768 +TSDB_CODE_MND_INVALID_FUNC_CODE = -2147482766 +TSDB_CODE_MND_FUNC_ALREADY_EXIST = -2147482765 +TSDB_CODE_MND_FUNC_NOT_EXIST = -2147482764 +TSDB_CODE_MND_INVALID_FUNC_BUFSIZE = -2147482763 +TSDB_CODE_MND_INVALID_FUNC_COMMENT = -2147482760 +TSDB_CODE_MND_INVALID_FUNC_RETRIEVE = -2147482759 +TSDB_CODE_MND_TAG_INDEX_ALREADY_EXIST = -2147482493 +TSDB_CODE_MND_TAG_INDEX_NOT_EXIST = -2147482492 +TSDB_CODE_MND_DB_NOT_SELECTED = -2147482752 +TSDB_CODE_MND_DB_ALREADY_EXIST = -2147482751 +TSDB_CODE_MND_INVALID_DB_OPTION = -2147482750 +TSDB_CODE_MND_INVALID_DB = -2147482749 +TSDB_CODE_MND_TOO_MANY_DATABASES = -2147482747 +TSDB_CODE_MND_DB_IN_DROPPING = -2147482746 +TSDB_CODE_MND_DB_NOT_EXIST = -2147482744 +TSDB_CODE_MND_INVALID_DB_ACCT = -2147482743 +TSDB_CODE_MND_DB_OPTION_UNCHANGED = -2147482742 +TSDB_CODE_MND_DB_INDEX_NOT_EXIST = -2147482741 +TSDB_CODE_MND_DB_RETENTION_PERIOD_ZERO = -2147482740 +TSDB_CODE_MND_INVALID_ENCRYPT_KEY = -2147482738 +TSDB_CODE_MND_DB_IN_CREATING = -2147482730 +TSDB_CODE_MND_INVALID_SYS_TABLENAME = -2147482726 +TSDB_CODE_MND_ENCRYPT_NOT_ALLOW_CHANGE = -2147482725 +TSDB_CODE_MND_MNODE_ALREADY_EXIST = -2147482720 +TSDB_CODE_MND_MNODE_NOT_EXIST = -2147482719 +TSDB_CODE_MND_QNODE_ALREADY_EXIST = -2147482718 +TSDB_CODE_MND_QNODE_NOT_EXIST = -2147482717 +TSDB_CODE_MND_SNODE_ALREADY_EXIST = -2147482716 +TSDB_CODE_MND_SNODE_NOT_EXIST = -2147482715 +TSDB_CODE_MND_TOO_FEW_MNODES = -2147482712 +TSDB_CODE_MND_TOO_MANY_MNODES = -2147482711 +TSDB_CODE_MND_ARBGROUP_ALREADY_EXIST = -2147482710 +TSDB_CODE_MND_ARBGROUP_NOT_EXIST = -2147482709 +TSDB_CODE_MND_ARB_TOKEN_MISMATCH = -2147482708 +TSDB_CODE_MND_TOO_MANY_DNODES = -2147482704 +TSDB_CODE_MND_NO_ENOUGH_MEM_IN_DNODE = -2147482703 +TSDB_CODE_MND_INVALID_DNODE_CFG = -2147482702 +TSDB_CODE_MND_INVALID_DNODE_EP = -2147482701 +TSDB_CODE_MND_INVALID_DNODE_ID = -2147482700 +TSDB_CODE_MND_VGROUP_UN_CHANGED = -2147482699 +TSDB_CODE_MND_HAS_OFFLINE_DNODE = -2147482698 +TSDB_CODE_MND_INVALID_REPLICA = -2147482697 +TSDB_CODE_MND_NO_ENOUGH_VNODES = -2147482694 +TSDB_CODE_MND_NAME_CONFLICT_WITH_TOPIC = -2147482688 +TSDB_CODE_MND_TOO_MANY_STBS = -2147482687 +TSDB_CODE_MND_INVALID_STB_ALTER_OPTION = -2147482686 +TSDB_CODE_MND_STB_OPTION_UNCHNAGED = -2147482685 +TSDB_CODE_MND_FIELD_CONFLICT_WITH_TOPIC = -2147482684 +TSDB_CODE_MND_SINGLE_STB_MODE_DB = -2147482683 +TSDB_CODE_MND_INVALID_SCHEMA_VER = -2147482682 +TSDB_CODE_MND_STABLE_UID_NOT_MATCH = -2147482681 +TSDB_CODE_MND_FIELD_CONFLICT_WITH_TSMA = -2147482680 +TSDB_CODE_MND_DNODE_IN_CREATING = -2147482696 +TSDB_CODE_MND_DNODE_IN_DROPPING = -2147482695 +TSDB_CODE_MND_TRANS_ALREADY_EXIST = -2147482672 +TSDB_CODE_MND_TRANS_NOT_EXIST = -2147482671 +TSDB_CODE_MND_TRANS_INVALID_STAGE = -2147482670 +TSDB_CODE_MND_TRANS_CONFLICT = -2147482669 +TSDB_CODE_MND_TRANS_CLOG_IS_NULL = -2147482668 +TSDB_CODE_MND_TRANS_NETWORK_UNAVAILL = -2147482667 +TSDB_CODE_MND_LAST_TRANS_NOT_FINISHED = -2147482666 +TSDB_CODE_MND_TRANS_SYNC_TIMEOUT = -2147482665 +TSDB_CODE_MND_TRANS_CTX_SWITCH = -2147482664 +TSDB_CODE_MND_TRANS_UNKNOW_ERROR = -2147482657 +TSDB_CODE_MND_TOPIC_ALREADY_EXIST = -2147482656 +TSDB_CODE_MND_TOPIC_NOT_EXIST = -2147482655 +TSDB_CODE_MND_TOO_MANY_TOPICS = -2147482654 +TSDB_CODE_MND_INVALID_TOPIC = -2147482653 +TSDB_CODE_MND_INVALID_TOPIC_QUERY = -2147482652 +TSDB_CODE_MND_INVALID_TOPIC_OPTION = -2147482651 +TSDB_CODE_MND_CONSUMER_NOT_EXIST = -2147482650 +TSDB_CODE_MND_TOPIC_OPTION_UNCHNAGED = -2147482649 +TSDB_CODE_MND_SUBSCRIBE_NOT_EXIST = -2147482648 +TSDB_CODE_MND_OFFSET_NOT_EXIST = -2147482647 +TSDB_CODE_MND_CONSUMER_NOT_READY = -2147482646 +TSDB_CODE_MND_TOPIC_SUBSCRIBED = -2147482645 +TSDB_CODE_MND_CGROUP_USED = -2147482644 +TSDB_CODE_MND_TOPIC_MUST_BE_DELETED = -2147482643 +TSDB_CODE_MND_INVALID_SUB_OPTION = -2147482642 +TSDB_CODE_MND_IN_REBALANCE = -2147482641 +TSDB_CODE_MND_STREAM_ALREADY_EXIST = -2147482640 +TSDB_CODE_MND_STREAM_NOT_EXIST = -2147482639 +TSDB_CODE_MND_INVALID_STREAM_OPTION = -2147482638 +TSDB_CODE_MND_STREAM_MUST_BE_DELETED = -2147482637 +TSDB_CODE_MND_MULTI_REPLICA_SOURCE_DB = -2147482635 +TSDB_CODE_MND_TOO_MANY_STREAMS = -2147482634 +TSDB_CODE_MND_INVALID_TARGET_TABLE = -2147482633 +TSDB_CODE_MND_SMA_ALREADY_EXIST = -2147482496 +TSDB_CODE_MND_SMA_NOT_EXIST = -2147482495 +TSDB_CODE_MND_INVALID_SMA_OPTION = -2147482494 +TSDB_CODE_MND_INVALID_DROP_TSMA = -2147482491 +TSDB_CODE_MND_MAX_TSMA_NUM_EXCEEDED = -2147482490 +TSDB_CODE_MND_VIEW_ALREADY_EXIST = -2147482464 +TSDB_CODE_MND_VIEW_NOT_EXIST = -2147482463 +TSDB_CODE_MND_INVALID_COMPACT_ID = -2147482447 +TSDB_CODE_MND_COMPACT_DETAIL_NOT_EXIST = -2147482446 +TSDB_CODE_DNODE_OFFLINE = -2147482616 +TSDB_CODE_MNODE_NOT_FOUND = -2147482614 +TSDB_CODE_MNODE_ALREADY_DEPLOYED = -2147482615 +TSDB_CODE_MNODE_NOT_DEPLOYED = -2147482613 +TSDB_CODE_QNODE_NOT_FOUND = -2147482611 +TSDB_CODE_QNODE_ALREADY_DEPLOYED = -2147482612 +TSDB_CODE_QNODE_NOT_DEPLOYED = -2147482610 +TSDB_CODE_SNODE_NOT_FOUND = -2147482608 +TSDB_CODE_SNODE_ALREADY_DEPLOYED = -2147482609 +TSDB_CODE_SNODE_NOT_DEPLOYED = -2147482607 +TSDB_CODE_MNODE_NOT_CATCH_UP = -2147482606 +TSDB_CODE_MNODE_ALREADY_IS_VOTER = -2147482605 +TSDB_CODE_MNODE_ONLY_TWO_MNODE = -2147482604 +TSDB_CODE_MNODE_NO_NEED_RESTORE = -2147482603 +TSDB_CODE_DNODE_ONLY_USE_WHEN_OFFLINE = -2147482602 +TSDB_CODE_DNODE_NO_MACHINE_CODE = -2147482601 +TSDB_CODE_DNODE_NO_ENCRYPT_KEY = -2147482600 +TSDB_CODE_DNODE_INVALID_ENCRYPT_CONFIG = -2147482599 +TSDB_CODE_DNODE_INVALID_ENCRYPTKEY = -2147482592 +TSDB_CODE_DNODE_ENCRYPTKEY_CHANGED = -2147482591 +TSDB_CODE_DNODE_INVALID_ENCRYPT_KLEN = -2147482590 +TSDB_CODE_DNODE_INVALID_STATUS_INTERVAL = -2147482589 +TSDB_CODE_DNODE_INVALID_TIMEZONE = -2147482588 +TSDB_CODE_DNODE_INVALID_CHARSET = -2147482587 +TSDB_CODE_DNODE_INVALID_LOCALE = -2147482586 +TSDB_CODE_DNODE_INVALID_TTL_CHG_ON_WR = -2147482585 +TSDB_CODE_DNODE_INVALID_EN_WHITELIST = -2147482584 +TSDB_CODE_VND_INVALID_VGROUP_ID = -2147482365 +TSDB_CODE_VND_INIT_FAILED = -2147482364 +TSDB_CODE_VND_NO_WRITE_AUTH = -2147482350 +TSDB_CODE_VND_NOT_EXIST = -2147482336 +TSDB_CODE_VND_ALREADY_EXIST = -2147482335 +TSDB_CODE_VND_HASH_MISMATCH = -2147482334 +TSDB_CODE_VND_INVALID_TABLE_ACTION = -2147482332 +TSDB_CODE_VND_COL_ALREADY_EXISTS = -2147482331 +TSDB_CODE_VND_COL_NOT_EXISTS = -2147482330 +TSDB_CODE_VND_COL_SUBSCRIBED = -2147482329 +TSDB_CODE_VND_NO_AVAIL_BUFPOOL = -2147482328 +TSDB_CODE_VND_STOPPED = -2147482327 +TSDB_CODE_VND_DUP_REQUEST = -2147482320 +TSDB_CODE_VND_QUERY_BUSY = -2147482319 +TSDB_CODE_VND_NOT_CATCH_UP = -2147482318 +TSDB_CODE_VND_ALREADY_IS_VOTER = -2147482317 +TSDB_CODE_VND_DIR_ALREADY_EXIST = -2147482316 +TSDB_CODE_VND_META_DATA_UNSAFE_DELETE = -2147482315 +TSDB_CODE_VND_ARB_NOT_SYNCED = -2147482314 +TSDB_CODE_VND_COLUMN_COMPRESS_ALREADY_EXIST = -2147482314 +TSDB_CODE_TDB_INVALID_TABLE_ID = -2147482112 +TSDB_CODE_TDB_INVALID_TABLE_TYPE = -2147482111 +TSDB_CODE_TDB_IVD_TB_SCHEMA_VERSION = -2147482110 +TSDB_CODE_TDB_TABLE_ALREADY_EXIST = -2147482109 +TSDB_CODE_TDB_INVALID_CONFIG = -2147482108 +TSDB_CODE_TDB_INIT_FAILED = -2147482107 +TSDB_CODE_TDB_NO_DISK_PERMISSIONS = -2147482105 +TSDB_CODE_TDB_TAG_VER_OUT_OF_DATE = -2147482102 +TSDB_CODE_TDB_TIMESTAMP_OUT_OF_RANGE = -2147482101 +TSDB_CODE_TDB_SUBMIT_MSG_MSSED_UP = -2147482100 +TSDB_CODE_TDB_INVALID_ACTION = -2147482099 +TSDB_CODE_TDB_INVALID_CREATE_TB_MSG = -2147482098 +TSDB_CODE_TDB_NO_TABLE_DATA_IN_MEM = -2147482097 +TSDB_CODE_TDB_FILE_ALREADY_EXISTS = -2147482096 +TSDB_CODE_TDB_TABLE_RECONFIGURE = -2147482095 +TSDB_CODE_TDB_IVD_CREATE_TABLE_INFO = -2147482094 +TSDB_CODE_TDB_NO_AVAIL_DISK = -2147482093 +TSDB_CODE_TDB_MESSED_MSG = -2147482092 +TSDB_CODE_TDB_IVLD_TAG_VAL = -2147482091 +TSDB_CODE_TDB_NO_CACHE_LAST_ROW = -2147482090 +TSDB_CODE_TDB_TABLE_NOT_EXIST = -2147482088 +TSDB_CODE_TDB_STB_ALREADY_EXIST = -2147482087 +TSDB_CODE_TDB_STB_NOT_EXIST = -2147482086 +TSDB_CODE_TDB_INVALID_TABLE_SCHEMA_VER = -2147482085 +TSDB_CODE_TDB_TDB_ENV_OPEN_ERROR = -2147482084 +TSDB_CODE_TDB_TABLE_IN_OTHER_STABLE = -2147482083 +TSDB_CODE_QRY_INVALID_QHANDLE = -2147481856 +TSDB_CODE_QRY_INVALID_MSG = -2147481855 +TSDB_CODE_QRY_DUP_JOIN_KEY = -2147481851 +TSDB_CODE_QRY_EXCEED_TAGS_LIMIT = -2147481850 +TSDB_CODE_QRY_NOT_READY = -2147481849 +TSDB_CODE_QRY_HAS_RSP = -2147481848 +TSDB_CODE_QRY_IN_EXEC = -2147481847 +TSDB_CODE_QRY_TOO_MANY_TIMEWINDOW = -2147481846 +TSDB_CODE_QRY_NOT_ENOUGH_BUFFER = -2147481845 +TSDB_CODE_QRY_INCONSISTAN = -2147481844 +TSDB_CODE_QRY_SYS_ERROR = -2147481843 +TSDB_CODE_QRY_INVALID_TIME_CONDITION = -2147481842 +TSDB_CODE_QRY_INVALID_INPUT = -2147481841 +TSDB_CODE_QRY_SCH_NOT_EXIST = -2147481824 +TSDB_CODE_QRY_TASK_NOT_EXIST = -2147481823 +TSDB_CODE_QRY_TASK_ALREADY_EXIST = -2147481822 +TSDB_CODE_QRY_TASK_CTX_NOT_EXIST = -2147481821 +TSDB_CODE_QRY_TASK_CANCELLED = -2147481820 +TSDB_CODE_QRY_TASK_DROPPED = -2147481819 +TSDB_CODE_QRY_TASK_CANCELLING = -2147481818 +TSDB_CODE_QRY_TASK_DROPPING = -2147481817 +TSDB_CODE_QRY_DUPLICATED_OPERATION = -2147481816 +TSDB_CODE_QRY_TASK_MSG_ERROR = -2147481815 +TSDB_CODE_QRY_JOB_FREED = -2147481814 +TSDB_CODE_QRY_TASK_STATUS_ERROR = -2147481813 +TSDB_CODE_QRY_JSON_IN_ERROR = -2147481812 +TSDB_CODE_QRY_JSON_NOT_SUPPORT_ERROR = -2147481811 +TSDB_CODE_QRY_JSON_IN_GROUP_ERROR = -2147481810 +TSDB_CODE_QRY_JOB_NOT_EXIST = -2147481809 +TSDB_CODE_QRY_QWORKER_QUIT = -2147481808 +TSDB_CODE_QRY_GEO_NOT_SUPPORT_ERROR = -2147481807 +TSDB_CODE_QRY_INVALID_WINDOW_CONDITION = -2147481838 +TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR = -2147481806 +TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR = -2147481806 +TSDB_CODE_QRY_INVALID_JOIN_CONDITION = -2147481805 +TSDB_CODE_GRANT_EXPIRED = -2147481600 +TSDB_CODE_GRANT_DNODE_LIMITED = -2147481599 +TSDB_CODE_GRANT_ACCT_LIMITED = -2147481598 +TSDB_CODE_GRANT_TIMESERIES_LIMITED = -2147481597 +TSDB_CODE_GRANT_DB_LIMITED = -2147481596 +TSDB_CODE_GRANT_USER_LIMITED = -2147481595 +TSDB_CODE_GRANT_CONN_LIMITED = -2147481594 +TSDB_CODE_GRANT_STREAM_LIMITED = -2147481593 +TSDB_CODE_GRANT_SPEED_LIMITED = -2147481592 +TSDB_CODE_GRANT_STORAGE_LIMITED = -2147481591 +TSDB_CODE_GRANT_SUBSCRIPTION_LIMITED = -2147481590 +TSDB_CODE_GRANT_CPU_LIMITED = -2147481589 +TSDB_CODE_GRANT_STABLE_LIMITED = -2147481588 +TSDB_CODE_GRANT_TABLE_LIMITED = -2147481587 +TSDB_CODE_GRANT_PAR_IVLD_ACTIVE = -2147481586 +TSDB_CODE_GRANT_PAR_IVLD_KEY = -2147481585 +TSDB_CODE_GRANT_PAR_DEC_IVLD_KEY = -2147481584 +TSDB_CODE_GRANT_PAR_DEC_IVLD_KLEN = -2147481583 +TSDB_CODE_GRANT_GEN_IVLD_KEY = -2147481582 +TSDB_CODE_GRANT_GEN_ACTIVE_LEN = -2147481581 +TSDB_CODE_GRANT_GEN_ENC_IVLD_KLEN = -2147481580 +TSDB_CODE_GRANT_PAR_IVLD_DIST = -2147481579 +TSDB_CODE_GRANT_UNLICENSED_CLUSTER = -2147481578 +TSDB_CODE_GRANT_LACK_OF_BASIC = -2147481577 +TSDB_CODE_GRANT_OBJ_NOT_EXIST = -2147481576 +TSDB_CODE_GRANT_LAST_ACTIVE_NOT_FOUND = -2147481575 +TSDB_CODE_GRANT_MACHINES_MISMATCH = -2147481568 +TSDB_CODE_GRANT_OPT_EXPIRE_TOO_LARGE = -2147481567 +TSDB_CODE_GRANT_DUPLICATED_ACTIVE = -2147481566 +TSDB_CODE_GRANT_VIEW_LIMITED = -2147481565 +TSDB_CODE_GRANT_BASIC_EXPIRED = -2147481564 +TSDB_CODE_GRANT_STREAM_EXPIRED = -2147481563 +TSDB_CODE_GRANT_SUBSCRIPTION_EXPIRED = -2147481562 +TSDB_CODE_GRANT_VIEW_EXPIRED = -2147481561 +TSDB_CODE_GRANT_AUDIT_EXPIRED = -2147481560 +TSDB_CODE_GRANT_CSV_EXPIRED = -2147481559 +TSDB_CODE_GRANT_MULTI_STORAGE_EXPIRED = -2147481558 +TSDB_CODE_GRANT_OBJECT_STROAGE_EXPIRED = -2147481557 +TSDB_CODE_GRANT_DUAL_REPLICA_HA_EXPIRED = -2147481556 +TSDB_CODE_GRANT_DB_ENCRYPTION_EXPIRED = -2147481555 +TSDB_CODE_SYN_TIMEOUT = -2147481341 +TSDB_CODE_SYN_MISMATCHED_SIGNATURE = -2147481337 +TSDB_CODE_SYN_NOT_LEADER = -2147481332 +TSDB_CODE_SYN_NEW_CONFIG_ERROR = -2147481329 +TSDB_CODE_SYN_PROPOSE_NOT_READY = -2147481327 +TSDB_CODE_SYN_RESTORING = -2147481324 +TSDB_CODE_SYN_INVALID_SNAPSHOT_MSG = -2147481323 +TSDB_CODE_SYN_BUFFER_FULL = -2147481322 +TSDB_CODE_SYN_WRITE_STALL = -2147481321 +TSDB_CODE_SYN_NEGOTIATION_WIN_FULL = -2147481320 +TSDB_CODE_SYN_INTERNAL_ERROR = -2147481089 +TSDB_CODE_TQ_INVALID_CONFIG = -2147481088 +TSDB_CODE_TQ_INIT_FAILED = -2147481087 +TSDB_CODE_TQ_NO_DISK_PERMISSIONS = -2147481085 +TSDB_CODE_TQ_FILE_ALREADY_EXISTS = -2147481082 +TSDB_CODE_TQ_FAILED_TO_CREATE_DIR = -2147481081 +TSDB_CODE_TQ_META_NO_SUCH_KEY = -2147481080 +TSDB_CODE_TQ_META_KEY_NOT_IN_TXN = -2147481079 +TSDB_CODE_TQ_META_KEY_DUP_IN_TXN = -2147481078 +TSDB_CODE_TQ_GROUP_NOT_SET = -2147481077 +TSDB_CODE_TQ_TABLE_SCHEMA_NOT_FOUND = -2147481076 +TSDB_CODE_TQ_NO_COMMITTED_OFFSET = -2147481075 +TSDB_CODE_WAL_FILE_CORRUPTED = -2147479551 +TSDB_CODE_WAL_INVALID_VER = -2147479549 +TSDB_CODE_WAL_LOG_NOT_EXIST = -2147479547 +TSDB_CODE_WAL_CHKSUM_MISMATCH = -2147479546 +TSDB_CODE_WAL_LOG_INCOMPLETE = -2147479545 +TSDB_CODE_FS_INVLD_CFG = -2147474943 +TSDB_CODE_FS_TOO_MANY_MOUNT = -2147474942 +TSDB_CODE_FS_DUP_PRIMARY = -2147474941 +TSDB_CODE_FS_NO_PRIMARY_DISK = -2147474940 +TSDB_CODE_FS_NO_MOUNT_AT_TIER = -2147474939 +TSDB_CODE_FS_FILE_ALREADY_EXISTS = -2147474938 +TSDB_CODE_FS_INVLD_LEVEL = -2147474937 +TSDB_CODE_FS_NO_VALID_DISK = -2147474936 +TSDB_CODE_CTG_INTERNAL_ERROR = -2147474432 +TSDB_CODE_CTG_INVALID_INPUT = -2147474431 +TSDB_CODE_CTG_NOT_READY = -2147474430 +TSDB_CODE_CTG_SYS_ERROR = -2147474429 +TSDB_CODE_CTG_DB_DROPPED = -2147474428 +TSDB_CODE_CTG_OUT_OF_SERVICE = -2147474427 +TSDB_CODE_CTG_VG_META_MISMATCH = -2147474426 +TSDB_CODE_CTG_EXIT = -2147474425 +TSDB_CODE_QW_MSG_ERROR = -2147474096 +TSDB_CODE_SCH_STATUS_ERROR = -2147474175 +TSDB_CODE_SCH_INTERNAL_ERROR = -2147474174 +TSDB_CODE_SCH_TIMEOUT_ERROR = -2147474172 +TSDB_CODE_SCH_JOB_IS_DROPPING = -2147474171 +TSDB_CODE_SCH_JOB_NOT_EXISTS = -2147474170 +TSDB_CODE_PAR_SYNTAX_ERROR = -2147473920 +TSDB_CODE_PAR_INCOMPLETE_SQL = -2147473919 +TSDB_CODE_PAR_INVALID_COLUMN = -2147473918 +TSDB_CODE_PAR_TABLE_NOT_EXIST = -2147473917 +TSDB_CODE_PAR_AMBIGUOUS_COLUMN = -2147473916 +TSDB_CODE_PAR_WRONG_VALUE_TYPE = -2147473915 +TSDB_CODE_PAR_ILLEGAL_USE_AGG_FUNCTION = -2147473912 +TSDB_CODE_PAR_WRONG_NUMBER_OF_SELECT = -2147473911 +TSDB_CODE_PAR_GROUPBY_LACK_EXPRESSION = -2147473910 +TSDB_CODE_PAR_NOT_SELECTED_EXPRESSION = -2147473909 +TSDB_CODE_PAR_NOT_SINGLE_GROUP = -2147473908 +TSDB_CODE_PAR_TAGS_NOT_MATCHED = -2147473907 +TSDB_CODE_PAR_INVALID_TAG_NAME = -2147473906 +TSDB_CODE_PAR_NAME_OR_PASSWD_TOO_LONG = -2147473904 +TSDB_CODE_PAR_PASSWD_EMPTY = -2147473903 +TSDB_CODE_PAR_INVALID_PORT = -2147473902 +TSDB_CODE_PAR_INVALID_ENDPOINT = -2147473901 +TSDB_CODE_PAR_EXPRIE_STATEMENT = -2147473900 +TSDB_CODE_PAR_INTER_VALUE_TOO_SMALL = -2147473899 +TSDB_CODE_PAR_INTER_VALUE_TOO_BIG = -2147473893 +TSDB_CODE_PAR_DB_NOT_SPECIFIED = -2147473898 +TSDB_CODE_PAR_INVALID_IDENTIFIER_NAME = -2147473897 +TSDB_CODE_PAR_CORRESPONDING_STABLE_ERR = -2147473896 +TSDB_CODE_PAR_INVALID_DB_OPTION = -2147473895 +TSDB_CODE_PAR_INVALID_TABLE_OPTION = -2147473894 +TSDB_CODE_PAR_GROUPBY_WINDOW_COEXIST = -2147473884 +TSDB_CODE_PAR_AGG_FUNC_NESTING = -2147473881 +TSDB_CODE_PAR_INVALID_STATE_WIN_TYPE = -2147473880 +TSDB_CODE_PAR_INVALID_STATE_WIN_COL = -2147473879 +TSDB_CODE_PAR_INVALID_STATE_WIN_TABLE = -2147473878 +TSDB_CODE_PAR_INTER_SESSION_GAP = -2147473877 +TSDB_CODE_PAR_INTER_SESSION_COL = -2147473876 +TSDB_CODE_PAR_INTER_OFFSET_NEGATIVE = -2147473875 +TSDB_CODE_PAR_INTER_OFFSET_UNIT = -2147473874 +TSDB_CODE_PAR_INTER_OFFSET_TOO_BIG = -2147473873 +TSDB_CODE_PAR_INTER_SLIDING_UNIT = -2147473872 +TSDB_CODE_PAR_INTER_SLIDING_TOO_BIG = -2147473871 +TSDB_CODE_PAR_INTER_SLIDING_TOO_SMALL = -2147473870 +TSDB_CODE_PAR_ONLY_ONE_JSON_TAG = -2147473869 +TSDB_CODE_PAR_INCORRECT_NUM_OF_COL = -2147473868 +TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL = -2147473867 +TSDB_CODE_PAR_OFFSET_LESS_ZERO = -2147473865 +TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_GROUP_BY = -2147473864 +TSDB_CODE_PAR_INVALID_TOPIC_QUERY = -2147473863 +TSDB_CODE_PAR_INVALID_DROP_STABLE = -2147473862 +TSDB_CODE_PAR_INVALID_FILL_TIME_RANGE = -2147473861 +TSDB_CODE_PAR_DUPLICATED_COLUMN = -2147473860 +TSDB_CODE_PAR_INVALID_TAGS_LENGTH = -2147473859 +TSDB_CODE_PAR_INVALID_ROW_LENGTH = -2147473858 +TSDB_CODE_PAR_INVALID_COLUMNS_NUM = -2147473857 +TSDB_CODE_PAR_TOO_MANY_COLUMNS = -2147473856 +TSDB_CODE_PAR_INVALID_FIRST_COLUMN = -2147473855 +TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN = -2147473854 +TSDB_CODE_PAR_INVALID_TAGS_NUM = -2147473853 +TSDB_CODE_PAR_PERMISSION_DENIED = -2147473852 +TSDB_CODE_PAR_INVALID_STREAM_QUERY = -2147473851 +TSDB_CODE_PAR_INVALID_INTERNAL_PK = -2147473850 +TSDB_CODE_PAR_INVALID_TIMELINE_FUNC = -2147473849 +TSDB_CODE_PAR_INVALID_PASSWD = -2147473848 +TSDB_CODE_PAR_INVALID_ALTER_TABLE = -2147473847 +TSDB_CODE_PAR_CANNOT_DROP_PRIMARY_KEY = -2147473846 +TSDB_CODE_PAR_INVALID_MODIFY_COL = -2147473845 +TSDB_CODE_PAR_INVALID_TBNAME = -2147473844 +TSDB_CODE_PAR_INVALID_FUNCTION_NAME = -2147473843 +TSDB_CODE_PAR_COMMENT_TOO_LONG = -2147473842 +TSDB_CODE_PAR_NOT_ALLOWED_FUNC = -2147473841 +TSDB_CODE_PAR_NOT_ALLOWED_WIN_QUERY = -2147473840 +TSDB_CODE_PAR_INVALID_DROP_COL = -2147473839 +TSDB_CODE_PAR_INVALID_COL_JSON = -2147473838 +TSDB_CODE_PAR_VALUE_TOO_LONG = -2147473837 +TSDB_CODE_PAR_INVALID_DELETE_WHERE = -2147473835 +TSDB_CODE_PAR_INVALID_REDISTRIBUTE_VG = -2147473834 +TSDB_CODE_PAR_FILL_NOT_ALLOWED_FUNC = -2147473833 +TSDB_CODE_PAR_INVALID_WINDOW_PC = -2147473832 +TSDB_CODE_PAR_WINDOW_NOT_ALLOWED_FUNC = -2147473831 +TSDB_CODE_PAR_STREAM_NOT_ALLOWED_FUNC = -2147473830 +TSDB_CODE_PAR_GROUP_BY_NOT_ALLOWED_FUNC = -2147473829 +TSDB_CODE_PAR_INVALID_INTERP_CLAUSE = -2147473827 +TSDB_CODE_PAR_NO_VALID_FUNC_IN_WIN = -2147473826 +TSDB_CODE_PAR_ONLY_SUPPORT_SINGLE_TABLE = -2147473825 +TSDB_CODE_PAR_INVALID_SMA_INDEX = -2147473824 +TSDB_CODE_PAR_INVALID_SELECTED_EXPR = -2147473823 +TSDB_CODE_PAR_GET_META_ERROR = -2147473822 +TSDB_CODE_PAR_NOT_UNIQUE_TABLE_ALIAS = -2147473821 +TSDB_CODE_PAR_SYSTABLE_NOT_ALLOWED_FUNC = -2147473816 +TSDB_CODE_PAR_SYSTABLE_NOT_ALLOWED = -2147473815 +TSDB_CODE_PAR_INVALID_VARBINARY = -2147473814 +TSDB_CODE_PAR_INVALID_IP_RANGE = -2147473813 +TSDB_CODE_PAR_INVALID_STREAM_QUERY = -2147473851 +TSDB_CODE_PAR_INVALID_VIEW_QUERY = -2147473812 +TSDB_CODE_PAR_COL_QUERY_MISMATCH = -2147473811 +TSDB_CODE_PAR_VIEW_CONFLICT_WITH_TABLE = -2147473810 +TSDB_CODE_PAR_NOT_SUPPORT_MULTI_RESULT = -2147473808 +TSDB_CODE_PAR_INVALID_WJOIN_HAVING_EXPR = -2147473806 +TSDB_CODE_PAR_GRP_WINDOW_NOT_ALLOWED = -2147473807 +TSDB_CODE_PAR_INVALID_WIN_OFFSET_UNIT = -2147473805 +TSDB_CODE_PAR_VALID_PRIM_TS_REQUIRED = -2147473804 +TSDB_CODE_PAR_ORDERBY_UNKNOWN_EXPR = -2147473803 +TSDB_CODE_PAR_NOT_WIN_FUNC = -2147473802 +TSDB_CODE_PAR_TAG_IS_PRIMARY_KEY = -2147473801 +TSDB_CODE_PAR_SECOND_COL_PK = -2147473800 +TSDB_CODE_PAR_COL_PK_TYPE = -2147473799 +TSDB_CODE_PAR_INVALID_PK_OP = -2147473798 +TSDB_CODE_PAR_PRIMARY_KEY_IS_NULL = -2147473797 +TSDB_CODE_PAR_PRIMARY_KEY_IS_NONE = -2147473796 +TSDB_CODE_PAR_INTERNAL_ERROR = -2147473665 +TSDB_CODE_PLAN_INTERNAL_ERROR = -2147473664 +TSDB_CODE_PLAN_EXPECTED_TS_EQUAL = -2147473663 +TSDB_CODE_PLAN_NOT_SUPPORT_CROSS_JOIN = -2147473662 +TSDB_CODE_PLAN_NOT_SUPPORT_JOIN_COND = -2147473661 +TSDB_CODE_FUNC_FUNTION_ERROR = -2147473408 +TSDB_CODE_FUNC_FUNTION_PARA_NUM = -2147473407 +TSDB_CODE_FUNC_FUNTION_PARA_TYPE = -2147473406 +TSDB_CODE_FUNC_FUNTION_PARA_VALUE = -2147473405 +TSDB_CODE_FUNC_NOT_BUILTIN_FUNTION = -2147473404 +TSDB_CODE_FUNC_DUP_TIMESTAMP = -2147473403 +TSDB_CODE_FUNC_TO_TIMESTAMP_FAILED_FORMAT_ERR = -2147473402 +TSDB_CODE_FUNC_TO_TIMESTAMP_FAILED_TS_ERR = -2147473401 +TSDB_CODE_FUNC_TO_TIMESTAMP_FAILED_NOT_SUPPORTED = -2147473400 +TSDB_CODE_FUNC_TO_CHAR_NOT_SUPPORTED = -2147473399 +TSDB_CODE_UDF_STOPPING = -2147473151 +TSDB_CODE_UDF_PIPE_READ_ERR = -2147473150 +TSDB_CODE_UDF_PIPE_CONNECT_ERR = -2147473149 +TSDB_CODE_UDF_PIPE_NOT_EXIST = -2147473148 +TSDB_CODE_UDF_LOAD_UDF_FAILURE = -2147473147 +TSDB_CODE_UDF_INVALID_INPUT = -2147473146 +TSDB_CODE_UDF_INVALID_BUFSIZE = -2147473145 +TSDB_CODE_UDF_INVALID_OUTPUT_TYPE = -2147473144 +TSDB_CODE_UDF_SCRIPT_NOT_SUPPORTED = -2147473143 +TSDB_CODE_UDF_FUNC_EXEC_FAILURE = -2147473142 +TSDB_CODE_SML_INVALID_PROTOCOL_TYPE = -2147471360 +TSDB_CODE_SML_INVALID_PRECISION_TYPE = -2147471359 +TSDB_CODE_SML_INVALID_DATA = -2147471358 +TSDB_CODE_SML_INVALID_DB_CONF = -2147471357 +TSDB_CODE_SML_NOT_SAME_TYPE = -2147471356 +TSDB_CODE_SML_INTERNAL_ERROR = -2147471355 +TSDB_CODE_SML_NOT_SUPPORT_PK = -2147471354 +TSDB_CODE_TSMA_INIT_FAILED = -2147471104 +TSDB_CODE_TSMA_ALREADY_EXIST = -2147471103 +TSDB_CODE_TSMA_INVALID_ENV = -2147471102 +TSDB_CODE_TSMA_INVALID_STAT = -2147471101 +TSDB_CODE_TSMA_INVALID_PTR = -2147471100 +TSDB_CODE_TSMA_INVALID_PARA = -2147471099 +TSDB_CODE_TSMA_INVALID_TB = -2147471098 +TSDB_CODE_TSMA_INVALID_INTERVAL = -2147471097 +TSDB_CODE_TSMA_INVALID_FUNC_PARAM = -2147471096 +TSDB_CODE_TSMA_UNSUPPORTED_FUNC = -2147471095 +TSDB_CODE_TSMA_MUST_BE_DROPPED = -2147471088 +TSDB_CODE_TSMA_NAME_TOO_LONG = -2147471087 +TSDB_CODE_RSMA_INVALID_ENV = -2147471024 +TSDB_CODE_RSMA_INVALID_STAT = -2147471023 +TSDB_CODE_RSMA_QTASKINFO_CREATE = -2147471022 +TSDB_CODE_RSMA_INVALID_SCHEMA = -2147471021 +TSDB_CODE_RSMA_STREAM_STATE_OPEN = -2147471020 +TSDB_CODE_RSMA_STREAM_STATE_COMMIT = -2147471019 +TSDB_CODE_RSMA_FS_SYNC = -2147471018 +TSDB_CODE_RSMA_RESULT = -2147471017 +TSDB_CODE_INDEX_REBUILDING = -2147470848 +TSDB_CODE_INDEX_INVALID_FILE = -2147470847 +TSDB_CODE_SCALAR_CONVERT_ERROR = -2147470768 +TSDB_CODE_TMQ_INVALID_MSG = -2147467264 +TSDB_CODE_TMQ_NEED_INITIALIZED = -2147467248 +TSDB_CODE_TMQ_SNAPSHOT_ERROR = -2147467258 +TSDB_CODE_TMQ_NO_COMMITTED = -2147467247 +TSDB_CODE_TMQ_VERSION_OUT_OF_RANGE = -2147467257 +TSDB_CODE_TMQ_INVALID_VGID = -2147467256 +TSDB_CODE_TMQ_INVALID_TOPIC = -2147467255 +TSDB_CODE_TMQ_CONSUMER_MISMATCH = -2147467263 +TSDB_CODE_TMQ_CONSUMER_CLOSED = -2147467262 +TSDB_CODE_TMQ_CONSUMER_ERROR = -2147467261 +TSDB_CODE_TMQ_TOPIC_OUT_OF_RANGE = -2147467260 +TSDB_CODE_TMQ_GROUP_OUT_OF_RANGE = -2147467259 +TSDB_CODE_TMQ_SAME_COMMITTED_VALUE = -2147467246 +TSDB_CODE_TMQ_REPLAY_NEED_ONE_VGROUP = -2147467245 +TSDB_CODE_TMQ_REPLAY_NOT_SUPPORT = -2147467244 +TSDB_CODE_STREAM_TASK_NOT_EXIST = -2147467008 +TSDB_CODE_STREAM_EXEC_CANCELLED = -2147467006 +TSDB_CODE_STREAM_INVALID_STATETRANS = -2147467005 +TSDB_CODE_STREAM_TASK_IVLD_STATUS = -2147467004 +TSDB_CODE_TDLITE_IVLD_OPEN_FLAGS = -2147462912 +TSDB_CODE_TDLITE_IVLD_OPEN_DIR = -2147462911 +TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY = -2147459072 diff --git a/source/util/test/terrorTest.cpp b/source/util/test/terrorTest.cpp index fbb698f780..0e968edbe3 100644 --- a/source/util/test/terrorTest.cpp +++ b/source/util/test/terrorTest.cpp @@ -2,14 +2,219 @@ #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "taoserror.h" using namespace std; -TEST(TAOS_ERROR_TEST, terror_test) { +enum class ParseStatus { + Success, + FileNotExist, + FileNotOpen, +}; + +typedef struct { + int32_t val; + string str; // unused + string macro; +} STestTaosError; + +string getExecutableDirectory() { + char result[PATH_MAX]; + ssize_t count = readlink("/proc/self/exe", result, PATH_MAX); + if (count != -1) { + result[count] = '\0'; + string path(result); + size_t pos = path.rfind('/'); + if (pos != string::npos) { + path.erase(pos + 1); + } + return path; + } else { + throw std::runtime_error("Failed to get the executable's directory"); + } +} + +// parses key-value pairs from strings +pair parseKeyValuePair(const string &line, char delim = '=') { + size_t pos = line.find(delim); + if (pos == string::npos) + return make_pair("", 0); + + string key = line.substr(0, pos); + + // remove leading spaces + size_t firstNotSpace = key.find_first_not_of(" "); + if (firstNotSpace != string::npos) { + key = key.substr(firstNotSpace); + } else { + key.clear(); + } + + // remove ending spaces + size_t lastNotSpace = key.find_last_not_of(" "); + if (lastNotSpace != string::npos) { + key = key.substr(0, lastNotSpace + 1); + } + + if (key.front() == '"' && key.back() == '"') + key = key.substr(1, key.size() - 2); + + if (key.front() == '\'' && key.back() == '\'') + key = key.substr(1, key.size() - 2); + + string valStr = line.substr(pos + 1); + int32_t val = stoi(valStr); + return make_pair(key, val); +} + +// read the configuration file and parse it into the STestTaosError array +ParseStatus readConfig(const string& filePath, vector& errorInfos) { + ifstream file(filePath); + if (!file.is_open()) { + if (file.fail() && errno == ENOENT) { + cerr << "Error: The file does not exist, file: " << filePath << endl; + return ParseStatus::FileNotExist; + } else { + cerr << "Error: Could not open the file, file: " << filePath << endl; + return ParseStatus::FileNotOpen; + } + } + + string line; + while (std::getline(file, line)) { + char delim = '#'; + if (line.find('=') != string::npos) { + delim = '='; + } else if (line.find(':') != string::npos) { + delim = ':'; + } else if (line.find('{') != string::npos || line.find('}') != string::npos) { + // TODO: parse json format + continue; + } else { + continue; + } + + auto curKwInfo = parseKeyValuePair(line, delim); + + STestTaosError errorInfo; + errorInfo.macro = curKwInfo.first; + errorInfo.val = curKwInfo.second; + errorInfos.push_back(errorInfo); + } + + return ParseStatus::Success; +} + + +TEST(TAOS_ERROR_TEST, terror_compatibility_test) { + int32_t errSize = taosGetErrSize(); + // for (int32_t i = 0; i < errSize; ++i) { + // STaosError *pInfo = &errors[i]; + // std::cout << i + 1 << " " << pInfo->macro << " " << pInfo->val << std::endl; + // } + + + // current errors: to map + unordered_map map; + for (int32_t i = 0; i < errSize; ++i) { + STaosError *pInfo = &errors[i]; + map[pInfo->macro] = pInfo; + } + + string configFileName = "errorCodeTable.ini"; + string execDir = getExecutableDirectory(); + string configFilePath(execDir + configFileName); + + vector errorInfos; + ParseStatus status = readConfig(configFilePath, errorInfos); + + switch (status) { + case ParseStatus::Success: + for (const auto& stdInfo : errorInfos) { + auto it = map.find(stdInfo.macro); + if (it == map.end()) { + FAIL() << "Error: Could not find error: " << stdInfo.macro << "."; + } else { + auto newInfo = it->second; + + ASSERT_STREQ(stdInfo.macro.c_str(), newInfo->macro); + ASSERT_EQ(stdInfo.val, newInfo->val) + << "Error code mismatch(" << stdInfo.macro << "): expected " << stdInfo.val << ", got " << newInfo->val << "."; + } + } + break; + case ParseStatus::FileNotExist: + FAIL() << "Error: The file does not exist, file: " << configFileName << "."; + break; + case ParseStatus::FileNotOpen: + FAIL() << "Error: Could not open the file, file: " << configFileName << "."; + break; + default: + FAIL() << "Unknown Error."; + break; + } +} + + +size_t maxLengthOfErrorMacro() { + size_t maxLen = 0; int32_t errSize = taosGetErrSize(); for (int32_t i = 0; i < errSize; ++i) { STaosError *pInfo = &errors[i]; - std::cout << i + 1 << " " << pInfo->macro << " " << pInfo->val << std::endl; + maxLen = std::max(maxLen, strlen(pInfo->macro)); } + return (maxLen / 4 + 1) * 4; +} + + +void generateConfigFile(const string& filePath) { + int32_t errSize = taosGetErrSize(); + size_t maxStringLength = maxLengthOfErrorMacro(); + std::ofstream file(filePath); + if (!file.is_open()) { + cerr << "Failed to open file for writing, at: " << filePath << "." << endl; + return; + } + + for (int32_t i = 0; i < errSize; ++i) { + STaosError *pInfo = &errors[i]; + file << std::left << std::setw(maxStringLength) << pInfo->macro << "= " << pInfo->val << endl; + } + + if (file.fail()) { + cerr << "An error occurred while writing to the file." << endl; + } else { + cout << "Data successfully written to file: " << filePath << endl; + } + + file.close(); +} + + +void processCommandArgs(int argc, char** argv) { + for (int i = 1; i < argc; ++i) { + if (string(argv[i]) == "--output-config") { + string configFile = (i + 1 < argc) ? argv[++i] : "./errorCodeTable.ini"; + generateConfigFile(configFile); + exit(0); + } + } +} + + +int main(int argc, char **argv) { + processCommandArgs(argc, argv); + + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); } \ No newline at end of file