You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by cr...@apache.org on 2026/06/22 07:49:14 UTC

(iotdb-docs) 01/01: remove unused docs

This is an automated email from the ASF dual-hosted git repository.

CritasWang pushed a commit to branch remove_unused_docs
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git

commit 3545aebae950e29ec4066fbdcc4d0f3743ed2b91
Author: CritasWang <cr...@outlook.com>
AuthorDate: Mon Jun 22 15:48:54 2026 +0800

    remove unused docs
---
 .../Table/AI-capability/AINode_Upgrade_timecho.md  |  900 ----
 .../Master/Table/AI-capability/AINode_timecho.md   |  482 --
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-CSharp-Native-API_timecho.md   |  403 --
 .../API/Programming-Cpp-Native-API_timecho.md      |  454 --
 .../Table/API/Programming-Go-Native-API_timecho.md |  576 ---
 .../Master/Table/API/Programming-JDBC_timecho.md   |  189 -
 .../API/Programming-Java-Native-API_timecho.md     |  851 ----
 .../Master/Table/API/Programming-MQTT_timecho.md   |  261 -
 .../Master/Table/API/Programming-ODBC_timecho.md   | 1051 ----
 .../API/Programming-Python-Native-API_timecho.md   |  752 ---
 .../Master/Table/API/RestAPI-V1_timecho.md         |  363 --
 .../Cluster-Concept_timecho.md                     |  140 -
 .../Data-Model-and-Terminology_timecho.md          |  388 --
 .../Background-knowledge/Data-Type_timecho.md      |  201 -
 .../Navigating_Time_Series_Data_timecho.md         |   51 -
 .../Basic-Concept/Database-Management_timecho.md   |  175 -
 .../Table/Basic-Concept/Query-Data_timecho.md      |  590 ---
 .../Table/Basic-Concept/TTL-Delete-Data_timecho.md |  145 -
 .../Basic-Concept/Table-Management_timecho.md      |  321 --
 .../Basic-Concept/Write-Updata-Data_timecho.md     |  398 --
 .../AINode_Deployment_Upgrade_timecho.md           |  290 --
 .../AINode_Deployment_timecho.md                   |  319 --
 .../Cluster-Deployment_timecho.md                  |  624 ---
 .../Database-Resources_timecho.md                  |  222 -
 .../Deployment-form_timecho.md                     |   63 -
 .../Docker-Deployment_timecho.md                   |  487 --
 .../Dual-Active-Deployment_timecho.md              |  208 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Stand-Alone-Deployment_timecho.md              |  319 --
 .../Ecosystem-Overview_timecho.md                  |   44 -
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  193 -
 .../IoTDB-Introduction_timecho.md                  |  299 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  703 ---
 .../Master/Table/QuickStart/QuickStart_timecho.md  |   94 -
 .../Reference/System-Config-Manual_timecho.md      | 3374 -------------
 .../Table/Reference/System-Tables_timecho.md       |  801 ---
 .../Table/SQL-Manual/Basis-Function_timecho.md     | 2392 ---------
 .../SQL-Manual/Common-Table-Expression_timecho.md  |  233 -
 .../Table/SQL-Manual/Featured-Functions_timecho.md |  861 ----
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  126 -
 .../SQL-Manual/Row-Pattern-Recognition_timecho.md  |  167 -
 .../SQL-Manual/SQL-Authority-Management_timecho.md |  378 --
 .../SQL-Data-Addition-Deletion_timecho.md          |  172 -
 .../Table/SQL-Manual/SQL-Data-Sync_timecho.md      |  321 --
 .../SQL-Maintenance-Statements_timecho.md          |  686 ---
 .../SQL-Manual/SQL-Metadata-Operations_timecho.md  |  385 --
 .../Table/SQL-Manual/Select-Clause_timecho.md      |  491 --
 .../Table/SQL-Manual/Set-Operations_timecho.md     |  295 --
 .../Master/Table/SQL-Manual/overview_timecho.md    |   53 -
 .../Master/Table/Tools-System/CLI_timecho.md       |  178 -
 .../Table/Tools-System/Data-Export-Tool_timecho.md |  252 -
 .../Table/Tools-System/Data-Import-Tool_timecho.md |  374 --
 .../Table/Tools-System/Maintenance-Tool_timecho.md | 1151 -----
 .../Table/Tools-System/Monitor-Tool_timecho.md     |  194 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |  111 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |  166 -
 .../Master/Table/User-Manual/Audit-Log_timecho.md  |  165 -
 .../Authority-Management-Upgrade_timecho.md        |  495 --
 .../User-Manual/Authority-Management_timecho.md    |  494 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  213 -
 .../Table/User-Manual/Black-White-List_timecho.md  |   78 -
 .../Master/Table/User-Manual/Data-Sync_timecho.md  |  850 ----
 .../User-Manual/Maintenance-commands_timecho.md    |  934 ----
 .../Table/User-Manual/Pattern-Query_timecho.md     | 1138 -----
 .../Table/User-Manual/Tiered-Storage_timecho.md    |  102 -
 .../Timeseries-Featured-Analysis_timecho.md        | 1728 -------
 .../Table/User-Manual/Tree-to-Table_timecho.md     |  619 ---
 .../Table/User-Manual/Window-Function_timecho.md   |  759 ---
 .../Tree/AI-capability/AINode_Upgrade_timecho.md   |  663 ---
 .../Master/Tree/AI-capability/AINode_timecho.md    |  693 ---
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-Data-Subscription_timecho.md   |  260 -
 .../Master/Tree/API/Programming-JDBC_timecho.md    |  296 --
 .../API/Programming-Java-Native-API_timecho.md     |  625 ---
 .../Master/Tree/API/Programming-MQTT_timecho.md    |  294 --
 .../Master/Tree/API/Programming-ODBC_timecho.md    |  996 ----
 .../Master/Tree/API/Programming-OPC-DA_timecho.md  |  209 -
 .../Master/Tree/API/Programming-OPC-UA_timecho.md  |  373 --
 .../API/Programming-Python-Native-API_timecho.md   |  875 ----
 .../Master/Tree/API/RestServiceV1_timecho.md       |  931 ----
 .../Master/Tree/API/RestServiceV2_timecho.md       |  983 ----
 .../Cluster-Concept_timecho.md                     |  118 -
 .../Data-Model-and-Terminology_timecho.md          |  393 --
 .../Navigating_Time_Series_Data_timecho.md         |   65 -
 .../Tree/Basic-Concept/Operate-Metadata_timecho.md | 1283 -----
 .../Tree/Basic-Concept/Query-Data_timecho.md       | 3054 ------------
 .../Tree/Basic-Concept/Write-Data_timecho.md       |  202 -
 .../AINode_Deployment_Upgrade_timecho.md           |  267 -
 .../AINode_Deployment_timecho.md                   |  319 --
 .../Cluster-Deployment_timecho.md                  |  640 ---
 .../Deployment-form_timecho.md                     |   63 -
 .../Docker-Deployment_timecho.md                   |  496 --
 .../Dual-Active-Deployment_timecho.md              |  204 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  320 --
 .../workbench-deployment_timecho.md                |  273 --
 .../Ecosystem-Overview_timecho.md                  |   53 -
 .../Ignition-IoTDB-plugin_timecho.md               |  275 --
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  190 -
 .../IoTDB-Introduction_timecho.md                  |  267 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  701 ---
 .../Master/Tree/QuickStart/QuickStart_timecho.md   |  108 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  632 ---
 .../Tree/SQL-Manual/QuickStart-Only-Sql_timecho.md |  111 -
 .../Master/Tree/SQL-Manual/SQL-Manual_timecho.md   | 1697 -------
 .../Tree/SQL-Manual/UDF-Libraries_timecho.md       | 4977 -------------------
 .../Master/Tree/Tools-System/CLI_timecho.md        |  275 --
 .../Tree/Tools-System/Data-Export-Tool_timecho.md  |  166 -
 .../Tree/Tools-System/Data-Import-Tool_timecho.md  |  328 --
 .../Tree/Tools-System/Maintenance-Tool_timecho.md  |  960 ----
 .../Tree/Tools-System/Monitor-Tool_timecho.md      |  200 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |   85 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |   90 -
 .../Master/Tree/Tools-System/Workbench_timecho.md  |   33 -
 .../Master/Tree/User-Manual/Audit-Log_timecho.md   |  165 -
 .../Authority-Management-Upgrade_timecho.md        |  410 --
 .../User-Manual/Authority-Management_timecho.md    |  519 --
 .../Tree/User-Manual/Auto-Start-On-Boot_timecho.md |  213 -
 .../Tree/User-Manual/Black-White-List_timecho.md   |   78 -
 .../Master/Tree/User-Manual/Data-Sync_timecho.md   |  744 ---
 .../Tree/User-Manual/Data-subscription_timecho.md  |  148 -
 .../Master/Tree/User-Manual/IoTDB-View_timecho.md  |  547 ---
 .../User-Manual/Maintenance-commands_timecho.md    |  694 ---
 .../Master/Tree/User-Manual/Streaming_timecho.md   |  854 ----
 .../Tree/User-Manual/Tiered-Storage_timecho.md     |  100 -
 .../User-Manual/User-defined-function_timecho.md   |  953 ----
 .../Deployment-Guide_timecho.md                    | 1117 -----
 .../Tools-System/Maintenance-Tool_timecho.md       |  232 -
 .../V1.2.x/Tools-System/Monitor-Tool_timecho.md    |  180 -
 .../V1.2.x/Tools-System/Workbench_timecho.md       |   30 -
 .../V1.2.x/User-Manual/Data-Sync_timecho.md        |  521 --
 .../V1.2.x/User-Manual/IoTDB-View_timecho.md       |  550 ---
 .../User-Manual/Security-Management_timecho.md     |   30 -
 .../V1.2.x/User-Manual/Streaming_timecho.md        |  811 ----
 .../V1.2.x/User-Manual/Tiered-Storage_timecho.md   |   96 -
 .../V1.3.x/AI-capability/AINode_timecho.md         |  661 ---
 .../V1.3.x/API/Programming-OPC-DA_timecho.md       |  209 -
 .../V1.3.x/API/Programming-OPC-UA_timecho.md       |  295 --
 .../Cluster-Concept_timecho.md                     |  118 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1360 ------
 .../AINode_Deployment_timecho.md                   |  574 ---
 .../Cluster-Deployment_timecho.md                  |  565 ---
 .../Docker-Deployment_timecho.md                   |  496 --
 .../Dual-Active-Deployment_timecho.md              |  164 -
 .../IoTDB-Package_timecho.md                       |   42 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  322 --
 .../workbench-deployment_timecho.md                |  261 -
 .../Ignition-IoTDB-plugin_timecho.md               |  275 --
 .../IoTDB-Introduction_timecho.md                  |  267 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  391 --
 .../V1.3.x/QuickStart/QuickStart_timecho.md        |  106 -
 .../DataNode-Config-Manual-old_timecho.md          |  592 ---
 .../Reference/DataNode-Config-Manual_timecho.md    |  584 ---
 .../V1.3.x/SQL-Manual/UDF-Libraries_timecho.md     | 5064 -------------------
 src/UserGuide/V1.3.x/Tools-System/CLI_timecho.md   |  175 -
 .../Tools-System/Maintenance-Tool_timecho.md       |  960 ----
 .../V1.3.x/Tools-System/Monitor-Tool_timecho.md    |  182 -
 .../V1.3.x/Tools-System/Workbench_timecho.md       |   33 -
 .../V1.3.x/User-Manual/Audit-Log_timecho.md        |   93 -
 .../V1.3.x/User-Manual/Data-Sync-old_timecho.md    |  613 ---
 .../V1.3.x/User-Manual/Data-Sync_timecho.md        |  664 ---
 .../V1.3.x/User-Manual/IoTDB-View_timecho.md       |  549 ---
 .../V1.3.x/User-Manual/Streaming_timecho.md        |  857 ----
 .../V1.3.x/User-Manual/Tiered-Storage_timecho.md   |   96 -
 .../User-Manual/User-defined-function_timecho.md   |  953 ----
 .../V1.3.x/User-Manual/White-List_timecho.md       |   70 -
 .../dev-1.3/AI-capability/AINode_timecho.md        |  661 ---
 .../dev-1.3/API/Programming-OPC-DA_timecho.md      |  209 -
 .../dev-1.3/API/Programming-OPC-UA_timecho.md      |  295 --
 .../Cluster-Concept_timecho.md                     |  118 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1360 ------
 .../AINode_Deployment_timecho.md                   |  574 ---
 .../Cluster-Deployment_timecho.md                  |  566 ---
 .../Docker-Deployment_timecho.md                   |  496 --
 .../Dual-Active-Deployment_timecho.md              |  164 -
 .../IoTDB-Package_timecho.md                       |   42 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  323 --
 .../workbench-deployment_timecho.md                |  262 -
 .../Ignition-IoTDB-plugin_timecho.md               |  275 --
 .../IoTDB-Introduction_timecho.md                  |  267 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  391 --
 .../dev-1.3/QuickStart/QuickStart_timecho.md       |  106 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  584 ---
 .../dev-1.3/SQL-Manual/UDF-Libraries_timecho.md    | 4978 -------------------
 src/UserGuide/dev-1.3/Tools-System/CLI_timecho.md  |  175 -
 .../Tools-System/Maintenance-Tool_timecho.md       |  960 ----
 .../dev-1.3/Tools-System/Monitor-Tool_timecho.md   |  182 -
 .../dev-1.3/Tools-System/Workbench_timecho.md      |   33 -
 .../dev-1.3/User-Manual/Audit-Log_timecho.md       |   93 -
 .../dev-1.3/User-Manual/Data-Sync_timecho.md       |  663 ---
 .../dev-1.3/User-Manual/IoTDB-View_timecho.md      |  549 ---
 .../dev-1.3/User-Manual/Streaming_timecho.md       |  857 ----
 .../dev-1.3/User-Manual/Tiered-Storage_timecho.md  |   96 -
 .../User-Manual/User-defined-function_timecho.md   |  953 ----
 .../dev-1.3/User-Manual/White-List_timecho.md      |   70 -
 .../AI-capability/AINode_Upgrade_timecho.md        |  900 ----
 .../latest-Table/AI-capability/AINode_timecho.md   |  482 --
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-CSharp-Native-API_timecho.md   |  403 --
 .../API/Programming-Cpp-Native-API_timecho.md      |  454 --
 .../API/Programming-Go-Native-API_timecho.md       |  576 ---
 .../latest-Table/API/Programming-JDBC_timecho.md   |  189 -
 .../API/Programming-Java-Native-API_timecho.md     |  851 ----
 .../latest-Table/API/Programming-MQTT_timecho.md   |  261 -
 .../latest-Table/API/Programming-ODBC_timecho.md   | 1051 ----
 .../API/Programming-Python-Native-API_timecho.md   |  752 ---
 .../latest-Table/API/RestAPI-V1_timecho.md         |  363 --
 .../Cluster-Concept_timecho.md                     |  140 -
 .../Data-Model-and-Terminology_timecho.md          |  388 --
 .../Background-knowledge/Data-Type_timecho.md      |  201 -
 .../Navigating_Time_Series_Data_timecho.md         |   51 -
 .../Basic-Concept/Database-Management_timecho.md   |  175 -
 .../Basic-Concept/Query-Data_timecho.md            |  590 ---
 .../Basic-Concept/TTL-Delete-Data_timecho.md       |  145 -
 .../Basic-Concept/Table-Management_timecho.md      |  321 --
 .../Basic-Concept/Write-Updata-Data_timecho.md     |  398 --
 .../AINode_Deployment_Upgrade_timecho.md           |  290 --
 .../AINode_Deployment_timecho.md                   |  319 --
 .../Cluster-Deployment_timecho.md                  |  624 ---
 .../Database-Resources_timecho.md                  |  222 -
 .../Deployment-form_timecho.md                     |   63 -
 .../Docker-Deployment_timecho.md                   |  487 --
 .../Dual-Active-Deployment_timecho.md              |  208 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Stand-Alone-Deployment_timecho.md              |  319 --
 .../Ecosystem-Overview_timecho.md                  |   44 -
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  193 -
 .../IoTDB-Introduction_timecho.md                  |  299 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  703 ---
 .../latest-Table/QuickStart/QuickStart_timecho.md  |   94 -
 .../Reference/System-Config-Manual_timecho.md      | 3374 -------------
 .../Reference/System-Tables_timecho.md             |  801 ---
 .../SQL-Manual/Basis-Function_timecho.md           | 2392 ---------
 .../SQL-Manual/Common-Table-Expression_timecho.md  |  233 -
 .../SQL-Manual/Featured-Functions_timecho.md       |  861 ----
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  126 -
 .../SQL-Manual/Row-Pattern-Recognition_timecho.md  |  167 -
 .../SQL-Manual/SQL-Authority-Management_timecho.md |  378 --
 .../SQL-Data-Addition-Deletion_timecho.md          |  172 -
 .../SQL-Manual/SQL-Data-Sync_timecho.md            |  321 --
 .../SQL-Maintenance-Statements_timecho.md          |  686 ---
 .../SQL-Manual/SQL-Metadata-Operations_timecho.md  |  385 --
 .../SQL-Manual/Select-Clause_timecho.md            |  491 --
 .../SQL-Manual/Set-Operations_timecho.md           |  295 --
 .../latest-Table/SQL-Manual/overview_timecho.md    |   53 -
 .../latest-Table/Tools-System/CLI_timecho.md       |  178 -
 .../Tools-System/Data-Export-Tool_timecho.md       |  252 -
 .../Tools-System/Data-Import-Tool_timecho.md       |  375 --
 .../Tools-System/Maintenance-Tool_timecho.md       | 1151 -----
 .../Tools-System/Monitor-Tool_timecho.md           |  194 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |  111 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |  166 -
 .../latest-Table/User-Manual/Audit-Log_timecho.md  |  165 -
 .../Authority-Management-Upgrade_timecho.md        |  495 --
 .../User-Manual/Authority-Management_timecho.md    |  494 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  213 -
 .../User-Manual/Black-White-List_timecho.md        |   78 -
 .../latest-Table/User-Manual/Data-Sync_timecho.md  |  850 ----
 .../User-Manual/Maintenance-commands_timecho.md    |  932 ----
 .../User-Manual/Pattern-Query_timecho.md           | 1137 -----
 .../User-Manual/Tiered-Storage_timecho.md          |  102 -
 .../Timeseries-Featured-Analysis_timecho.md        | 1728 -------
 .../User-Manual/Tree-to-Table_timecho.md           |  619 ---
 .../User-Manual/Window-Function_timecho.md         |  759 ---
 .../latest/AI-capability/AINode_Upgrade_timecho.md |  663 ---
 .../latest/AI-capability/AINode_timecho.md         |  693 ---
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-Data-Subscription_timecho.md   |  260 -
 .../latest/API/Programming-JDBC_timecho.md         |  296 --
 .../API/Programming-Java-Native-API_timecho.md     |  625 ---
 .../latest/API/Programming-MQTT_timecho.md         |  294 --
 .../latest/API/Programming-ODBC_timecho.md         |  994 ----
 .../latest/API/Programming-OPC-DA_timecho.md       |  209 -
 .../latest/API/Programming-OPC-UA_timecho.md       |  373 --
 .../API/Programming-Python-Native-API_timecho.md   |  875 ----
 src/UserGuide/latest/API/RestServiceV1_timecho.md  |  931 ----
 src/UserGuide/latest/API/RestServiceV2_timecho.md  |  983 ----
 .../Cluster-Concept_timecho.md                     |  118 -
 .../Data-Model-and-Terminology_timecho.md          |  393 --
 .../Navigating_Time_Series_Data_timecho.md         |   65 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1283 -----
 .../latest/Basic-Concept/Query-Data_timecho.md     | 3054 ------------
 .../latest/Basic-Concept/Write-Data_timecho.md     |  202 -
 .../AINode_Deployment_Upgrade_timecho.md           |  267 -
 .../AINode_Deployment_timecho.md                   |  319 --
 .../Cluster-Deployment_timecho.md                  |  640 ---
 .../Deployment-form_timecho.md                     |   63 -
 .../Docker-Deployment_timecho.md                   |  496 --
 .../Dual-Active-Deployment_timecho.md              |  204 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  320 --
 .../workbench-deployment_timecho.md                |  273 --
 .../Ecosystem-Overview_timecho.md                  |   53 -
 .../Ignition-IoTDB-plugin_timecho.md               |  275 --
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  190 -
 .../IoTDB-Introduction_timecho.md                  |  267 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  701 ---
 .../latest/QuickStart/QuickStart_timecho.md        |  108 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  632 ---
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  111 -
 .../latest/SQL-Manual/SQL-Manual_timecho.md        | 1697 -------
 .../latest/SQL-Manual/UDF-Libraries_timecho.md     | 5063 -------------------
 src/UserGuide/latest/Tools-System/CLI_timecho.md   |  275 --
 .../Tools-System/Data-Export-Tool_timecho.md       |  166 -
 .../Tools-System/Data-Import-Tool_timecho.md       |  328 --
 .../Tools-System/Maintenance-Tool_timecho.md       |  960 ----
 .../latest/Tools-System/Monitor-Tool_timecho.md    |  200 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |   85 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |   90 -
 .../latest/Tools-System/Workbench_timecho.md       |   33 -
 .../latest/User-Manual/Audit-Log_timecho.md        |  165 -
 .../Authority-Management-Upgrade_timecho.md        |  410 --
 .../User-Manual/Authority-Management_timecho.md    |  519 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  213 -
 .../latest/User-Manual/Black-White-List_timecho.md |   78 -
 .../latest/User-Manual/Data-Sync_timecho.md        |  744 ---
 .../User-Manual/Data-subscription_timecho.md       |  147 -
 .../latest/User-Manual/IoTDB-View_timecho.md       |  547 ---
 .../User-Manual/Maintenance-commands_timecho.md    |  693 ---
 .../latest/User-Manual/Streaming_timecho.md        |  854 ----
 .../latest/User-Manual/Tiered-Storage_timecho.md   |  100 -
 .../User-Manual/User-defined-function_timecho.md   |  953 ----
 .../Table/AI-capability/AINode_Upgrade_timecho.md  |  941 ----
 .../Master/Table/AI-capability/AINode_timecho.md   |  453 --
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-CSharp-Native-API_timecho.md   |  403 --
 .../API/Programming-Cpp-Native-API_timecho.md      |  462 --
 .../Table/API/Programming-Go-Native-API_timecho.md |  598 ---
 .../Master/Table/API/Programming-JDBC_timecho.md   |  192 -
 .../API/Programming-Java-Native-API_timecho.md     |  855 ----
 .../Master/Table/API/Programming-MQTT_timecho.md   |  264 -
 .../Master/Table/API/Programming-ODBC_timecho.md   | 1083 -----
 .../API/Programming-Python-Native-API_timecho.md   |  757 ---
 .../Master/Table/API/RestServiceV1_timecho.md      |  367 --
 .../Cluster-Concept_timecho.md                     |  132 -
 .../Data-Model-and-Terminology_timecho.md          |  391 --
 .../Background-knowledge/Data-Type_timecho.md      |  189 -
 .../Navigating_Time_Series_Data_timecho.md         |   45 -
 .../Basic-Concept/Database-Management_timecho.md   |  176 -
 .../Table/Basic-Concept/Query-Data_timecho.md      |  592 ---
 .../Table/Basic-Concept/TTL-Delete-Data_timecho.md |  142 -
 .../Basic-Concept/Table-Management_timecho.md      |  339 --
 .../Basic-Concept/Write-Updata-Data_timecho.md     |  383 --
 .../AINode_Deployment_Upgrade_timecho.md           |  294 --
 .../AINode_Deployment_timecho.md                   |  340 --
 .../Cluster-Deployment_timecho.md                  |  573 ---
 .../Database-Resources_timecho.md                  |  209 -
 .../Deployment-form_timecho.md                     |   61 -
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  203 -
 .../IoTDB-Package_timecho.md                       |   47 -
 .../Stand-Alone-Deployment_timecho.md              |  306 --
 .../Ecosystem-Overview_timecho.md                  |   38 -
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  193 -
 .../IoTDB-Introduction_timecho.md                  |  271 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  675 ---
 .../Master/Table/QuickStart/QuickStart_timecho.md  |   93 -
 .../Reference/System-Config-Manual_timecho.md      | 3354 -------------
 .../Table/Reference/System-Tables_timecho.md       |  793 ---
 .../Table/SQL-Manual/Basis-Function_timecho.md     | 2670 ----------
 .../SQL-Manual/Common-Table-Expression_timecho.md  |  234 -
 .../Table/SQL-Manual/Featured-Functions_timecho.md |  862 ----
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  127 -
 .../SQL-Manual/Row-Pattern-Recognition_timecho.md  |  155 -
 .../SQL-Manual/SQL-Authority-Management_timecho.md |  377 --
 .../SQL-Data-Addition-Deletion_timecho.md          |  171 -
 .../Table/SQL-Manual/SQL-Data-Sync_timecho.md      |  320 --
 .../SQL-Maintenance-Statements_timecho.md          |  663 ---
 .../SQL-Manual/SQL-Metadata-Operations_timecho.md  |  412 --
 .../Table/SQL-Manual/Select-Clause_timecho.md      |  461 --
 .../Table/SQL-Manual/Set-Operations_timecho.md     |  322 --
 .../Master/Table/SQL-Manual/overview_timecho.md    |   54 -
 .../Master/Table/Tools-System/CLI_timecho.md       |  193 -
 .../Table/Tools-System/Data-Export-Tool_timecho.md |  260 -
 .../Table/Tools-System/Data-Import-Tool_timecho.md |  378 --
 .../Table/Tools-System/Maintenance-Tool_timecho.md | 1013 ----
 .../Table/Tools-System/Monitor-Tool_timecho.md     |  187 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |  111 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |  166 -
 .../Master/Table/User-Manual/Audit-Log_timecho.md  |  163 -
 .../Authority-Management-Upgrade_timecho.md        |  539 ---
 .../User-Manual/Authority-Management_timecho.md    |  484 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  243 -
 .../Table/User-Manual/Black-White-List_timecho.md  |   78 -
 .../Master/Table/User-Manual/Data-Sync_timecho.md  |  843 ----
 .../User-Manual/Maintenance-statement_timecho.md   |  957 ----
 .../Table/User-Manual/Pattern-Query_timecho.md     | 1135 -----
 .../Table/User-Manual/Tiered-Storage_timecho.md    |  101 -
 .../Timeseries-Featured-Analysis_timecho.md        | 1721 -------
 .../Table/User-Manual/Tree-to-Table_timecho.md     |  615 ---
 .../Table/User-Manual/Window-Function_timecho.md   |  754 ---
 .../Tree/AI-capability/AINode_Upgrade_timecho.md   |  669 ---
 .../Master/Tree/AI-capability/AINode_timecho.md    |  668 ---
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-Data-Subscription_timecho.md   |  268 -
 .../Master/Tree/API/Programming-JDBC_timecho.md    |  295 --
 .../API/Programming-Java-Native-API_timecho.md     |  625 ---
 .../Master/Tree/API/Programming-MQTT_timecho.md    |  295 --
 .../Master/Tree/API/Programming-ODBC_timecho.md    | 1031 ----
 .../Master/Tree/API/Programming-OPC-DA_timecho.md  |  208 -
 .../Master/Tree/API/Programming-OPC-UA_timecho.md  |  398 --
 .../API/Programming-Python-Native-API_timecho.md   |  860 ----
 .../Master/Tree/API/RestServiceV1_timecho.md       |  965 ----
 .../Master/Tree/API/RestServiceV2_timecho.md       | 1004 ----
 .../Cluster-Concept_timecho.md                     |  132 -
 .../Data-Model-and-Terminology_timecho.md          |  395 --
 .../Navigating_Time_Series_Data_timecho.md         |   70 -
 .../Tree/Basic-Concept/Operate-Metadata_timecho.md | 1278 -----
 .../Tree/Basic-Concept/Query-Data_timecho.md       | 3087 ------------
 .../Tree/Basic-Concept/Write-Data_timecho.md       |  190 -
 .../AINode_Deployment_Upgrade_timecho.md           |  268 -
 .../AINode_Deployment_timecho.md                   |  340 --
 .../Cluster-Deployment_timecho.md                  |  589 ---
 .../Database-Resources_timecho.md                  |  206 -
 .../Deployment-form_timecho.md                     |   61 -
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  203 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  294 --
 .../workbench-deployment_timecho.md                |  254 -
 .../Ecosystem-Overview_timecho.md                  |   47 -
 .../Ignition-IoTDB-plugin_timecho.md               |  274 --
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  189 -
 .../Zeppelin-IoTDB_timecho.md                      |  174 -
 .../IoTDB-Introduction_timecho.md                  |  271 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  677 ---
 .../Master/Tree/QuickStart/QuickStart_timecho.md   |  109 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  625 ---
 .../Tree/SQL-Manual/QuickStart-Only-Sql_timecho.md |  111 -
 .../Master/Tree/SQL-Manual/SQL-Manual_timecho.md   | 1704 -------
 .../Tree/SQL-Manual/UDF-Libraries_timecho.md       | 5007 -------------------
 .../Master/Tree/Tools-System/CLI_timecho.md        |  265 -
 .../Tree/Tools-System/Data-Export-Tool_timecho.md  |  176 -
 .../Tree/Tools-System/Data-Import-Tool_timecho.md  |  333 --
 .../Tree/Tools-System/Maintenance-Tool_timecho.md  | 1013 ----
 .../Tree/Tools-System/Monitor-Tool_timecho.md      |  187 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |   84 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |   90 -
 .../Master/Tree/Tools-System/Workbench_timecho.md  |   34 -
 .../Master/Tree/User-Manual/Audit-Log_timecho.md   |  166 -
 .../Authority-Management-Upgrade_timecho.md        |  468 --
 .../User-Manual/Authority-Management_timecho.md    |  510 --
 .../Tree/User-Manual/Auto-Start-On-Boot_timecho.md |  243 -
 .../Tree/User-Manual/Black-White-List_timecho.md   |   78 -
 .../Master/Tree/User-Manual/Data-Sync_timecho.md   |  743 ---
 .../Tree/User-Manual/Data-subscription_timecho.md  |  144 -
 .../Master/Tree/User-Manual/IoTDB-View_timecho.md  |  547 ---
 .../User-Manual/Maintenance-statement_timecho.md   |  720 ---
 .../Master/Tree/User-Manual/Streaming_timecho.md   |  858 ----
 .../Tree/User-Manual/Tiered-Storage_timecho.md     |  101 -
 .../User-Manual/User-defined-function_timecho.md   |  928 ----
 .../Deployment-Guide_timecho.md                    | 1071 ----
 .../Tools-System/Data-Sync-Software_timecho.md     |  255 -
 .../Tools-System/Maintenance-Tool_timecho.md       |  491 --
 .../V1.2.x/Tools-System/Monitor-Tool_timecho.md    |  169 -
 .../V1.2.x/Tools-System/Workbench_timecho.md       |   31 -
 .../V1.2.x/User-Manual/Data-Sync_timecho.md        |  390 --
 .../V1.2.x/User-Manual/IoTDB-View_timecho.md       |  549 ---
 .../User-Manual/Security-Management_timecho.md     |  158 -
 .../V1.2.x/User-Manual/Stage_Data-Sync_timecho.md  |  536 --
 .../V1.2.x/User-Manual/Streaming_timecho.md        |  814 ----
 .../V1.2.x/User-Manual/Subscription_timecho.md     |  430 --
 .../V1.2.x/User-Manual/Tiered-Storage_timecho.md   |   96 -
 .../V1.3.x/AI-capability/AINode_timecho.md         |  655 ---
 .../V1.3.x/API/Programming-OPC-DA_timecho.md       |  208 -
 .../V1.3.x/API/Programming-OPC-UA_timecho.md       |  265 -
 .../Cluster-Concept_timecho.md                     |  116 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1366 ------
 .../AINode_Deployment_timecho.md                   |  564 ---
 .../Cluster-Deployment_timecho.md                  |  559 ---
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  163 -
 .../IoTDB-Package_timecho.md                       |   46 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  325 --
 .../workbench-deployment_timecho.md                |  242 -
 .../Ignition-IoTDB-plugin_timecho.md               |  274 --
 .../Zeppelin-IoTDB_timecho.md                      |  174 -
 .../IoTDB-Introduction_timecho.md                  |  266 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  388 --
 .../V1.3.x/QuickStart/QuickStart_timecho.md        |  109 -
 .../DataNode-Config-Manual-old_timecho.md          |  582 ---
 .../Reference/DataNode-Config-Manual_timecho.md    |  576 ---
 .../V1.3.x/SQL-Manual/UDF-Libraries_timecho.md     | 5091 -------------------
 .../UserGuide/V1.3.x/Tools-System/CLI_timecho.md   |  168 -
 .../Tools-System/Maintenance-Tool_timecho.md       | 1013 ----
 .../V1.3.x/Tools-System/Monitor-Tool_timecho.md    |  170 -
 .../V1.3.x/Tools-System/Workbench_timecho.md       |   34 -
 .../V1.3.x/User-Manual/Audit-Log_timecho.md        |  108 -
 .../V1.3.x/User-Manual/Data-Sync-old_timecho.md    |  606 ---
 .../V1.3.x/User-Manual/Data-Sync_timecho.md        |  659 ---
 .../V1.3.x/User-Manual/IoTDB-View_timecho.md       |  546 ---
 .../V1.3.x/User-Manual/Streaming_timecho.md        |  862 ----
 .../V1.3.x/User-Manual/Tiered-Storage_timecho.md   |   97 -
 .../User-Manual/User-defined-function_timecho.md   |  927 ----
 .../V1.3.x/User-Manual/White-List_timecho.md       |   70 -
 .../dev-1.3/AI-capability/AINode_timecho.md        |  655 ---
 .../dev-1.3/API/Programming-OPC-DA_timecho.md      |  208 -
 .../dev-1.3/API/Programming-OPC-UA_timecho.md      |  265 -
 .../Cluster-Concept_timecho.md                     |  116 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1366 ------
 .../AINode_Deployment_timecho.md                   |  564 ---
 .../Cluster-Deployment_timecho.md                  |  559 ---
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  163 -
 .../IoTDB-Package_timecho.md                       |   46 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  325 --
 .../workbench-deployment_timecho.md                |  243 -
 .../Ignition-IoTDB-plugin_timecho.md               |  274 --
 .../Zeppelin-IoTDB_timecho.md                      |  174 -
 .../IoTDB-Introduction_timecho.md                  |  266 -
 .../IoTDB-Introduction/Release-history_timecho.md  |  388 --
 .../dev-1.3/QuickStart/QuickStart_timecho.md       |  109 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  576 ---
 .../dev-1.3/SQL-Manual/UDF-Libraries_timecho.md    | 5005 -------------------
 .../UserGuide/dev-1.3/Tools-System/CLI_timecho.md  |  170 -
 .../Tools-System/Maintenance-Tool_timecho.md       | 1013 ----
 .../dev-1.3/Tools-System/Monitor-Tool_timecho.md   |  170 -
 .../dev-1.3/Tools-System/Workbench_timecho.md      |   34 -
 .../dev-1.3/User-Manual/Audit-Log_timecho.md       |  108 -
 .../dev-1.3/User-Manual/Data-Sync_timecho.md       |  658 ---
 .../dev-1.3/User-Manual/IoTDB-View_timecho.md      |  546 ---
 .../dev-1.3/User-Manual/Streaming_timecho.md       |  862 ----
 .../dev-1.3/User-Manual/Tiered-Storage_timecho.md  |   97 -
 .../User-Manual/User-defined-function_timecho.md   |  927 ----
 .../dev-1.3/User-Manual/White-List_timecho.md      |   70 -
 .../AI-capability/AINode_Upgrade_timecho.md        |  941 ----
 .../latest-Table/AI-capability/AINode_timecho.md   |  453 --
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-CSharp-Native-API_timecho.md   |  403 --
 .../API/Programming-Cpp-Native-API_timecho.md      |  462 --
 .../API/Programming-Go-Native-API_timecho.md       |  598 ---
 .../latest-Table/API/Programming-JDBC_timecho.md   |  192 -
 .../API/Programming-Java-Native-API_timecho.md     |  855 ----
 .../latest-Table/API/Programming-MQTT_timecho.md   |  264 -
 .../latest-Table/API/Programming-ODBC_timecho.md   | 1083 -----
 .../API/Programming-Python-Native-API_timecho.md   |  757 ---
 .../latest-Table/API/RestServiceV1_timecho.md      |  367 --
 .../Cluster-Concept_timecho.md                     |  132 -
 .../Data-Model-and-Terminology_timecho.md          |  391 --
 .../Background-knowledge/Data-Type_timecho.md      |  189 -
 .../Navigating_Time_Series_Data_timecho.md         |   45 -
 .../Basic-Concept/Database-Management_timecho.md   |  176 -
 .../Basic-Concept/Query-Data_timecho.md            |  592 ---
 .../Basic-Concept/TTL-Delete-Data_timecho.md       |  142 -
 .../Basic-Concept/Table-Management_timecho.md      |  339 --
 .../Basic-Concept/Write-Updata-Data_timecho.md     |  383 --
 .../AINode_Deployment_Upgrade_timecho.md           |  294 --
 .../AINode_Deployment_timecho.md                   |  340 --
 .../Cluster-Deployment_timecho.md                  |  573 ---
 .../Database-Resources_timecho.md                  |  209 -
 .../Deployment-form_timecho.md                     |   61 -
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  203 -
 .../IoTDB-Package_timecho.md                       |   47 -
 .../Stand-Alone-Deployment_timecho.md              |  306 --
 .../Ecosystem-Overview_timecho.md                  |   38 -
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  193 -
 .../IoTDB-Introduction_timecho.md                  |  271 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  675 ---
 .../latest-Table/QuickStart/QuickStart_timecho.md  |   93 -
 .../Reference/System-Config-Manual_timecho.md      | 3354 -------------
 .../Reference/System-Tables_timecho.md             |  793 ---
 .../SQL-Manual/Basis-Function_timecho.md           | 2670 ----------
 .../SQL-Manual/Common-Table-Expression_timecho.md  |  234 -
 .../SQL-Manual/Featured-Functions_timecho.md       |  862 ----
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  127 -
 .../SQL-Manual/Row-Pattern-Recognition_timecho.md  |  155 -
 .../SQL-Manual/SQL-Authority-Management_timecho.md |  377 --
 .../SQL-Data-Addition-Deletion_timecho.md          |  171 -
 .../SQL-Manual/SQL-Data-Sync_timecho.md            |  320 --
 .../SQL-Maintenance-Statements_timecho.md          |  663 ---
 .../SQL-Manual/SQL-Metadata-Operations_timecho.md  |  412 --
 .../SQL-Manual/Select-Clause_timecho.md            |  461 --
 .../SQL-Manual/Set-Operations_timecho.md           |  322 --
 .../latest-Table/SQL-Manual/overview_timecho.md    |   54 -
 .../latest-Table/Tools-System/CLI_timecho.md       |  195 -
 .../Tools-System/Data-Export-Tool_timecho.md       |  260 -
 .../Tools-System/Data-Import-Tool_timecho.md       |  376 --
 .../Tools-System/Maintenance-Tool_timecho.md       | 1013 ----
 .../Tools-System/Monitor-Tool_timecho.md           |  187 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |  111 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |  166 -
 .../latest-Table/User-Manual/Audit-Log_timecho.md  |  163 -
 .../Authority-Management-Upgrade_timecho.md        |  539 ---
 .../User-Manual/Authority-Management_timecho.md    |  484 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  243 -
 .../User-Manual/Black-White-List_timecho.md        |   78 -
 .../latest-Table/User-Manual/Data-Sync_timecho.md  |  843 ----
 .../User-Manual/Maintenance-statement_timecho.md   |  956 ----
 .../User-Manual/Pattern-Query_timecho.md           | 1138 -----
 .../User-Manual/Tiered-Storage_timecho.md          |  101 -
 .../Timeseries-Featured-Analysis_timecho.md        | 1721 -------
 .../User-Manual/Tree-to-Table_timecho.md           |  615 ---
 .../User-Manual/Window-Function_timecho.md         |  754 ---
 .../latest/AI-capability/AINode_Upgrade_timecho.md |  669 ---
 .../latest/AI-capability/AINode_timecho.md         |  668 ---
 .../TimeSeries-Large-Model_Upgrade_timecho.md      |  157 -
 .../API/Programming-Data-Subscription_timecho.md   |  268 -
 .../latest/API/Programming-JDBC_timecho.md         |  295 --
 .../API/Programming-Java-Native-API_timecho.md     |  625 ---
 .../latest/API/Programming-MQTT_timecho.md         |  295 --
 .../latest/API/Programming-ODBC_timecho.md         | 1030 ----
 .../latest/API/Programming-OPC-DA_timecho.md       |  208 -
 .../latest/API/Programming-OPC-UA_timecho.md       |  398 --
 .../API/Programming-Python-Native-API_timecho.md   |  860 ----
 .../UserGuide/latest/API/RestServiceV1_timecho.md  |  965 ----
 .../UserGuide/latest/API/RestServiceV2_timecho.md  | 1004 ----
 .../Cluster-Concept_timecho.md                     |  132 -
 .../Data-Model-and-Terminology_timecho.md          |  395 --
 .../Navigating_Time_Series_Data_timecho.md         |   70 -
 .../Basic-Concept/Operate-Metadata_timecho.md      | 1278 -----
 .../latest/Basic-Concept/Query-Data_timecho.md     | 3087 ------------
 .../latest/Basic-Concept/Write-Data_timecho.md     |  190 -
 .../AINode_Deployment_Upgrade_timecho.md           |  268 -
 .../AINode_Deployment_timecho.md                   |  340 --
 .../Cluster-Deployment_timecho.md                  |  589 ---
 .../Database-Resources_timecho.md                  |  206 -
 .../Deployment-form_timecho.md                     |   61 -
 .../Docker-Deployment_timecho.md                   |  495 --
 .../Dual-Active-Deployment_timecho.md              |  203 -
 .../IoTDB-Package_timecho.md                       |   48 -
 .../Kubernetes_timecho.md                          |  445 --
 .../Stand-Alone-Deployment_timecho.md              |  294 --
 .../workbench-deployment_timecho.md                |  254 -
 .../Ecosystem-Overview_timecho.md                  |   47 -
 .../Ignition-IoTDB-plugin_timecho.md               |  274 --
 .../Ecosystem-Integration/SeaTunnel_timecho.md     |  189 -
 .../Zeppelin-IoTDB_timecho.md                      |  174 -
 .../IoTDB-Introduction_timecho.md                  |  271 --
 .../IoTDB-Introduction/Release-history_timecho.md  |  677 ---
 .../latest/QuickStart/QuickStart_timecho.md        |  109 -
 .../Reference/DataNode-Config-Manual_timecho.md    |  625 ---
 .../SQL-Manual/QuickStart-Only-Sql_timecho.md      |  111 -
 .../latest/SQL-Manual/SQL-Manual_timecho.md        | 1704 -------
 .../latest/SQL-Manual/UDF-Libraries_timecho.md     | 5093 --------------------
 .../UserGuide/latest/Tools-System/CLI_timecho.md   |  265 -
 .../Tools-System/Data-Export-Tool_timecho.md       |  176 -
 .../Tools-System/Data-Import-Tool_timecho.md       |  332 --
 .../Tools-System/Maintenance-Tool_timecho.md       | 1013 ----
 .../latest/Tools-System/Monitor-Tool_timecho.md    |  187 -
 .../Tools-System/Schema-Export-Tool_timecho.md     |   84 -
 .../Tools-System/Schema-Import-Tool_timecho.md     |   90 -
 .../latest/Tools-System/Workbench_timecho.md       |   34 -
 .../latest/User-Manual/Audit-Log_timecho.md        |  166 -
 .../Authority-Management-Upgrade_timecho.md        |  468 --
 .../User-Manual/Authority-Management_timecho.md    |  510 --
 .../User-Manual/Auto-Start-On-Boot_timecho.md      |  243 -
 .../latest/User-Manual/Black-White-List_timecho.md |   78 -
 .../latest/User-Manual/Data-Sync_timecho.md        |  743 ---
 .../User-Manual/Data-subscription_timecho.md       |  144 -
 .../latest/User-Manual/IoTDB-View_timecho.md       |  547 ---
 .../User-Manual/Maintenance-statement_timecho.md   |  719 ---
 .../latest/User-Manual/Streaming_timecho.md        |  858 ----
 .../latest/User-Manual/Tiered-Storage_timecho.md   |  101 -
 .../User-Manual/User-defined-function_timecho.md   |  928 ----
 663 files changed, 342419 deletions(-)

diff --git a/src/UserGuide/Master/Table/AI-capability/AINode_Upgrade_timecho.md b/src/UserGuide/Master/Table/AI-capability/AINode_Upgrade_timecho.md
deleted file mode 100644
index a3167dc8..00000000
--- a/src/UserGuide/Master/Table/AI-capability/AINode_Upgrade_timecho.md
+++ /dev/null
@@ -1,900 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# AINode
-
-AINode is a native IoTDB node that supports the registration, management, and invocation of time series related models. It includes industry-leading self-developed time series large models, such as the Timer series models developed by Tsinghua University. Models can be invoked using standard SQL statements, enabling millisecond-level real-time inference on time series data, and supporting application scenarios such as time series trend prediction, missing value filling, and anomaly value [...]
-
-The system architecture is shown in the following figure:
-
-![](/img/AINode-0-en.png)
-
-The responsibilities of the three nodes are as follows:
-
-* **ConfigNode**: Responsible for distributed node management and load balancing.
-* **DataNode**: Responsible for receiving and parsing user SQL requests; responsible for storing time series data; responsible for data preprocessing calculations.
-* **AINode**: Responsible for managing and using time series models.
-
-## 1. Advantages and Features
-
-Compared to building a machine learning service separately, it has the following advantages:
-
-* **Simple and Easy to Use**: No need to use Python or Java programming, you can complete the entire process of machine learning model management and inference using SQL statements. For example, creating a model can be done using the CREATE MODEL statement, and using a model for inference can be done using the `SELECT * FROM FORECAST (...)` statement, making it more simple and convenient.
-* **Avoid Data Migration**: Using IoTDB-native machine learning can directly apply data stored in IoTDB to machine learning model inference without moving data to a separate machine learning service platform, thus accelerating data processing, improving security, and reducing costs.
-
-![](/img/h1.png)
-
-* **Built-in Advanced Algorithms**: Supports industry-leading machine learning analysis algorithms, covering typical time series analysis tasks, and empowering time series databases with native data analysis capabilities. For example:
-    * **Time Series Forecasting**: Learning change patterns from past time series data; outputting the most likely predictions for future sequences based on given past observations.
-    * **Time Series Anomaly Detection**: Detecting and identifying abnormal values in given time series data to help discover abnormal behavior in time series.
-
-## 2. Basic Concepts
-
-* **Model (Model)**: A machine learning model that takes time series data as input and outputs the results or decisions of the analysis task. The model is the basic management unit of AINode, supporting the creation (registration), deletion, query, modification (fine-tuning), and use (inference) of models.
-* **Create (Create)**: Load the external designed or trained model file or algorithm into AINode, managed and used uniformly by IoTDB.
-* **Inference (Inference)**: Use the created model to complete the time series analysis task on the specified time series data.
-* **Built-in (Built-in)**: AINode comes with common time series analysis scenario (e.g., prediction and anomaly detection) machine learning algorithms or self-developed models.
-
-![](/img/AINode-en.png)
-
-## 3. Installation and Deployment
-
-AINode deployment can be referred to the documentation [AINode Deployment](../Deployment-and-Maintenance/AINode_Deployment_Upgrade_timecho.md).
-
-## 4. Usage Guide
-
-TimechoDB-AINode supports three major functions: model inference, model fine-tuning, and model management (registration, viewing, deletion, loading, unloading, etc.). The following sections will provide detailed explanations.
-
-### 4.1 Model Inference
-
-The AINode table model supports two major inference capabilities: time series prediction and time series classification.
-
-#### 4.1.1 Time Series Prediction
-
-The time series prediction capability provided by the AINode table model includes:
-
-* **Univariate Prediction**: Supports prediction of a single target variable.
-* **Covariate Prediction**: Can simultaneously predict multiple target variables and supports introducing covariates in prediction to improve accuracy.
-
-The following sections will detail the syntax definition, parameter descriptions, and usage examples of the prediction inference function.
-
-1. **SQL Syntax**
-
-```SQL
-SELECT * FROM FORECAST(
-   MODEL_ID,
-   TARGETS, -- SQL to get target variables
-   [HISTORY_COVS, -- String, SQL to get historical covariates
-   FUTURE_COVS, -- String, SQL to get future covariates
-   OUTPUT_START_TIME,
-   OUTPUT_LENGTH, 
-   OUTPUT_INTERVAL,
-   TIMECOL, 
-   PRESERVE_INPUT,
-   AUTO_ADAPT, -- Boolean type, indicating whether adaptive mode is enabled.
-   MODEL_OPTIONS]?
-)
-```
-
-* Built-in model inference does not require a registration process. By using the forecast function and specifying model_id, you can use the inference function of the model.
-* Parameter description
-
-| Parameter Name | Parameter Type | Parameter Attributes | Description | Required | Notes                                                                                                                                                                                                                                                                                                                                                                                                                    [...]
-|----------------|----------------|----------------------|-------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| model_id | Scalar parameter | String type | Unique identifier of the prediction model | Yes |                                                                                                                                                                                                                                                                                                                                                                                                              [...]
-| targets | Table parameter | SET SEMANTIC | Input data for the target variables to be predicted. IoTDB will automatically sort the data in ascending order of time before passing it to AINode. | Yes | Use SQL to describe the input data with target variables. If the input SQL is invalid, corresponding query errors will be reported.                                                                                                                                                                 [...]
-| history_covs | Scalar parameter | String type (valid table model query SQL), default: none | Specifies historical data of covariates for this prediction task, which are used to assist in predicting target variables. AINode will not output prediction results for historical covariates. Before passing data to the model, AINode will automatically sort the data in ascending order of time. | No | 1. Query results can only contain FIELD columns; <br> 2. Other: Different models may have specif [...]
-| future_covs | Scalar parameter | String type (valid table model query SQL), default: none | Specifies future data of some covariates for this prediction task, which are used to assist in predicting target variables. Before passing data to the model, AINode will automatically sort the data in ascending order of time. | No | 1. Can only be specified when history_covs is set; <br> 2. The covariate names involved must be a subset of history_covs; <br> 3. Query results can only contain FIEL [...]
-| auto_adapt         | Scalar parameter | Boolean type, default value: true              | Whether to enable adaptive processing for covariate inference.(Support from V2.0.8.2) | No       | When adaptive mode is enabled:<br> 1. If the set of future covariates (`future_covs`) is not a subset of the historical covariates (`history_covs`), any future covariates not present in the historical set will be automatically discarded.<br>  2. If the length of any historical covariate does not match [...]
-| output_start_time | Scalar parameter | Timestamp type. Default value: last timestamp of target variable + output_interval | Starting timestamp of output prediction points [i.e., forecast start time] | No | Must be greater than the maximum timestamp of target variable timestamps                                                                                                                                                                                                                     [...]
-| output_length | Scalar parameter | INT32 type. Default value: 96 | Output window size | No | Must be greater than 0                                                                                                                                                                                                                                                                                                                                                                                        [...]
-| output_interval | Scalar parameter | Time interval type. Default value: (last timestamp - first timestamp of input data) / n - 1 | Time interval between output prediction points. Supported units: ns, us, ms, s, m, h, d, w | No | Must be greater than 0                                                                                                                                                                                                                                                [...]
-| timecol | Scalar parameter | String type. Default value: time | Name of time column | No | Must be a TIMESTAMP column existing in targets                                                                                                                                                                                                                                                                                                                                                                  [...]
-| preserve_input | Scalar parameter | Boolean type. Default value: false | Whether to retain all original rows of target variable input in the output result set | No |                                                                                                                                                                                                                                                                                                                                      [...]
-| model_options | Scalar parameter | String type. Default value: empty string | Key-value pairs related to the model, such as whether to normalize the input. Different key-value pairs are separated by ';'. | No |                                                                                                                                                                                                                                                                                         [...]
-
-Notes:
-* **Default behavior**: Predict all columns of targets. Currently, only supports INT32, INT64, FLOAT, DOUBLE types.
-* **Input data requirements**:
-    * Must contain a time column.
-    * Row count requirements: If insufficient, an error will be reported; if exceeding the maximum, the last data will be automatically truncated.
-    * Column count requirements: Univariate models only support single columns, multi-column will report errors; covariate models usually have no restrictions unless the model itself has clear constraints.
-* **Output results**:
-    * Includes all target variable columns, with data types consistent with the original table.
-    * If `preserve_input=true` is specified, an additional `is_input` column will be added to identify original data rows.
-* **Timestamp generation**:
-    * Uses `OUTPUT_START_TIME` (optional) as the starting time point for prediction and divides historical and future data.
-    * Uses `OUTPUT_INTERVAL` (optional, default is the sampling interval of input data) as the output time interval. The timestamp of the Nth row is calculated as: `OUTPUT_START_TIME + (N - 1) * OUTPUT_INTERVAL`.
-
-2. **Usage Examples**
-
-**Example 1: Univariate Prediction**
-
-Create database etth and table eg in advance
-
-```SQL
-create database etth;
-create table eg (hufl FLOAT FIELD, hull FLOAT FIELD, mufl FLOAT FIELD, mull FLOAT FIELD, lufl FLOAT FIELD, lull FLOAT FIELD, ot FLOAT FIELD)
-```
-
-Prepare original data [ETTh1-tab](/img/ETTh1-tab.csv). 
-
-You can import the raw data using the [import-data](../Tools-System/Data-Import-Tool_timecho.md#_2-2-csv-format) script. For example:
-
-```bash
-./tools/import-data.sh -ft csv -sql_dialect table -db etth -table eg -s ~/Desktop/model-compare-html/ETTh1-tab.csv
-```
-
-Use the first 96 rows of data from column ot in table eg to predict its future 1440 rows of data.
-
-```SQL
-IoTDB:etth> select Time, HUFL,HULL,MUFL,MULL,LUFL,LULL,OT from eg LIMIT 1440
-+-----------------------------+------+-----+-----+-----+-----+-----+------+
-|                         Time|  HUFL| HULL| MUFL| MULL| LUFL| LULL|    OT|
-+-----------------------------+------+-----+-----+-----+-----+-----+------+
-|2016-07-01T00:00:00.000+08:00| 5.827|2.009|1.599|0.462|4.203| 1.34|30.531|
-|2016-07-01T01:00:00.000+08:00| 5.693|2.076|1.492|0.426|4.142|1.371|27.787|
-|2016-07-01T02:00:00.000+08:00| 5.157|1.741|1.279|0.355|3.777|1.218|27.787|
-|2016-07-01T03:00:00.000+08:00|  5.09|1.942|1.279|0.391|3.807|1.279|25.044|
-......
-Total line number = 1440
-It costs 0.119s
-
-IoTDB:etth> select * from forecast( 
-     model_id => 'sundial',
-     targets => (select Time, ot from etth.eg where time >= 2016-08-07T18:00:00.000+08:00 limit 1440) order BY time,
-     output_length => 96
-)
-+-----------------------------+---------+
-|                         time|       ot|
-+-----------------------------+---------+
-|2016-10-06T18:00:00.000+08:00|20.733124|
-|2016-10-06T19:00:00.000+08:00|20.258146|
-|2016-10-06T20:00:00.000+08:00|20.022043|
-|2016-10-06T21:00:00.000+08:00|19.789446|
-......
-Total line number = 96
-It costs 1.615s
-```
-
-**Example 2: Covariate Prediction**
-
-Create table tab_real (to store original real data) in advance
-
-```SQL
-create table tab_real (target1 DOUBLE FIELD, target2 DOUBLE FIELD, cov1 DOUBLE FIELD, cov2 DOUBLE FIELD, cov3 DOUBLE FIELD);
-```
-
-Prepare original data
-
-```SQL
--- Insert statement
-IoTDB:etth> INSERT INTO tab_real (time, target1, target2, cov1, cov2, cov3) VALUES
-(1, 1.0, 1.0, 1.0, 1.0, 1.0),
-(2, 2.0, 2.0, 2.0, 2.0, 2.0),
-(3, 3.0, 3.0, 3.0, 3.0, 3.0),
-(4, 4.0, 4.0, 4.0, 4.0, 4.0),
-(5, 5.0, 5.0, 5.0, 5.0, 5.0),
-(6, 6.0, 6.0, 6.0, 6.0, 6.0),
-(7, NULL, NULL, NULL, NULL, 7.0),
-(8, NULL, NULL, NULL, NULL, 8.0);
-
-IoTDB:etth> SELECT * FROM tab_real
-+-----------------------------+-------+-------+----+----+----+
-|                         time|target1|target2|cov1|cov2|cov3|
-+-----------------------------+-------+-------+----+----+----+
-|1970-01-01T08:00:00.001+08:00|    1.0|    1.0| 1.0| 1.0| 1.0|
-|1970-01-01T08:00:00.002+08:00|    2.0|    2.0| 2.0| 2.0| 2.0|
-|1970-01-01T08:00:00.003+08:00|    3.0|    3.0| 3.0| 3.0| 3.0|
-|1970-01-01T08:00:00.004+08:00|    4.0|    4.0| 4.0| 4.0| 4.0|
-|1970-01-01T08:00:00.005+08:00|    5.0|    5.0| 5.0| 5.0| 5.0|
-|1970-01-01T08:00:00.006+08:00|    6.0|    6.0| 6.0| 6.0| 6.0|
-|1970-01-01T08:00:00.007+08:00|   null|   null|null|null| 7.0|
-|1970-01-01T08:00:00.008+08:00|   null|   null|null|null| 8.0|
-+-----------------------------+-------+-------+----+----+----+
-```
-
-* Prediction task 1: Use historical covariates cov1, cov2, and cov3 to assist in predicting target variables target1 and target2.
-
-  ![](/img/ainode-upgrade-table-forecast-timecho-1-en.png)
-
-    * Use the first 6 rows of historical data from cov1, cov2, cov3, target1, target2 in table tab_real to predict the next 2 rows of target variables target1 and target2.
-      ```SQL
-      IoTDB:etth> SELECT * FROM FORECAST (
-          MODEL_ID => 'chronos2',
-          TARGETS => (
-              SELECT TIME, target1, target2
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6) ORDER BY TIME,
-          HISTORY_COVS => '
-              SELECT TIME, cov1, cov2, cov3
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6',
-          OUTPUT_LENGTH => 2
-      )
-      +-----------------------------+-----------------+-----------------+
-      |                         time|          target1|          target2|
-      +-----------------------------+-----------------+-----------------+
-      |1970-01-01T08:00:00.007+08:00|7.338330268859863|7.338330268859863|
-      |1970-01-01T08:00:00.008+08:00| 8.02529525756836| 8.02529525756836|
-      +-----------------------------+-----------------+-----------------+
-      Total line number = 2
-      It costs 0.315s
-      ```
-* Prediction task 2: Use historical covariates cov1, cov2 and known covariates cov3 in the same table to assist in predicting target variables target1 and target2.
-
-  ![](/img/ainode-upgrade-table-forecast-timecho-2-en.png)
-
-    * Use the first 6 rows of historical data from cov1, cov2, cov3, target1, target2 in table tab_real, and known covariate cov3 in the future 2 rows of the same table to predict the next 2 rows of target variables target1 and target2.
-      ```SQL
-      IoTDB:etth> SELECT * FROM FORECAST (
-          MODEL_ID => 'chronos2',
-          TARGETS => (
-              SELECT TIME, target1, target2
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6) ORDER BY TIME,
-          HISTORY_COVS => '
-              SELECT TIME, cov1, cov2, cov3
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6',
-          FUTURE_COVS => '
-              SELECT TIME, cov3
-              FROM etth.tab_real
-              WHERE TIME >= 7
-              LIMIT 2',
-          OUTPUT_LENGTH => 2
-      )
-      +-----------------------------+-----------------+-----------------+
-      |                         time|          target1|          target2|
-      +-----------------------------+-----------------+-----------------+
-      |1970-01-01T08:00:00.007+08:00|7.244050025939941|7.244050025939941|
-      |1970-01-01T08:00:00.008+08:00|7.907227516174316|7.907227516174316|
-      +-----------------------------+-----------------+-----------------+
-      Total line number = 2
-      It costs 0.291s
-      ```
-* Prediction task 3: Use historical covariates cov1, cov2 from different tables and known covariates cov3 to assist in predicting target variables target1 and target2.
-
-  ![](/img/ainode-upgrade-table-forecast-timecho-3-en.png)
-
-    * Create table tab_cov_forecast (to store known covariate cov3 prediction values) in advance, and prepare related data.
-      ```SQL
-      create table tab_cov_forecast (cov3 DOUBLE FIELD);
-      
-      -- Insert statement
-      INSERT INTO tab_cov_forecast (time, cov3) VALUES (7, 7.0),(8, 8.0);
-      
-      IoTDB:etth> SELECT * FROM tab_cov_forecast
-      +----+----+
-      |time|cov3|
-      +----+----+
-      |   7| 7.0|
-      |   8| 8.0|
-      +----+----+
-      ```
-    * Use the first 6 rows of known data from cov1, cov2, cov3, target1, target2 in table tab_real, and known covariate cov3 in the future 2 rows from table tab_cov_forecast to predict the next 2 rows of target variables target1 and target2.
-      ```SQL
-      IoTDB:etth> SELECT * FROM FORECAST (
-          MODEL_ID => 'chronos2',
-          TARGETS => (
-              SELECT TIME, target1, target2
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6) ORDER BY TIME,
-          HISTORY_COVS => '
-              SELECT TIME, cov1, cov2, cov3
-              FROM etth.tab_real
-              WHERE TIME < 7
-              ORDER BY TIME DESC
-              LIMIT 6',
-          FUTURE_COVS => '
-              SELECT TIME, cov3
-              FROM etth.tab_cov_forecast
-              WHERE TIME >= 7
-              LIMIT 2',
-          OUTPUT_LENGTH => 2
-      )
-      +-----------------------------+-----------------+-----------------+
-      |                         time|          target1|          target2|
-      +-----------------------------+-----------------+-----------------+
-      |1970-01-01T08:00:00.007+08:00|7.244050025939941|7.244050025939941|
-      |1970-01-01T08:00:00.008+08:00|7.907227516174316|7.907227516174316|
-      +-----------------------------+-----------------+-----------------+
-      Total line number = 2
-      It costs 0.351s
-      ```
-
-
-#### 4.1.2 Time Series Classification
-
-Time series classification is a critical capability beyond time series prediction, with extensive applications in industrial scenarios. Its typical paradigm is to input the recent sampling values of multiple measuring points, comprehensively judge the overall operating status of the equipment, and output a classification label for the current status. For example, it can be used for operating status classification of new energy battery pack equipment and other scenarios.
-
-The AINode table model supports executing time series classification tasks by calling covariate classification models.
-
-> Note: This feature is available starting from version V2.0.9.1.
-
-1. **SQL Syntax**
-```sql
-SELECT * FROM CLASSIFY(
-   MODEL_ID,
-   INPUTS -- SQL to retrieve input variables
-   [TIMECOL, 
-   MODEL_OPTIONS]?
-)
-```
-
-* Parameter Description
-
-| Parameter Name | Parameter Type | Parameter Attribute | Description | Required | Remarks |
-|----------------|----------------|---------------------|-------------|----------|---------|
-| model_id       | Scalar Parameter | String | Unique identifier of the model used for classification | Yes | - |
-| inputs         | Table Parameter | SET SEMANTIC | Input data to be classified. IoTDB will automatically sort the data in ascending chronological order before passing it to AINode. | Yes | Describes the input data to be classified via SQL; corresponding query errors will be thrown if the input SQL is invalid. |
-| timecol        | Scalar Parameter | String, Default: `time` | Name of the time column | No | Must be a column of TIMESTAMP type present in the `inputs` result set; otherwise, an error will be thrown. |
-| model_options  | Scalar Parameter | String, Default: Empty string | Model-related key-value pairs (e.g., whether input normalization is required). Different key-value pairs are separated by `;`. | No | Unsupported parameters for a specific model will be ignored without throwing errors. |
-
-**Specifications**
-
-* **Input Data Requirements**
-    - Type Constraint: Only INT32, INT64, FLOAT, and DOUBLE data types are supported currently.
-    - Row Count Constraint: Varies by model. Errors will be thrown if the row count is below the minimum or above the maximum required by the model.
-    - Column Count Constraint**: Must include a time column. Univariate classification models support only one data column and will throw an error for multiple columns; multivariate classification models generally have no restrictions unless explicitly specified by the model itself.
-    - Order Constraint: Multivariate zero-shot classification models generally have no order restrictions unless explicitly specified by the model itself.
-
-* **Output Result**
-  The returned result is a table composed of time series data classification results, and its schema depends on the specific implementation of the model.
-
-2. **Usage Example**
-
-Suppose a project has 10 time series variables with an input length of 192. The custom `mantis_custom` model is used as an example for time series classification inference.
-
-* Model Registration
-```sql
-CREATE MODEL mantis_custom USING URI 'file:///path/to/mantis'
-```
-For detailed steps to register a custom model, refer to Section 4.3.
-
-* Execute SQL
-```sql
-IoTDB:etth> SELECT * FROM CLASSIFY (
-    MODEL_ID => 'mantis_custom',
-    INPUTS => (
-        SELECT Time, HUFL,HULL,MUFL,MULL,LUFL,LULL,OT,UT,MT,LT
-        FROM eg
-        WHERE TIME < 2016-07-09 00:00:00
-        ORDER BY TIME DESC
-        LIMIT 192) ORDER BY TIME
-)
-```
-
-* Execution Result
-```sql
-+--------+
-|category|
-+--------+
-|       4|
-+--------+
-```
-
-
-### 4.2 Model Fine-Tuning
-
-AINode supports model fine-tuning through SQL.
-
-**SQL Syntax**
-
-```SQL
-createModelStatement
-    | CREATE MODEL modelId=identifier (WITH HYPERPARAMETERS '(' hparamPair (',' hparamPair)* ')')? FROM MODEL existingModelId=identifier ON DATASET '(' targetData=string ')'
-    ;
-hparamPair
-    : hparamKey=identifier '=' hyparamValue=primaryExpression
-    ;
-```
-
-**Parameter Description**
-
-| Name | Description                                                                                                                                                                                                                                                  |
-|------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| modelId | Unique identifier of the fine-tuned model                                                                                                                                                                                                                    |
-| hparamPair | Hyperparameter key-value pairs used for fine-tuning, currently supports the following: <br>  `train_epochs`: int type, number of fine-tuning epochs  <br> `iter_per_epoch`: int type, number of iterations per epoch <br>  `learning_rate`: double type, learning rate |
-| existingModelId | Base model used for fine-tuning                                                                                                                                                                                                                              |
-| targetData | SQL to get the dataset used for fine-tuning                                                                                                                                                                                                                  |
-
-**Example**
-
-1. Select data from the ot field in the specified time range as the fine-tuning dataset, and create the model sundialv3 based on sundial.
-
-```SQL
-IoTDB> set sql_dialect=table
-Msg: The statement is executed successfully.
-IoTDB> CREATE MODEL sundialv3 FROM MODEL sundial ON DATASET ('SELECT time, ot from etth.eg where 1467302400000 <= time and time < 1517468400001')
-Msg: The statement is executed successfully.
-IoTDB> show models
-+---------------------+---------+-----------+---------+
-|              ModelId|ModelType|   Category|    State|
-+---------------------+---------+-----------+---------+
-|                arima|   sktime|    builtin|   active|
-|          holtwinters|   sktime|    builtin|   active|
-|exponential_smoothing|   sktime|    builtin|   active|
-|     naive_forecaster|   sktime|    builtin|   active|
-|       stl_forecaster|   sktime|    builtin|   active|
-|         gaussian_hmm|   sktime|    builtin|   active|
-|              gmm_hmm|   sktime|    builtin|   active|
-|                stray|   sktime|    builtin|   active|
-|             timer_xl|    timer|    builtin|   active|
-|              sundial|  sundial|    builtin|   active|
-|             chronos2|       t5|    builtin|   active|
-|            sundialv2|  sundial| fine_tuned|   active|
-|            sundialv3|  sundial| fine_tuned| training| 
-+---------------------+---------+-----------+---------+
-```
-
-2. Fine-tuning tasks are started asynchronously in the background, which can be seen in the AINode process log; after fine-tuning is completed, query and use the new model.
-
-```SQL
-IoTDB> show models
-+---------------------+---------+-----------+---------+
-|              ModelId|ModelType|   Category|    State|
-+---------------------+---------+-----------+---------+
-|                arima|   sktime|    builtin|   active|
-|          holtwinters|   sktime|    builtin|   active|
-|exponential_smoothing|   sktime|    builtin|   active|
-|     naive_forecaster|   sktime|    builtin|   active|
-|       stl_forecaster|   sktime|    builtin|   active|
-|         gaussian_hmm|   sktime|    builtin|   active|
-|              gmm_hmm|   sktime|    builtin|   active|
-|                stray|   sktime|    builtin|   active|
-|             timer_xl|    timer|    builtin|   active|
-|              sundial|  sundial|    builtin|   active|
-|             chronos2|       t5|    builtin|   active|
-|            sundialv2|  sundial| fine_tuned|   active|
-|            sundialv3|  sundial| fine_tuned|   active|
-+---------------------+---------+-----------+---------+
-```
-
-### 4.3 Register Custom Models
-
-**The following Transformers models can be registered to AINode:**
-
-1. AINode currently uses transformers version 4.56.2, so when building the model, avoid inheriting interfaces from lower versions (<4.50);
-2. The model must inherit a pipeline for inference tasks of AINode (currently supports prediction pipeline):
-   * iotdb-core/ainode/iotdb/ainode/core/inference/pipeline/basic_pipeline.py
-
-   **Before V2.0.9.3**
-    ```Python
-    class BasicPipeline(ABC):
-        def __init__(self, model_id, **model_kwargs):
-            self.model_info = model_info
-            self.device = model_kwargs.get("device", "cpu")
-            self.model = load_model(model_info, device_map=self.device, **model_kwargs)
-    
-        @abstractmethod
-        def preprocess(self, inputs, **infer_kwargs):
-            """
-            Preprocess the input data before the inference task starts, including shape validation and numerical conversion.
-            """
-            pass
-    
-        @abstractmethod
-        def postprocess(self, output, **infer_kwargs):
-            """
-            Postprocess the output results after the inference task is completed.
-            """
-            pass
-    
-    
-    class ForecastPipeline(BasicPipeline):
-        def __init__(self, model_info, **model_kwargs):
-            super().__init__(model_info, model_kwargs=model_kwargs)
-    
-        def preprocess(self, inputs: list[dict[str, dict[str, torch.Tensor] | torch.Tensor]], **infer_kwargs):
-            """
-            Preprocess the input data before passing it to the model for inference, validating the shape and type of the input data.
-    
-            Args:
-                inputs (list[dict]):
-                    Input data, a list of dictionaries, each dictionary contains:
-                        - 'targets': Tensor with shape (input_length,) or (target_count, input_length).
-                        - 'past_covariates': Optional, dictionary of tensors, each tensor with shape (input_length,).
-                        - 'future_covariates': Optional, dictionary of tensors, each tensor with shape (input_length,).
-    
-                infer_kwargs (dict, optional): Additional keyword arguments for inference, such as:
-                    - `output_length`(int): Used to validate the validity of 'future_covariates' if provided.
-    
-            Raises:
-                ValueError: If the input format is invalid (e.g., missing keys, invalid tensor shapes).
-    
-            Returns:
-                Preprocessed and validated input data that can be directly used for model inference.
-            """
-            pass
-    
-        def forecast(self, inputs, **infer_kwargs):
-            """
-            Perform forecasting on the given inputs.
-    
-            Parameters:
-                inputs: Input data for forecasting. The type and structure depend on the specific model implementation.
-                **infer_kwargs: Additional inference parameters, e.g.:
-                    - `output_length`(int): The number of time points the model should generate.
-    
-            Returns:
-                Forecast output, the specific form depends on the specific model implementation.
-            """
-            pass
-    
-        def postprocess(self, outputs: list[torch.Tensor], **infer_kwargs) -> list[torch.Tensor]:
-            """
-            Postprocess the model outputs after inference, validating the shape of the output data and ensuring it meets the expected dimensions.
-    
-            Args:
-                outputs:
-                    Model outputs, a list of 2D tensors, each tensor with shape `[target_count, output_length]`.
-    
-            Raises:
-                InferenceModelInternalException: If the output tensor shape is invalid (e.g., incorrect dimensions).
-                ValueError: If the output format is incorrect.
-    
-            Returns:
-                list[torch.Tensor]:
-                    Postprocessed outputs, which will be a list of 2D tensors.
-            """
-            pass
-    ```
-
-   **From V2.0.9.3 onwards**
-    ```Python
-    class BasicPipeline(ABC):
-        def __init__(self, model_id, **model_kwargs):
-            self.model_info = model_info
-            self.device = model_kwargs.get("device", "cpu")
-            self.model = load_model(model_info, device_map=self.device, **model_kwargs)
-    
-        @abstractmethod
-        def preprocess(self, inputs, **infer_kwargs):
-            """
-            Preprocess the input data before the inference task starts, including shape validation and numerical conversion.
-            """
-            pass
-            
-        @abstractmethod
-        def postprocess(self, output, **infer_kwargs):
-            """
-            Postprocess the output results after the inference task is completed.
-            """
-            pass
-            
-            
-    class ForecastPipeline(BasicPipeline):
-        def __init__(self, model_info, **model_kwargs):
-            super().__init__(model_info, model_kwargs=model_kwargs)
-    
-        def _preprocess(
-            self,
-            inputs: list[dict[str, dict[str, torch.Tensor] | torch.Tensor]],
-            **infer_kwargs,
-        ):
-            """
-            Preprocess the input data before passing it to the model for inference, validating the shape and type of the input data.
-    
-            Args:
-                inputs (list[dict[str, dict[str, torch.Tensor] | torch.Tensor]]):
-                    Input data, a list of dictionaries, each dictionary contains:
-                        - 'targets': Tensor with shape (input_length,) or (target_count, input_length).
-                        - 'past_covariates': Optional, dictionary of tensors, each tensor with shape (input_length,).
-                        - 'future_covariates': Optional, dictionary of tensors, each tensor with shape (input_length,).
-                
-                infer_kwargs (dict, optional): Additional keyword arguments for inference, such as:
-                    - `output_length`(int): Used to validate the validity of 'future_covariates' if provided.
-    
-            Raises:
-                ValueError: If the input format is invalid (e.g., missing keys, invalid tensor shapes).
-    
-            Returns:
-                Preprocessed and validated input data that can be directly used for model inference.
-            """
-            pass
-    
-        def forecast(self, inputs, **infer_kwargs):
-            """
-            Perform forecasting on the given inputs.
-    
-            Parameters:
-                inputs: Input data for forecasting. The type and structure depend on the specific model implementation.
-                **infer_kwargs: Additional inference parameters, e.g.:
-                    - `output_length`(int): The number of time points the model should generate.
-    
-            Returns:
-                Forecast output, the specific form depends on the specific model implementation.
-            """
-            pass
-            
-        def _postprocess(self, outputs, **infer_kwargs) -> list[torch.Tensor]:
-            """
-            Postprocess the model outputs after inference, validating the shape of the output data and ensuring it meets the expected dimensions.
-    
-            Args:
-                outputs:
-                    Model outputs, a list of 2D tensors, each tensor with shape `[target_count, output_length]`.
-    
-            Raises:
-                InferenceModelInternalException: If the output tensor shape is invalid (e.g., incorrect dimensions).
-                ValueError: If the output format is incorrect.
-    
-            Returns:
-                list[torch.Tensor]:
-                    Postprocessed outputs, which will be a list of 2D tensors.
-            """
-            pass
-    ```
-
-3. Modify the model configuration file `config.json` to ensure it contains the following fields:
-
-   **Before V2.0.9.3**
-    ```JSON
-    {
-        "auto_map": {
-            "AutoConfig": "config.Chronos2CoreConfig",        // Specify the model Config class
-            "AutoModelForCausalLM": "model.Chronos2Model"     // Specify the model class
-        },
-        "pipeline_cls": "pipeline_chronos2.Chronos2Pipeline", // Specify the inference pipeline for the model
-        "model_type": "custom_t5",                            // Specify the model type
-    }
-    ```
-    * The model Config class and model class **must** be specified via `auto_map`;
-    * The inference pipeline class **must** be inherited and specified;
-    * For built-in and user-defined models managed by AINode, `model_type` also serves as a unique non-duplicable identifier. That is, the model type to be registered must not duplicate any existing model types; models created via fine-tuning will inherit the model type of the original model.
-
-   **From V2.0.9.3 onwards**
-   > The `model_type` parameter is **not required**
-    ```JSON
-    {
-        "auto_map": {
-            "AutoConfig": "config.Chronos2CoreConfig",        // Specify the model Config class
-            "AutoModelForCausalLM": "model.Chronos2Model"     // Specify the model class
-        },
-        "pipeline_cls": "pipeline_chronos2.Chronos2Pipeline", // Specify the inference pipeline for the model
-    }
-    ```
-    * The model Config class and model class **must** be specified via `auto_map`;
-    * The inference pipeline class **must** be inherited and specified;
-
-4. Ensure the model directory to be registered contains the following files, and the model configuration file name and weight file name are not customizable:
-   * Model configuration file: config.json;
-   * Model weight file: model.safetensors;
-   * Model code: other .py files.
-
-**The SQL syntax for registering custom models is as follows:**
-
-```SQL
-CREATE MODEL <model_id> USING URI <uri>
-```
-
-**Parameter Description:**
-
-* **model_id**: Unique identifier for the custom model; cannot be duplicated, with the following constraints:
-    * Allowed characters: [0-9 a-z A-Z \_ ] (letters, numbers (not at the beginning), underscore (not at the beginning))
-    * Length limit: 2-64 characters
-    * Case-sensitive
-* **uri**: Local URI address containing the model code and weights.
-
-**Registration Example:**
-
-Upload a custom Transformers model from a local path, AINode will copy the folder to the user_defined directory.
-
-```SQL
-CREATE MODEL chronos2 USING URI 'file:///path/to/chronos2'
-```
-
-After executing the SQL, the registration process will be asynchronous. The registration status of the model can be viewed by checking the model display (see the "Viewing Models" section). After the model is registered successfully, it can be called using normal query methods for model inference.
-
-### 4.4 Viewing Models
-
-Registered models can be queried using the view command.
-
-```SQL
-SHOW MODELS
-```
-
-In addition to displaying all model information directly, you can specify `model_id` to view the information of a specific model.
-
-```SQL
-SHOW MODELS <model_id> -- Only show specific model
-```
-
-The result of the model display contains the following:
-
-| **ModelId** | **ModelType** | **Category** | **State** |
-| ------------------- | --------------------- | -------------------- | ----------------- |
-| Model ID | Model Type | Model Category | Model State |
-
-Where, the State model status machine flowchart is as follows:
-
-![](/img/ainode-upgrade-state-timecho-en.png)
-
-State machine flow description:
-
-1. After starting AINode, executing `show models` command, only **system built-in (BUILTIN)** models can be viewed.
-2. Users can import their own models, which are identified as **user-defined (USER_DEFINED)**; AINode will try to parse the model type (ModelType) from the model configuration file; if parsing fails, this field will be displayed as empty.
-3. Time series large models (built-in models) do not have weight files packaged with AINode, and AINode automatically downloads them when starting.
-    1. During download, it is ACTIVATING, and after successful download, it becomes ACTIVE, and if failed, it becomes INACTIVE.
-4. After users start a model fine-tuning task, the model state during training is TRAINING, and after successful training, it becomes ACTIVE, and if failed, it becomes FAILED.
-5. If the fine-tuning task is successful, after fine-tuning, all ckpt (training files) will be statistically analyzed to find the best file and automatically renamed to the user-specified model_id.
-
-**Viewing Example**
-
-```SQL
-IoTDB> show models
-+---------------------+--------------+--------------+-------------+
-|              ModelId|     ModelType|      Category|        State|
-+---------------------+--------------+--------------+-------------+
-|                arima|        sktime|       builtin|       active|
-|          holtwinters|        sktime|       builtin|       active|
-|exponential_smoothing|        sktime|       builtin|       active|
-|     naive_forecaster|        sktime|       builtin|       active|
-|       stl_forecaster|        sktime|       builtin|       active|
-|         gaussian_hmm|        sktime|       builtin|       active|
-|              gmm_hmm|        sktime|       builtin|       active|
-|                stray|        sktime|       builtin|       active|
-|               custom|              |  user_defined|       active|
-|             timer_xl|         timer|       builtin|   activating|
-|              sundial|       sundial|       builtin|       active|
-|           sundialx_1|       sundial|    fine_tuned|       active|
-|           sundialx_4|       sundial|    fine_tuned|     training|
-|           sundialx_5|       sundial|    fine_tuned|       failed|
-|             chronos2|            t5|       builtin|     inactive|
-+---------------------+--------------+--------------+-------------+
-```
-
-**Built-in Traditional Time Series Models:**
-
-| Model Name                              | Core Concept                                                                 | Applicable Scenarios                                      | Key Features                                                                 |
-|-----------------------------------------|------------------------------------------------------------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------|
-| **ARIMA** (Autoregressive Integrated Moving Average) | Combines AR, differencing (I), and MA for stationary or differenced series | Univariate forecasting (stock prices, sales, economics)  | 1. For linear trends with weak seasonality2. Requires (p,d,q) tuning3. Sensitive to missing values |
-| **Holt-Winters** (Triple Exponential Smoothing) | Exponential smoothing with level, trend, and seasonal components           | Data with clear trend & seasonality (monthly sales, power demand) | 1. Handles additive/multiplicative seasonality2. Weights recent data higher3. Simple implementation |
-| **Exponential Smoothing**               | Weighted average of history with exponentially decaying weights            | Trending but non-seasonal data (short-term demand)        | 1. Few parameters, simple computation2. Suitable for stable/slow-changing series3. Extensible to double/triple smoothing |
-| **Naive Forecaster**                    | Uses last observation as next prediction (simplest baseline)               | Benchmarking or data with no clear pattern                | 1. No training needed2. Sensitive to sudden changes3. Seasonal variant uses prior season value |
-| **STL Forecaster**                      | Decomposes series into trend, seasonal, residual; forecasts components     | Complex seasonality/trends (climate, traffic)             | 1. Handles non-fixed seasonality2. Robust to outliers3. Components can use other models |
-| **Gaussian HMM**                        | Hidden states generate observations; each state follows Gaussian distribution | State sequence prediction/classification (speech, finance) | 1. Models temporal state transitions2. Observations independent per state3. Requires state count |
-| **GMM HMM**                             | Extends Gaussian HMM; each state uses Gaussian Mixture Model               | Multi-modal observation scenarios (motion recognition, biosignals) | 1. More flexible than single Gaussian2. Higher complexity3. Requires GMM component count |
-| **STRAY** (Search for Outliers using Random Projection and Adaptive Thresholding) | Uses SVD to detect anomalies in high-dimensional time series             | High-dimensional anomaly detection (sensor networks, IT monitoring) | 1. No distribution assumption2. Handles high dimensions3. Sensitive to global anomalies |
-
-**Built-in Time Series Large Models:**
-
-| Model Name      | Core Concept                                                                 | Applicable Scenarios                                      | Key Features                                                                 |
-|-----------------|------------------------------------------------------------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------|
-| **Timer-XL**    | Long-context time series large model pretrained on massive industrial data  | Complex industrial forecasting requiring ultra-long history (energy, aerospace, transport) | 1. Supports input of tens of thousands of time points2. Covers non-stationary, multivariate, and covariate scenarios3. Pretrained on trillion-scale high-quality industrial IoT data |
-| **Timer-Sundial** | Generative foundation model with "Transformer + TimeFlow" architecture     | Zero-shot forecasting requiring uncertainty quantification (finance, supply chain, renewable energy) | 1. Strong zero-shot generalization; supports point & probabilistic forecasting2. Flexible analysis of any prediction distribution statistic3. Innovative flow-matching architecture for efficient non-deterministic sample generation |
-| **Chronos-2**   | Universal time series foundation model based on discrete tokenization       | Rapid zero-shot univariate forecasting; scenarios enhanced by covariates (promotions, weather) | 1. Powerful zero-shot probabilistic forecasting2. Unified multi-variable & covariate modeling (strict input requirements):&nbsp;&nbsp;a. Future covariate names ⊆ historical covariate names&nbsp;&nbsp;b. Each historical covariate length = target length&nbsp;&nbsp;c. Each future covariate length =  [...]
-
-### 4.5 Model Deletion
-
-Registered models can be deleted via SQL. AINode removes the corresponding model folder under `user_defined`. Syntax:
-```SQL
-DROP MODEL <model_id>
-```
-- Requires specifying an existing `model_id`.
-- Deletion is asynchronous (status: `DROPPING`), during which the model cannot be used for inference.
-- **Built-in models cannot be deleted.**
-
-### 4.6 Loading/Unloading Models
-
-AINode supports two loading strategies:
-* **On-Demand Loading**: Load model temporarily during inference, then release resources. Suitable for testing or low-load scenarios.
-* **Persistent Loading**: Keep model instances resident in CPU memory or GPU VRAM to support high-concurrency inference. Users specify load/unload targets via SQL; AINode auto-manages instance counts. Current loaded status is queryable.
-
-Details below:
-
-1. **Configuration Parameters**  
-   Edit these settings to control persistent loading behavior:
-   ```properties
-   # Ratio of total device memory/VRAM usable by AINode for inference
-   # Datatype: Float
-   ain_inference_memory_usage_ratio=0.4
-   
-   # Memory overhead ratio per loaded model instance (model_size * this_value)
-   # Datatype: Float
-   ain_inference_extra_memory_ratio=1.2
-   ```
-
-2. **List Available Devices**
-   ```SQL
-   SHOW AI_DEVICES
-   ```
-   Example:
-   ```SQL
-   IoTDB> SHOW AI_DEVICES
-   +-------------+
-   |     DeviceId|
-   +-------------+
-   |          cpu|
-   |            0|
-   |            1|
-   +-------------+
-   ```
-
-3. **Load Model**  
-   Manually load model; system auto-balances instance count based on resources:
-   ```SQL
-   LOAD MODEL <existing_model_id> TO DEVICES <device_id>(, <device_id>)*
-   ```
-   Parameters:
-    * `existing_model_id`: Model ID (current version supports `timer_xl` and `sundial` only)
-    * `device_id`:
-        * `cpu`: Load into server memory
-        * `gpu_id`: Load into specified GPU(s), e.g., `'0,1'` for GPUs 0 and 1  
-          Example:
-   ```SQL
-   LOAD MODEL sundial TO DEVICES 'cpu,0,1'
-   ```
-
-4. **Unload Model**  
-   Unload all instances of a model; system reallocates freed resources:
-   ```SQL
-   UNLOAD MODEL <existing_model_id> FROM DEVICES <device_id>(, <device_id>)*
-   ```
-   Parameters same as `LOAD MODEL`.  
-   Example:
-   ```SQL
-   UNLOAD MODEL sundial FROM DEVICES 'cpu,0,1'
-   ```
-
-5. **View Loaded Models**
-   ```SQL
-   SHOW LOADED MODELS
-   SHOW LOADED MODELS <device_id>(, <device_id>)*  -- Filter by device
-   ```
-   Example (sundial loaded on CPU, GPU 0, GPU 1):
-   ```SQL
-   IoTDB> SHOW LOADED MODELS
-   +-------------+--------------+------------------+
-   |     DeviceId|       ModelId|  Count(instances)|
-   +-------------+--------------+------------------+
-   |          cpu|       sundial|                 4|
-   |            0|       sundial|                 6|
-   |            1|       sundial|                 6|
-   +-------------+--------------+------------------+
-   ```
-    * `DeviceId`: Device identifier
-    * `ModelId`: Loaded model ID
-    * `Count(instances)`: Number of model instances per device (auto-assigned by system)
-
-### 4.7 Large Time Series Models
-
-AINode supports multiple large time series models. For deployment details, refer to [Time Series Large Model](../AI-capability/TimeSeries-Large-Model_Upgrade_timecho.md)
-
-### 5. Permission Management
-
-Use IoTDB's built-in authentication for AINode permissions. Users need `USE_MODEL` permission to manage models and access input data for inference.
-
-| **Permission**      | **Scope**                      | **Administrator (default ROOT)** | **Normal User** |
-|---------------------|--------------------------------|----------------------------------|-----------------|
-| USE_MODEL           | create model / show models / drop model | √                               | √               |
-| READ_SCHEMA&READ_DATA | forecast                        | √                               | √               |
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/AI-capability/AINode_timecho.md b/src/UserGuide/Master/Table/AI-capability/AINode_timecho.md
deleted file mode 100644
index 3a1570f6..00000000
--- a/src/UserGuide/Master/Table/AI-capability/AINode_timecho.md
+++ /dev/null
@@ -1,482 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# AINode
-
-AINode is a native IoTDB node that supports the registration, management, and invocation of time-series-related models. It comes with built-in industry-leading self-developed time-series large models, such as the Timer series developed by Tsinghua University. These models can be invoked through standard SQL statements, enabling real-time inference of time series data at the millisecond level, and supporting application scenarios such as trend forecasting, missing value imputation, and an [...]
-
-> Available since V2.0.5.1
-
-The system architecture is shown below:
-::: center
-<img src="/img/AINode-0-en.png" style="zoom:50 percent" />
-::: 
-
-The responsibilities of the three nodes are as follows:
-
-- **ConfigNode:**
-    - Manages distributed nodes and handles load balancing across the system.
-- **DataNode:**
-    - Receives and parses user SQL queries.
-    - Stores time-series data.
-    - Performs preprocessing computations on raw data.
-- **AINode:**
-    - Manages and utilizes time-series models (including training/inference).
-    - Supports deep learning and machine learning workflows.
-
-## 1. Advantageous features
-
-Compared with building a machine learning service alone, it has the following advantages:
-
-- **Simple and easy to use**: no need to use Python or Java programming, the complete process of machine learning model management and inference can be completed using SQL statements.  Creating a model can be done using the CREATE MODEL statement, and using a model for inference can be done using the SELECT * FROM FORECAST (...)  statement, making it simpler and more convenient to use.
-
-- **Avoid Data Migration**: With IoTDB native machine learning, data stored in IoTDB can be directly applied to the inference of machine learning models without having to move the data to a separate machine learning service platform, which accelerates data processing, improves security, and reduces costs.
-
-![](/img/AInode1.png)
-
-- **Built-in Advanced Algorithms**: supports industry-leading machine learning analytics algorithms covering typical timing analysis tasks, empowering the timing database with native data analysis capabilities. Such as:
-  - **Time Series Forecasting**: learns patterns of change from past time series; thus outputs the most likely prediction of future series based on observations at a given past time.
-  - **Anomaly Detection for Time Series**: detects and identifies outliers in a given time series data, helping to discover anomalous behaviour in the time series.
-  - **Annotation for Time Series (Time Series Annotation)**: Adds additional information or markers, such as event occurrence, outliers, trend changes, etc., to each data point or specific time period to better understand and analyse the data.
-
-
-## 2. Basic Concepts
-
-- **Model**: A machine learning model takes time series data as input and outputs analysis task results or decisions. Models are the basic management units of AINode, supporting model operations such as creation (registration), deletion, query, modification (fine-tuning), and usage (inference).
-- **Create**: Load externally designed or trained model files/algorithms into AINode for unified management and usage by IoTDB.
-- **Inference**: Use the created model to complete time series analysis tasks applicable to the model on specified time series data.
-- **Built-in Capabilities**: AINode comes with machine learning algorithms or self-developed models for common time series analysis scenarios (e.g., forecasting and anomaly detection).
-![](/img/AINode-en.png)
-
-## 3. Installation and Deployment
-
-The deployment of AINode can be found in the document [AINode Deployment](../Deployment-and-Maintenance/AINode_Deployment_timecho.md) .
-
-
-## 4. Usage Guide
-
-AINode provides model creation and deletion functions for time series models. Built-in models do not require creation and can be used directly.
-
-### 4.1 Registering Models
-
-Trained deep learning models can be registered by specifying their input and output vector dimensions for inference.
-
-Models that meet the following criteria can be registered with AINode:
-
-1. AINode currently supports models trained with PyTorch 2.4.0. Features above version 2.4.0 should be avoided.
-2. AINode supports models stored using PyTorch JIT (`model.pt`), which must include both the model structure and weights.
-3. The model input sequence can include single or multiple columns. If multi-column, it must match the model capabilities and configuration file.
-4. Model configuration parameters must be clearly defined in the `config.yaml` file. When using the model, the input and output dimensions defined in `config.yaml` must be strictly followed. Mismatches with the configuration file will cause errors.
-
-The SQL syntax for model registration is defined as follows:
-
-```SQL
-create model <model_id> using uri <uri>
-```
-
-Detailed meanings of SQL parameters:
-
-- **model_id**: The global unique identifier for the model, non-repeating. Model names have the following constraints:
-  - Allowed characters: [0-9 a-z A-Z _] (letters, digits (not at the beginning), underscores (not at the beginning))
-  - Length: 2-64 characters
-  - Case-sensitive
-- **uri**: The resource path of the model registration files, which should include the **model structure and weight file `model.pt` and the model configuration file `config.yaml`**
-
-  - **Model structure and weight file**: The weight file generated after model training, currently supporting `.pt` files from PyTorch training.
-
-  - **Model configuration file**: Parameters related to the model structure provided during registration, which must include input and output dimensions for inference:
-
-  | **Parameter Name** | **Description**           | **Example**            |
-    | ------------ | ---------------------------- | -------- |
-    | input_shape  | Rows and columns of model input | [96,2]   |
-    | output_shape | Rows and columns of model output | [48,2]   |  
-  
-  In addition to inference, data types of input and output can also be specified:
-
-  | **Parameter Name** | **Description**           | **Example**            |
-  | ------------------ | ------------------------- | ---------------------- |
-  | input_type         | Data type of model input  | ['float32', 'float32'] |
-  | output_type        | Data type of model output | ['float32', 'float32'] |
-
-  Additional notes can be specified for model management display:
-
-  | **Parameter Name** | **Description**                               | **Example**                                  |
-  | ------------------ | --------------------------------------------- | -------------------------------------------- |
-  | attributes         | Optional notes set by users for model display | 'model_type': 'dlinear', 'kernel_size': '25' |
-
-In addition to registering local model files, remote resource paths can be specified via URIs for registration, using open-source model repositories (e.g., HuggingFace).
-
-#### Example
-
-The [example folder](https://github.com/apache/iotdb/tree/master/integration-test/src/test/resources/ainode-example) contains model.pt (trained model) and config.yaml with the following content:
-
-```YAML
-configs:                
-    # Required
-    input_shape: [96, 2]      # Model accepts 96 rows x 2 columns of data
-    output_shape: [48, 2]     # Model outputs 48 rows x 2 columns of data
-    
-    # Optional (default to all float32, column count matches shape)
-    input_type: ["int64", "int64"]  # Data types of inputs, must match input column count
-    output_type: ["text", "int64"]  # Data types of outputs, must match output column count
-
-attributes:           # Optional user-defined notes
-   'model_type': 'dlinear'
-   'kernel_size': '25'
-```
-
-Register the model by specifying this folder as the loading path:
-
-```SQL
-IoTDB> create model dlinear_example using uri "file://./example"
-```
-
-Models can also be downloaded from HuggingFace for registration:
-
-```SQL
-IoTDB> create model dlinear_example using uri "https://huggingface.co/google/timesfm-2.0-500m-pytorch"
-```
-
-After SQL execution, registration proceeds asynchronously. The registration status can be checked via model display (see Model Display section). The registration success time mainly depends on the model file size.
-
-Once registered, the model can be invoked for inference through normal query syntax.
-
-### 4.2 Viewing Models
-
-Registered models can be queried using the `show models` command. The SQL definitions are:
-
-```SQL
-show models
-
-show models <model_id>
-```
-
-In addition to displaying all models, specifying a `model_id` shows details of a specific model. The display includes:
-
-| **ModelId** | **ModelType** | **Category**   | **State**   |
-|-------------|---------------|----------------|-------------|
-| Model ID    | Model Type    | Model Category | Model State |
-
-- Model State Transition Diagram
-
-![](/img/AINode-State-en.png)
-
-**Instructions:**
-
-1. Initialization:
-    - When AINode starts, show models only displays BUILT-IN models.
-2. Custom Model Import:
-    - Users can import custom models (marked as USER-DEFINED).
-    - The system attempts to parse the ModelTypefrom the config file.
-    - If parsing fails, the field remains empty.
-3. Foundation Model Weights:
-    - Time-series foundation model weights are not bundled with AINode.
-    - AINode automatically downloads them during startup.
-    - Download state: LOADING.
-4. Download Outcomes:
-    - Success → State changes to ACTIVE.
-    - Failure → State changes to INACTIVE.
-5. Fine-Tuning Process:
-    - When fine-tuning starts: State becomes TRAINING.
-    - Successful training → State transitions to ACTIVE.
-    - Training failure → State changes to FAILED.
-
-**Example**
-
-```SQL
-IoTDB> show models
-+---------------------+--------------------+--------------+---------+
-|              ModelId|           ModelType|      Category|    State|
-+---------------------+--------------------+--------------+---------+
-|                arima|               Arima|      BUILT-IN|   ACTIVE|
-|          holtwinters|         HoltWinters|      BUILT-IN|   ACTIVE|
-|exponential_smoothing|ExponentialSmoothing|      BUILT-IN|   ACTIVE|
-|     naive_forecaster|     NaiveForecaster|      BUILT-IN|   ACTIVE|
-|       stl_forecaster|       StlForecaster|      BUILT-IN|   ACTIVE|
-|         gaussian_hmm|         GaussianHmm|      BUILT-IN|   ACTIVE|
-|              gmm_hmm|              GmmHmm|      BUILT-IN|   ACTIVE|
-|                stray|               Stray|      BUILT-IN|   ACTIVE| 
-|               custom|                    |  USER-DEFINED|   ACTIVE|
-|              timerxl|            Timer-XL|      BUILT-IN|  LOADING|
-|              sundial|       Timer-Sundial|      BUILT-IN|   ACTIVE|
-|           sundialx_1|       Timer-Sundial|    FINE-TUNED|   ACTIVE|
-|           sundialx_2|       Timer-Sundial|    FINE-TUNED|   ACTIVE|
-|             sundialx|       Timer-Sundial|    FINE-TUNED|   ACTIVE|
-|           sundialx_4|       Timer-Sundial|    FINE-TUNED| TRAINING|
-|           sundialx_5|       Timer-Sundial|    FINE-TUNED|   FAILED|
-+---------------------+--------------------+--------------+---------+
-```
-
-
-### 4.3 Deleting Models
-
-Registered models can be deleted via SQL, which removes all related files under AINode:
-
-```SQL
-drop model <model_id>
-```
-
-Specify the registered `model_id` to delete the model. Since deletion involves data cleanup, the operation is not immediate, and the model state becomes `DROPPING`, during which it cannot be used for inference. **Note:** Built-in models cannot be deleted.
-
-### 4.4 Inference with Built-in Models
-
-SQL syntax:
-
-
-```SQL
-SELECT * FROM forecast(
-   input, 
-   model_id,
-   [output_length, 
-   output_start_time,
-   output_interval,
-   timecol, 
-   preserve_input,
-   model_options]?
-)
-```
-
-
-Built-in models do not require prior registration for inference. Simply use the `forecast` function and specify the `model_id` to invoke the model's inference capabilities.
-
-  - **Note**: Inference with built-in time series large models requires local availability of model weights in the directory `/IOTDB_AINODE_HOME/data/ainode/models/weights/model_id/`. If weights are missing, they will be automatically downloaded from HuggingFace. Ensure direct network access to HuggingFace.
-
-Parameter descriptions:
-
-| Parameter         | Type          | Attribute                                                | Description                                                  | Required | Notes                                                        |
-| ----------------- | ------------- | -------------------------------------------------------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
-| input             | Table         | SET SEMANTIC                                             | Input data for forecasting                                   | Yes      |                                                              |
-| model_id          | String        | Scalar                                                   | Name of the model to use                                     | Yes      | Must be non-empty and a built-in model; otherwise, errors like "MODEL_ID cannot be null" occur. |
-| output_length     | INT32         | Scalar (default: 96)                                     | Size of the output forecast window                           | No       | Must be > 0.                                                 |
-| output_start_time | Timestamp     | Scalar (default: last input timestamp + output_interval) | Start timestamp of the forecast results                      | No       | Can be negative (before 1970-01-01).                         |
-| output_interval   | Time interval | Scalar (default: inferred from input)                    | Time interval between forecast points (supports ns, us, ms, s, m, h, d, w) | No       | If > 0, uses user-specified interval; else, infers from input. |
-| timecol           | String        | Scalar (default: "time")                                 | Name of the timestamp column                                 | No       | Must exist in `input` and be of TIMESTAMP type; otherwise, errors occur. |
-| preserve_input    | Boolean       | Scalar (default: false)                                  | Retain all input rows in the output                          | No       |                                                              |
-| model_options     | String        | Scalar (default: empty)                                  | Model-specific key-value pairs (e.g., normalization)         | No       | Unsupported parameters are ignored. See appendix for built-in model parameters. |
-
-**Notes:**
-
-1. The `forecast` function predicts all columns in the input table by default (excluding the time column and columns specified in `partition by`).
-2. The `forecast` function does not require the input data to be in any specific order. It sorts the input data in ascending order by the timestamp (specified by the `TIMECOL` parameter) before invoking the model for prediction.
-3. Different models have varying requirements for the number of input data rows. If the input data has fewer rows than the minimum requirement, an error will be reported.
-    - Among the current built-in models in AINode:
-        - Timer-XL requires at least 96 rows of input data.
-        - Timer-Sundial requires at least 16 rows of input data.
-4. The result columns of the `forecast` function include all input columns from the input table, with their original data types preserved. If `preserve_input = true`, an additional `is_input` column will be included to indicate whether a row is from the input data.
-   - Currently, only columns of type INT32, INT64, FLOAT, or DOUBLE are supported for prediction. Otherwise, an error will occur: "The type of the column [%s] is [%s], only INT32, INT64, FLOAT, DOUBLE is allowed."
-5. `output_start_time` and `output_interval` only affect the generation of the timestamp column in the output results. Both are optional parameters:
-   - `output_start_time` defaults to the last timestamp of the input data plus `output_interval`.
-   - `output_interval` defaults to the sampling interval of the input data, calculated as: (last timestamp - first timestamp) / (number of rows - 1).
-   - The timestamp of the Nth output row is calculated as: `output_start_time + (N - 1) * output_interval`.
-
-**Example: Database and table must be pre-created**
-
-```sql
-create database etth
-create table eg (hufl FLOAT FIELD, hull FLOAT FIELD, mufl FLOAT FIELD, mull FLOAT FIELD, lufl FLOAT FIELD, lull FLOAT FIELD, ot FLOAT FIELD)
-```
-
-Using the ETTh1-tab dataset:[ETTh1-tab](/img/ETTh1-tab.csv)。
-
-**View supported models**
-
-```Bash
-IoTDB:etth> show models
-+---------------------+--------------------+--------+------+
-|              ModelId|           ModelType|Category| State|
-+---------------------+--------------------+--------+------+
-|                arima|               Arima|BUILT-IN|ACTIVE|
-|          holtwinters|         HoltWinters|BUILT-IN|ACTIVE|
-|exponential_smoothing|ExponentialSmoothing|BUILT-IN|ACTIVE|
-|     naive_forecaster|     NaiveForecaster|BUILT-IN|ACTIVE|
-|       stl_forecaster|       StlForecaster|BUILT-IN|ACTIVE|
-|         gaussian_hmm|         GaussianHmm|BUILT-IN|ACTIVE|
-|              gmm_hmm|              GmmHmm|BUILT-IN|ACTIVE|
-|                stray|               Stray|BUILT-IN|ACTIVE|
-|              sundial|       Timer-Sundial|BUILT-IN|ACTIVE|
-|             timer_xl|            Timer-XL|BUILT-IN|ACTIVE|
-+---------------------+--------------------+--------+------+
-Total line number = 10
-It costs 0.004s
-```
-
-**Inference with sundial model:**
-
-```Bash
-IoTDB:etth> select Time, HUFL,HULL,MUFL,MULL,LUFL,LULL,OT from eg LIMIT 96
-+-----------------------------+------+-----+-----+-----+-----+-----+------+
-|                         Time|  HUFL| HULL| MUFL| MULL| LUFL| LULL|    OT|
-+-----------------------------+------+-----+-----+-----+-----+-----+------+
-|2016-07-01T00:00:00.000+08:00| 5.827|2.009|1.599|0.462|4.203| 1.34|30.531|
-|2016-07-01T01:00:00.000+08:00| 5.693|2.076|1.492|0.426|4.142|1.371|27.787|
-|2016-07-01T02:00:00.000+08:00| 5.157|1.741|1.279|0.355|3.777|1.218|27.787|
-|2016-07-01T03:00:00.000+08:00|  5.09|1.942|1.279|0.391|3.807|1.279|25.044|
-......
-Total line number = 96
-It costs 0.119s
-
-IoTDB:etth> select * from forecast( 
-     model_id => 'sundial',
-     input => (select Time, ot from etth.eg where time >= 2016-08-07T18:00:00.000+08:00 limit 1440) order BY time,
-     output_length => 96
-)
-+-----------------------------+---------+
-|                         time|       ot|
-+-----------------------------+---------+
-|2016-10-06T18:00:00.000+08:00|20.781654|
-|2016-10-06T19:00:00.000+08:00|20.252121|
-|2016-10-06T20:00:00.000+08:00|19.960138|
-|2016-10-06T21:00:00.000+08:00|19.662334|
-......
-Total line number = 96
-It costs 1.615s
-```
-### 4.5 Fine-tuning Built-in Models
-> Only Timer-XL and Timer-Sundial support fine-tuning.
-
-
-The SQL syntax is as follows:
-
-
-```SQL
-create model <model_id> (with hyperparameters 
-(<parameterName>=<parameterValue>(, <parameterName>=<parameterValue>)*))?
-from model <existing_model_id>
-on dataset (inputSql)
-```
-
-#### Example
-
-1. Select the first 80% of data from the measurement `ot` as the fine-tuning dataset, and create the model `sundialv3` based on `sundial`.
-
-```SQL
-IoTDB> set sql_dialect=table
-Msg: The statement is executed successfully.
-IoTDB> CREATE MODEL sundialv3 FROM MODEL sundial ON DATASET ('SELECT time, ot from etth.eg where 1467302400000 <= time and time < 1517468400001')
-Msg: The statement is executed successfully.
-IoTDB> show models
-+---------------------+--------------------+----------+--------+
-|              ModelId|           ModelType|  Category|   State|
-+---------------------+--------------------+----------+--------+
-|                arima|               Arima|  BUILT-IN|  ACTIVE|
-|          holtwinters|         HoltWinters|  BUILT-IN|  ACTIVE|
-|exponential_smoothing|ExponentialSmoothing|  BUILT-IN|  ACTIVE|
-|     naive_forecaster|     NaiveForecaster|  BUILT-IN|  ACTIVE|
-|       stl_forecaster|       StlForecaster|  BUILT-IN|  ACTIVE|
-|         gaussian_hmm|         GaussianHmm|  BUILT-IN|  ACTIVE|
-|              gmm_hmm|              GmmHmm|  BUILT-IN|  ACTIVE|
-|                stray|               Stray|  BUILT-IN|  ACTIVE|
-|              sundial|       Timer-Sundial|  BUILT-IN|  ACTIVE|
-|             timer_xl|            Timer-XL|  BUILT-IN|  ACTIVE|
-|            sundialv2|       Timer-Sundial|FINE-TUNED|  ACTIVE|
-|            sundialv3|       Timer-Sundial|FINE-TUNED|TRAINING|
-+---------------------+--------------------+----------+--------+
-```
-
-2. The fine-tuning task starts asynchronously in the background, and logs can be viewed in the AINode process. After fine-tuning is complete, query and use the new model
-
-```SQL
-IoTDB> show models
-+---------------------+--------------------+----------+------+
-|              ModelId|           ModelType|  Category| State|
-+---------------------+--------------------+----------+------+
-|                arima|               Arima|  BUILT-IN|ACTIVE|
-|          holtwinters|         HoltWinters|  BUILT-IN|ACTIVE|
-|exponential_smoothing|ExponentialSmoothing|  BUILT-IN|ACTIVE|
-|     naive_forecaster|     NaiveForecaster|  BUILT-IN|ACTIVE|
-|       stl_forecaster|       StlForecaster|  BUILT-IN|ACTIVE|
-|         gaussian_hmm|         GaussianHmm|  BUILT-IN|ACTIVE|
-|              gmm_hmm|              GmmHmm|  BUILT-IN|ACTIVE|
-|                stray|               Stray|  BUILT-IN|ACTIVE|
-|              sundial|       Timer-Sundial|  BUILT-IN|ACTIVE|
-|             timer_xl|            Timer-XL|  BUILT-IN|ACTIVE|
-|            sundialv2|       Timer-Sundial|FINE-TUNED|ACTIVE|
-|            sundialv3|       Timer-Sundial|FINE-TUNED|ACTIVE|
-+---------------------+--------------------+----------+------+
-```
-
-### 4.6 Time Series Large Model Import Steps
-
-AINode supports multiple time series large models. For deployment, refer to [Time Series Large Model](../AI-capability/TimeSeries-Large-Model.md)
-
-
-## 5 Permission Management
-
-AINode uses IoTDB's authentication for permission management. Users need `USE_MODEL` permission for model management and `READ_DATA` permission for inference (to access input data sources).
-
-| **Permission** | **Scope**                | **Admin (ROOT)** | **Regular User** | **Path-Related** |
-| -------------- | ------------------------ | ---------------- | ---------------- | ---------------- |
-| USE_MODEL      | Create/Show/Drop models  | ✔️                | ✔️                | ❌                |
-| READ_DATA      | Call inference functions | ✔️                | ✔️                | ✔️                |
-
-
-## 6 Appendix
-
-**Arima**
-
-| Parameter               | Description                                                  | Default   |
-| ----------------------- | ------------------------------------------------------------ | --------- |
-| order                   | ARIMA order `(p, d, q)`: p=autoregressive, d=differencing, q=moving average. | (1,0,0)   |
-| seasonal_order          | Seasonal ARIMA order `(P, D, Q, s)`: seasonal AR, differencing, MA orders, and season length (e.g., 12 for monthly data). | (0,0,0,0) |
-| method                  | Optimizer: 'newton', 'nm', 'bfgs', 'lbfgs', 'powell', 'cg', 'ncg', 'basinhopping'. | 'lbfgs'   |
-| maxiter                 | Maximum iterations/function evaluations.                     | 50        |
-| out_of_sample_size      | Number of tail samples for validation (not used in fitting). | 0         |
-| scoring                 | Scoring function for validation (sklearn metric or custom).  | 'mse'     |
-| trend                   | Trend term configuration. If `with_intercept=True` and None, defaults to 'c' (constant). | None      |
-| with_intercept          | Include intercept term.                                      | True      |
-| time_varying_regression | Allow regression coefficients to vary over time.             | False     |
-| enforce_stationarity    | Enforce stationarity of AR components.                       | True      |
-| enforce_invertibility   | Enforce invertibility of MA components.                      | True      |
-| simple_differencing     | Use differenced data for estimation (sacrifices first rows). | False     |
-| measurement_error       | Assume observation errors.                                   | False     |
-| mle_regression          | Use maximum likelihood for regression (must be False if `time_varying_regression=True`). | True      |
-| hamilton_representation | Use Hamilton representation (default is Harvey).             | False     |
-| concentrate_scale       | Exclude scale parameter from likelihood (reduces parameters). | False     |
-
-**NaiveForecaster**
-
-| Parameter | Description                                                  | Default |
-| --------- | ------------------------------------------------------------ | ------- |
-| strategy  | Forecasting strategy: - `"last"`: Use last training value (seasonal if `sp`>1). - `"mean"`: Use mean of last window (seasonal if `sp`>1). - `"drift"`: Fit line through last window and extrapolate (non-robust to NaN). | "last"  |
-| sp        | Seasonal period. `None` or 1 means no seasonality; 12 means monthly. | 1       |
-
-**STLForecaster**
-
-| Parameter     | Description                                                | Default |
-| ------------- | ---------------------------------------------------------- | ------- |
-| sp            | Seasonal period (units). Passed to statsmodels' STL.       | 2       |
-| seasonal      | Seasonal smoothing window (odd ≥3, typically ≥7).          | 7       |
-| seasonal_deg  | LOESS polynomial degree for season (0=constant, 1=linear). | 1       |
-| trend_deg     | LOESS polynomial degree for trend (0 or 1).                | 1       |
-| low_pass_deg  | LOESS polynomial degree for low-pass (0 or 1).             | 1       |
-| seasonal_jump | Interpolation step for season LOESS (larger = faster).     | 1       |
-| trend_jump    | Interpolation step for trend LOESS (larger = faster).      | 1       |
-| low_pass_jump | Interpolation step for low-pass LOESS.                     | 1       |
-
-**ExponentialSmoothing (HoltWinters)**
-
-| Parameter             | Description                                                  | Default     |
-| --------------------- | ------------------------------------------------------------ | ----------- |
-| damped_trend          | Use damped trend (trend flattens instead of growing infinitely). | True        |
-| initialization_method | Initialization method: - `"estimated"`: Fit to estimate initial states - `"heuristic"`: Use heuristic for initial level/trend/season - `"known"`: User-provided initial values - `"legacy-heuristic"`: Legacy compatibility | "estimated" |
-| optimized             | Optimize parameters via maximum likelihood.                  | True        |
-| remove_bias           | Remove bias to make residuals' mean zero.                    | False       |
-| use_brute             | Use brute-force grid search for initial parameters.          |             |
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/AI-capability/TimeSeries-Large-Model_Upgrade_timecho.md b/src/UserGuide/Master/Table/AI-capability/TimeSeries-Large-Model_Upgrade_timecho.md
deleted file mode 100644
index c7fde0bf..00000000
--- a/src/UserGuide/Master/Table/AI-capability/TimeSeries-Large-Model_Upgrade_timecho.md
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# Time Series Large Models
-
-## 1. Introduction
-
-Time Series Large Models are foundational models specifically designed for time series data analysis. The IoTDB team has been developing the Timer, a self-researched foundational time series model, which is based on the Transformer architecture and pre-trained on massive multi-domain time series data, supporting downstream tasks such as time series forecasting, anomaly detection, and time series imputation. The AINode platform developed by the team also supports the integration of cuttin [...]
-
-All technical achievements in the field of time series large models related to this paper (including both the team's self-researched models and industry-leading directions) have been published in top international machine learning conferences, with specific details in the appendix.
-
-## 2. Application Scenarios
-
-* **Time Series Forecasting**: Providing time series data forecasting services for industrial production, natural environments, and other fields to help users understand future trends in advance.
-* **Data Imputation**: Performing context-based filling for missing segments in time series to enhance the continuity and integrity of the dataset.
-* **Anomaly Detection**: Using autoregressive analysis technology to monitor time series data in real-time, promptly alerting potential anomalies.
-
-![](/img/LargeModel10.png)
-
-## 3. Timer-1 Model
-
-The Timer model (non-built-in model) not only demonstrates excellent few-shot generalization and multi-task adaptability, but also acquires a rich knowledge base through pre-training, endowing it with universal capabilities to handle diverse downstream tasks, with the following characteristics:
-
-* **Generalizability**: The model can achieve industry-leading deep model prediction results through fine-tuning with only a small number of samples.
-* **Universality**: The model design is flexible, capable of adapting to various different task requirements, and supports variable input and output lengths, enabling it to function effectively in various application scenarios.
-* **Scalability**: As the number of model parameters increases or the scale of pre-training data expands, the model's performance will continue to improve, ensuring that the model can continuously optimize its prediction effectiveness as time and data volume grow.
-
-![](/img/model01.png)
-
-## 4. Timer-XL Model
-
-Timer-XL further extends and upgrades the network structure based on Timer, achieving comprehensive breakthroughs in multiple dimensions:
-
-* **Ultra-Long Context Support**: This model breaks through the limitations of traditional time series forecasting models, supporting the processing of inputs with thousands of Tokens (equivalent to tens of thousands of time points), effectively solving the context length bottleneck problem.
-* **Coverage of Multi-Variable Forecasting Scenarios**: Supports various forecasting scenarios, including the prediction of non-stationary time series, multi-variable prediction tasks, and predictions involving covariates, meeting diversified business needs.
-* **Large-Scale Industrial Time Series Dataset**: Pre-trained on a trillion-scale time series dataset from the industrial IoT field, the dataset possesses important characteristics such as massive scale, excellent quality, and rich domain coverage, covering multiple fields including energy, aerospace, steel, and transportation.
-
-![](/img/model02.png)
-
-## 5. Timer-Sundial Model
-
-Timer-Sundial is a series of generative foundational models focused on time series forecasting. The base version has 128 million parameters and has been pre-trained on 1 trillion time points, with the following core characteristics:
-
-* **Strong Generalization Performance**: Possesses zero-shot forecasting capabilities and can support both point forecasting and probabilistic forecasting simultaneously.
-* **Flexible Prediction Distribution Analysis**: Not only can it predict means or quantiles, but it can also evaluate any statistical properties of the prediction distribution through the raw samples generated by the model.
-* **Innovative Generative Architecture**: Employs a "Transformer + TimeFlow" collaborative architecture - the Transformer learns the autoregressive representations of time segments, while the TimeFlow module transforms random noise into diverse prediction trajectories based on the flow-matching framework (Flow-Matching), achieving efficient generation of non-deterministic samples.
-
-![](/img/model03.png)
-
-## 6. Chronos-2 Model
-
-Chronos-2 is a universal time series foundational model developed by the Amazon Web Services (AWS) research team, evolved from the Chronos discrete token modeling paradigm. This model is suitable for both zero-shot univariate forecasting and covariate forecasting. Its main characteristics include:
-
-* **Probabilistic Forecasting Capability**: The model outputs multi-step prediction results in a generative manner, supporting quantile or distribution-level forecasting to characterize future uncertainty.
-* **Zero-Shot General Forecasting**: Leveraging the contextual learning ability acquired through pre-training, it can directly execute forecasting on unseen datasets without retraining or parameter updates.
-* **Unified Modeling of Multi-Variable and Covariates**: Supports joint modeling of multiple related time series and their covariates under the same architecture to improve prediction performance for complex tasks. However, it has strict input requirements:
-    * The set of names of future covariates must be a subset of the set of names of historical covariates;
-    * The length of each historical covariate must equal the length of the target variable;
-    * The length of each future covariate must equal the prediction length;
-* **Efficient Inference and Deployment**: The model adopts a compact encoder-only structure, maintaining strong generalization capabilities while ensuring inference efficiency.
-
-![](/img/timeseries-large-model-chronos2.png)
-
-## 7. Performance Showcase
-
-Time Series Large Models can adapt to real time series data from various different domains and scenarios, demonstrating excellent processing capabilities across various tasks. The following shows the actual performance on different datasets:
-
-**Time Series Forecasting:**
-
-Leveraging the forecasting capabilities of Time Series Large Models, future trends of time series can be accurately predicted. The blue curve in the following figure represents the predicted trend, while the red curve represents the actual trend, with both curves highly consistent.
-
-![](/img/LargeModel03.png)
-
-**Data Imputation:**
-
-Using Time Series Large Models to fill missing data segments through predictive imputation.
-
-![](/img/timeseries-large-model-data-imputation.png)
-
-**Anomaly Detection:**
-
-Using Time Series Large Models to accurately identify outliers that deviate significantly from the normal trend.
-
-![](/img/LargeModel05.png)
-
-## 8. Deployment and Usage
-
-1. Open the IoTDB CLI console and check that the ConfigNode, DataNode, and AINode nodes are all Running.
-
-```Plain
-IoTDB> show cluster
-+------+----------+-------+---------------+------------+--------------+-----------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|       Version|  BuildInfo|
-+------+----------+-------+---------------+------------+--------------+-----------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|       2.0.5.1|    069354f|
-|     1|  DataNode|Running|      127.0.0.1|       10730|       2.0.5.1|    069354f|
-|     2|    AINode|Running|      127.0.0.1|       10810|       2.0.5.1|069354f-dev|
-+------+----------+-------+---------------+------------+--------------+-----------+
-Total line number = 3
-It costs 0.140s
-```
-
-2. In an online environment, the first startup of the AINode node will automatically pull the Timer-XL, Sundial, and Chronos2 models.
-
-   > Note:
-   >
-   > * The AINode installation package does not include model weight files.
-   > * The automatic pull feature depends on the deployment environment having HuggingFace network access capability.
-   > * AINode supports manual upload of model weight files. For specific operation methods, refer to [Importing Weight Files](../Deployment-and-Maintenance/AINode_Deployment_Upgrade_timecho.md#_3-3-importing-built-in-weight-files).
-
-3. Check if the models are available.
-
-```Bash
-IoTDB> show models
-+---------------------+---------+--------+--------+
-|              ModelId|ModelType|Category|   State|
-+---------------------+---------+--------+--------+
-|                arima|   sktime| builtin|  active|
-|          holtwinters|   sktime| builtin|  active|
-|exponential_smoothing|   sktime| builtin|  active|
-|     naive_forecaster|   sktime| builtin|  active|
-|       stl_forecaster|   sktime| builtin|  active|
-|         gaussian_hmm|   sktime| builtin|  active|
-|              gmm_hmm|   sktime| builtin|  active|
-|                stray|   sktime| builtin|  active|
-|             timer_xl|    timer| builtin|  active|
-|              sundial|  sundial| builtin|  active|
-|             chronos2|       t5| builtin|  active|
-+---------------------+---------+--------+--------+
-```
-
-### Appendix
-
-**[1]** Timer: Generative Pre-trained Transformers Are Large Time Series Models, Yong Liu, Haoran Zhang, Chenyu Li, Xiangdong Huang, Jianmin Wang, Mingsheng Long. [↩ Back]()
-
-**[2]** TIMER-XL: LONG-CONTEXT TRANSFORMERS FOR UNIFIED TIME SERIES FORECASTING, Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long. [↩ Back]()
-
-**[3]** Sundial: A Family of Highly Capable Time Series Foundation Models, Yong Liu, Guo Qin, Zhiyuan Shi, Zhi Chen, Caiyin Yang, Xiangdong Huang, Jianmin Wang, Mingsheng Long, **ICML 2025 spotlight**. [↩ Back]()
-
-**[4]** Chronos-2: From Univariate to Universal Forecasting, Abdul Fatir Ansari, Oleksandr Shchur, Jaris Küken, Andreas Auer, Boran Han, Pedro Mercado, Syama Sundar Rangapuram, Huibin Shen, Lorenzo Stella, Xiyuan Zhang, Mononito Goswami, Shubham Kapoor, Danielle C. Maddix, Pablo Guerron, Tony Hu, Junming Yin, Nick Erickson, Prateek Mutalik Desai, Hao Wang, Huzefa Rangwala, George Karypis, Yuyang Wang, Michael Bohlke-Schneider, **arXiv:2510.15821**. [↩ Back]()
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/Programming-CSharp-Native-API_timecho.md b/src/UserGuide/Master/Table/API/Programming-CSharp-Native-API_timecho.md
deleted file mode 100644
index 7c515df9..00000000
--- a/src/UserGuide/Master/Table/API/Programming-CSharp-Native-API_timecho.md
+++ /dev/null
@@ -1,403 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# C# Native API
-
-## 1. Feature Overview
-
-IoTDB provides a C# native client driver and corresponding connection pool, offering object-oriented interfaces that allow direct assembly of time-series objects for writing without SQL construction. It is recommended to use the connection pool for multi-threaded parallel database operations.
-
-## 2. Usage Instructions
-
-**Environment Requirements:**
-
-* .NET SDK >= 5.0 or .NET Framework 4.x
-* Thrift >= 0.14.1
-* NLog >= 4.7.9
-
-**Dependency Installation:**
-
-It supports installation using tools such as NuGet Package Manager or .NET CLI. Taking .NET CLI as an example:
-
-If using .NET 5.0 or a later version of the SDK, enter the following command to install the latest NuGet package:
-
-```Plain
-dotnet add package Apache.IoTDB
-```
-Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-## 3. Read/Write Operations
-
-### 3.1 TableSessionPool
-
-#### 3.1.1 Functional Description
-
-The `TableSessionPool` defines basic operations for interacting with IoTDB, supporting data insertion, query execution, and session closure. It also serves as a connection pool to efficiently reuse connections and properly release resources when unused. This interface defines how to acquire sessions from the pool and how to close the pool.
-
-#### 3.1.2 Method List
-
-Below are the methods defined in `TableSessionPool` with detailed descriptions:
-
-| Method                                                         | Description                                                                    | Parameters                                                                                                | Return Type                |
-| ---------------------------------------------------------------- | -------------------------------------------------------------------------------- |-----------------------------------------------------------------------------------------------------------| ---------------------------- |
-| `Open(bool enableRpcCompression)`                          | Opens a session connection with custom `enableRpcCompression`              | `enableRpcCompression`: Whether to enable `RpcCompression` (requires server-side configuration alignment) | `Task`                 |
-| `Open()`                                                   | Opens a session connection without enabling `RpcCompression`               | None                                                                                                      | `Task`                 |
-| `InsertAsync(Tablet tablet)`                               | Inserts a `Tablet` object containing time-series data into the database    | `tablet`: The Tablet object to insert                                                                     | `Task<int>`            |
-| `ExecuteNonQueryStatementAsync(string sql)`                | Executes a non-query SQL statement (e.g., DDL/DML commands)                    | `sql`: The SQL statement to execute                                                                       | `Task<int>`            |
-| `ExecuteQueryStatementAsync(string sql)`                   | Executes a query SQL statement and returns a `SessionDataSet` with results | `sql`: The SQL query to execute                                                                           | `Task<SessionDataSet>` |
-| `ExecuteQueryStatementAsync(string sql, long timeoutInMs)` | Executes a query SQL statement with a timeout (milliseconds)                   | `sql`: The SQL query to execute <br> `timeoutInMs`: Query timeout in milliseconds                         | `Task<SessionDataSet>` |
-| `Close()`                                                  | Closes the session and releases held resources                                 | None                                                                                                      | `Task`                 |
-
-#### 3.1.3 Interface Examples
-
-```C#
-public async Task Open(bool enableRpcCompression, CancellationToken cancellationToken = default)
-
-  public async Task Open(CancellationToken cancellationToken = default)
-
-  public async Task<int> InsertAsync(Tablet tablet)
-
-  public async Task<int> ExecuteNonQueryStatementAsync(string sql)
-  
-  public async Task<SessionDataSet> ExecuteQueryStatementAsync(string sql)
-
-  public async Task<SessionDataSet> ExecuteQueryStatementAsync(string sql, long timeoutInMs)
-  
-  public async Task Close()
-```
-
-### 3.2 TableSessionPool.Builder
-
-#### 3.2.1 Functional Description
-
-The `TableSessionPool.Builder` class configures and creates instances of `TableSessionPool`, allowing developers to set connection parameters, session settings, and pooling behaviors.
-
-#### 3.2.2 Configuration Options
-
-Below are the available configuration options for `TableSessionPool.Builder` and their defaults:
-
-| ​**Configuration Method**            | ​**Description**                                                        | ​**Default Value**                                |
-| --------------------------------------------- | -------------------------------------------------------------------------------- |---------------------------------------------------|
-| `SetHost(string host)`                  | Sets the IoTDB node host                                                       | `localhost`                                       |
-| `SetPort(int port)`                     | Sets the IoTDB node port                                                       | `6667`                                            |
-| `SetNodeUrls(List nodeUrls)`            | Sets IoTDB cluster node URLs (overrides `SetHost`/`SetPort` when used) | Not set                                           |
-| `SetUsername(string username)`          | Sets the connection username                                                   | `"root"`                                          |
-| `SetPassword(string password)`          | Sets the connection password                                                   | `"TimechoDB@2021"` //before V2.0.6 it is root     |
-| `SetFetchSize(int fetchSize)`           | Sets the fetch size for query results                                          | `1024`                                            |
-| `SetZoneId(string zoneId)`              | Sets the timezone ZoneID                                                       | `UTC+08:00`                                       |
-| `SetPoolSize(int poolSize)`             | Sets the maximum number of sessions in the connection pool                     | `8`                                               |
-| `SetEnableRpcCompression(bool enable)`  | Enables/disables RPC compression                                               | `false`                                           |
-| `SetConnectionTimeoutInMs(int timeout)` | Sets the connection timeout in milliseconds                                    | `500`                                             |
-| `SetDatabase(string database)`          | Sets the target database name                                                  | `""`                                              |
-
-#### 3.2.3 Interface Examples
-
-```c#
-public Builder SetHost(string host)
-    {
-      _host = host;
-      return this;
-    }
-
-    public Builder SetPort(int port)
-    {
-      _port = port;
-      return this;
-    }
-
-    public Builder SetUsername(string username)
-    {
-      _username = username;
-      return this;
-    }
-
-    public Builder SetPassword(string password)
-    {
-      _password = password;
-      return this;
-    }
-
-    public Builder SetFetchSize(int fetchSize)
-    {
-      _fetchSize = fetchSize;
-      return this;
-    }
-
-    public Builder SetZoneId(string zoneId)
-    {
-      _zoneId = zoneId;
-      return this;
-    }
-
-    public Builder SetPoolSize(int poolSize)
-    {
-      _poolSize = poolSize;
-      return this;
-    }
-
-    public Builder SetEnableRpcCompression(bool enableRpcCompression)
-    {
-      _enableRpcCompression = enableRpcCompression;
-      return this;
-    }
-
-    public Builder SetConnectionTimeoutInMs(int timeout)
-    {
-      _connectionTimeoutInMs = timeout;
-      return this;
-    }
-
-    public Builder SetNodeUrls(List<string> nodeUrls)
-    {
-      _nodeUrls = nodeUrls;
-      return this;
-    }
-
-    protected internal Builder SetSqlDialect(string sqlDialect)
-    {
-      _sqlDialect = sqlDialect;
-      return this;
-    }
-
-    public Builder SetDatabase(string database)
-    {
-      _database = database;
-      return this;
-    }
-    
-    public Builder()
-    {
-      _host = "localhost";
-      _port = 6667;
-      _username = "root";
-      _password = "TimechoDB@2021"; //before V2.0.6 it is root
-      _fetchSize = 1024;
-      _zoneId = "UTC+08:00";
-      _poolSize = 8;
-      _enableRpcCompression = false;
-      _connectionTimeoutInMs = 500;
-      _sqlDialect = IoTDBConstant.TABLE_SQL_DIALECT;
-      _database = "";
-    }
-
-    public TableSessionPool Build()
-    {
-      SessionPool sessionPool;
-      // if nodeUrls is not empty, use nodeUrls to create session pool
-      if (_nodeUrls.Count > 0)
-      {
-        sessionPool = new SessionPool(_nodeUrls, _username, _password, _fetchSize, _zoneId, _poolSize, _enableRpcCompression, _connectionTimeoutInMs, _sqlDialect, _database);
-      }
-      else
-      {
-        sessionPool = new SessionPool(_host, _port, _username, _password, _fetchSize, _zoneId, _poolSize, _enableRpcCompression, _connectionTimeoutInMs, _sqlDialect, _database);
-      }
-      return new TableSessionPool(sessionPool);
-    }
-```
-
-## 4. Example
-
-Complete example : [samples/Apache.IoTDB.Samples/TableSessionPoolTest.cs](https://github.com/apache/iotdb-client-csharp/blob/main/samples/Apache.IoTDB.Samples/TableSessionPoolTest.cs)
-
-```c#
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Apache.IoTDB.DataStructure;
-
-namespace Apache.IoTDB.Samples;
-
-public class TableSessionPoolTest
-{
-  private readonly SessionPoolTest sessionPoolTest;
-
-  public TableSessionPoolTest(SessionPoolTest sessionPoolTest)
-  {
-    this.sessionPoolTest = sessionPoolTest;
-  }
-
-  public async Task Test()
-  {
-    await TestCleanup();
-
-    await TestSelectAndInsert();
-    await TestUseDatabase();
-    // await TestCleanup();
-  }
-
-
-  public async Task TestSelectAndInsert()
-  {
-    var tableSessionPool = new TableSessionPool.Builder()
-            .SetNodeUrls(sessionPoolTest.nodeUrls)
-            .SetUsername(sessionPoolTest.username)
-            .SetPassword(sessionPoolTest.password)
-            .SetFetchSize(1024)
-            .Build();
-
-    await tableSessionPool.Open(false);
-
-    if (sessionPoolTest.debug) tableSessionPool.OpenDebugMode();
-
-
-    await tableSessionPool.ExecuteNonQueryStatementAsync("CREATE DATABASE test1");
-    await tableSessionPool.ExecuteNonQueryStatementAsync("CREATE DATABASE test2");
-
-    await tableSessionPool.ExecuteNonQueryStatementAsync("use test2");
-
-    // or use full qualified table name
-    await tableSessionPool.ExecuteNonQueryStatementAsync(
-        "create table test1.table1(region_id STRING TAG, plant_id STRING TAG, device_id STRING TAG, model STRING ATTRIBUTE, temperature FLOAT FIELD, humidity DOUBLE FIELD) with (TTL=3600000)");
-
-    await tableSessionPool.ExecuteNonQueryStatementAsync(
-        "create table table2(region_id STRING TAG, plant_id STRING TAG, color STRING ATTRIBUTE, temperature FLOAT FIELD, speed DOUBLE FIELD) with (TTL=6600000)");
-
-    // show tables from current database
-    var res = await tableSessionPool.ExecuteQueryStatementAsync("SHOW TABLES");
-    res.ShowTableNames();
-    while (res.HasNext()) Console.WriteLine(res.Next());
-    await res.Close();
-
-    // show tables by specifying another database
-    // using SHOW tables FROM
-    res = await tableSessionPool.ExecuteQueryStatementAsync("SHOW TABLES FROM test1");
-    res.ShowTableNames();
-    while (res.HasNext()) Console.WriteLine(res.Next());
-    await res.Close();
-
-    var tableName = "testTable1";
-    List<string> columnNames =
-        new List<string> {
-            "region_id",
-            "plant_id",
-            "device_id",
-            "model",
-            "temperature",
-            "humidity" };
-    List<TSDataType> dataTypes =
-        new List<TSDataType>{
-            TSDataType.STRING,
-            TSDataType.STRING,
-            TSDataType.STRING,
-            TSDataType.STRING,
-            TSDataType.FLOAT,
-            TSDataType.DOUBLE};
-    List<ColumnCategory> columnCategories =
-        new List<ColumnCategory>{
-            ColumnCategory.TAG,
-            ColumnCategory.TAG,
-            ColumnCategory.TAG,
-            ColumnCategory.ATTRIBUTE,
-            ColumnCategory.FIELD,
-            ColumnCategory.FIELD};
-    var values = new List<List<object>> { };
-    var timestamps = new List<long> { };
-    for (long timestamp = 0; timestamp < 100; timestamp++)
-    {
-      timestamps.Add(timestamp);
-      values.Add(new List<object> { "1", "5", "3", "A", 1.23F + timestamp, 111.1 + timestamp });
-    }
-    var tablet = new Tablet(tableName, columnNames, columnCategories, dataTypes, values, timestamps);
-
-    await tableSessionPool.InsertAsync(tablet);
-
-
-    res = await tableSessionPool.ExecuteQueryStatementAsync("select * from testTable1 "
-          + "where region_id = '1' and plant_id in ('3', '5') and device_id = '3'");
-    res.ShowTableNames();
-    while (res.HasNext()) Console.WriteLine(res.Next());
-    await res.Close();
-
-    await tableSessionPool.Close();
-  }
-
-
-  public async Task TestUseDatabase()
-  {
-    var tableSessionPool = new TableSessionPool.Builder()
-            .SetNodeUrls(sessionPoolTest.nodeUrls)
-            .SetUsername(sessionPoolTest.username)
-            .SetPassword(sessionPoolTest.password)
-            .SetDatabase("test1")
-            .SetFetchSize(1024)
-            .Build();
-
-    await tableSessionPool.Open(false);
-
-    if (sessionPoolTest.debug) tableSessionPool.OpenDebugMode();
-
-
-    // show tables from current database
-    var res = await tableSessionPool.ExecuteQueryStatementAsync("SHOW TABLES");
-    res.ShowTableNames();
-    while (res.HasNext()) Console.WriteLine(res.Next());
-    await res.Close();
-
-    await tableSessionPool.ExecuteNonQueryStatementAsync("use test2");
-
-    // show tables from current database
-    res = await tableSessionPool.ExecuteQueryStatementAsync("SHOW TABLES");
-    res.ShowTableNames();
-    while (res.HasNext()) Console.WriteLine(res.Next());
-    await res.Close();
-
-    await tableSessionPool.Close();
-  }
-
-  public async Task TestCleanup()
-  {
-    var tableSessionPool = new TableSessionPool.Builder()
-            .SetNodeUrls(sessionPoolTest.nodeUrls)
-            .SetUsername(sessionPoolTest.username)
-            .SetPassword(sessionPoolTest.password)
-            .SetFetchSize(1024)
-            .Build();
-
-    await tableSessionPool.Open(false);
-
-    if (sessionPoolTest.debug) tableSessionPool.OpenDebugMode();
-
-    await tableSessionPool.ExecuteNonQueryStatementAsync("drop database test1");
-    await tableSessionPool.ExecuteNonQueryStatementAsync("drop database test2");
-
-    await tableSessionPool.Close();
-  }
-}
-```
diff --git a/src/UserGuide/Master/Table/API/Programming-Cpp-Native-API_timecho.md b/src/UserGuide/Master/Table/API/Programming-Cpp-Native-API_timecho.md
deleted file mode 100644
index 9be6f1da..00000000
--- a/src/UserGuide/Master/Table/API/Programming-Cpp-Native-API_timecho.md
+++ /dev/null
@@ -1,454 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# C++ Native API
-
-## 1. Dependencies
-
-- Java 8+
-- Flex
-- Bison 2.7+
-- Boost 1.56+
-- OpenSSL 1.0+
-- GCC 5.5.0+
-
-## 2. Installation
-
-### 2.1 Install Required Dependencies
-
-- **MAC**
-    1. Install Bison:
-
-       Use the following brew command to install the Bison version:
-       ```shell
-       brew install bison
-       ```
-
-    2. Install Boost: Make sure to install the latest version of Boost.
-
-       ```shell
-       brew install boost
-       ```
-
-    3. Check OpenSSL: Make sure the OpenSSL library is installed. The default OpenSSL header file path is "/usr/local/opt/openssl/include".
-
-       If you encounter errors related to OpenSSL not being found during compilation, try adding `-Dopenssl.include.dir=""`.
-
-- **Ubuntu 16.04+ or Other Debian-based Systems**
-
-  Use the following commands to install dependencies:
-
-    ```shell
-    sudo apt-get update
-    sudo apt-get install gcc g++ bison flex libboost-all-dev libssl-dev
-    ```
-
-- **CentOS 7.7+/Fedora/Rocky Linux or Other Red Hat-based Systems**
-
-  Use the yum command to install dependencies:
-
-    ```shell
-    sudo yum update
-    sudo yum install gcc gcc-c++ boost-devel bison flex openssl-devel
-    ```
-
-- **Windows**
-
-    1. Set Up the Build Environment
-        - Install MS Visual Studio (version 2019+ recommended): Make sure to select Visual Studio C/C++ IDE and compiler (supporting CMake, Clang, MinGW) during installation.
-        - Download and install [CMake](https://cmake.org/download/).
-
-    2. Download and Install Flex, Bison
-        - Download [Win_Flex_Bison](https://sourceforge.net/projects/winflexbison/).
-        - After downloading, rename the executables to flex.exe and bison.exe to ensure they can be found during compilation, and add the directory of these executables to the PATH environment variable.
-
-    3. Install Boost Library
-        - Download [Boost](https://www.boost.org/users/download/).
-        - Compile Boost locally: Run `bootstrap.bat` and `b2.exe` in sequence.
-        - Add the Boost installation directory to the PATH environment variable, e.g., `C:\Program Files (x86)\boost_1_78_0`.
-
-    4. Install OpenSSL
-        - Download and install [OpenSSL](http://slproweb.com/products/Win32OpenSSL.html).
-        - Add the include directory under the installation directory to the PATH environment variable.
-
-### 2.2 Compilation
-
-Clone the source code from git:
-```shell
-git clone https://github.com/apache/iotdb.git
-```
-
-The default main branch is the master branch. If you want to use a specific release version, switch to that branch (e.g., version 2.0.6):
-```shell
-git checkout rc/2.0.6
-```
-Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-Run Maven to compile in the IoTDB root directory:
-
-- Mac or Linux with glibc version >= 2.32
-    ```shell
-    ./mvnw clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp
-    ``` 
-
-- Linux with glibc version >= 2.31
-    ```shell
-    ./mvnw clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp -Diotdb-tools-thrift.version=0.14.1.1-old-glibc-SNAPSHOT
-    ```
-
-- Linux with glibc version >= 2.17
-    ```shell
-    ./mvnw clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp -Diotdb-tools-thrift.version=0.14.1.1-glibc223-SNAPSHOT
-    ```
-
-- Windows using Visual Studio 2022
-    ```batch
-    .\mvnw.cmd clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp
-    ```
-
-- Windows using Visual Studio 2019
-    ```batch
-    .\mvnw.cmd clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp -Dcmake.generator="Visual Studio 16 2019" -Diotdb-tools-thrift.version=0.14.1.1-msvc142-SNAPSHOT
-    ```
-    - If you haven't added the Boost library path to the PATH environment variable, you need to add the relevant parameters to the compile command, e.g., `-DboostIncludeDir="C:\Program Files (x86)\boost_1_78_0" -DboostLibraryDir="C:\Program Files (x86)\boost_1_78_0\stage\lib"`.
-
-After successful compilation, the packaged library files will be located in `iotdb-client/client-cpp/target`, and you can find the compiled example program under `example/client-cpp-example/target`.
-
-### 2.3 Compilation Q&A
-
-Q: What are the requirements for the environment on Linux?
-
-A:
-- The known minimum version requirement for glibc (x86_64 version) is 2.17, and the minimum version for GCC is 5.5.
-- The known minimum version requirement for glibc (ARM version) is 2.31, and the minimum version for GCC is 10.2.
-- If the above requirements are not met, you can try compiling Thrift locally:
-    - Download the code from https://github.com/apache/iotdb-bin-resources/tree/iotdb-tools-thrift-v0.14.1.0/iotdb-tools-thrift.
-    - Run `./mvnw clean install`.
-    - Go back to the IoTDB code directory and run `./mvnw clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp`.
-
-Q: How to resolve the `undefined reference to '_libc_single_thread'` error during Linux compilation?
-
-A:
-- This issue is caused by the precompiled Thrift dependencies requiring a higher version of glibc.
-- You can try adding `-Diotdb-tools-thrift.version=0.14.1.1-glibc223-SNAPSHOT` or `-Diotdb-tools-thrift.version=0.14.1.1-old-glibc-SNAPSHOT` to the Maven compile command.
-
-Q: What if I need to compile using Visual Studio 2017 or earlier on Windows?
-
-A:
-- You can try compiling Thrift locally before compiling the client:
-    - Download the code from https://github.com/apache/iotdb-bin-resources/tree/iotdb-tools-thrift-v0.14.1.0/iotdb-tools-thrift.
-    - Run `.\mvnw.cmd clean install`.
-    - Go back to the IoTDB code directory and run `.\mvnw.cmd clean package -pl example/client-cpp-example -am -DskipTests -P with-cpp -Dcmake.generator="Visual Studio 15 2017"`.
-
-## 3. Usage
-
-### 3.1 TableSession Class
-
-All operations in the C++ client are performed through the TableSession class. Below are the method descriptions defined in the TableSession interface.
-
-#### 3.1.1 Method List
-
-1. `insert(Tablet& tablet, bool sorted = false)`: Inserts a Tablet object containing time series data into the database. The sorted parameter indicates whether the rows in the tablet are already sorted by time.
-2. `executeNonQueryStatement(string& sql)`: Executes non-query SQL statements, such as DDL (Data Definition Language) or DML (Data Manipulation Language) commands.
-3. `executeQueryStatement(string& sql)`: Executes query SQL statements and returns a SessionDataSet object containing the query results. The optional timeoutInMs parameter indicates the timeout return time.
-   * Note: When retrieving rows of query results by calling `SessionDataSet::next()`, you must store the returned `std::shared_ptr<RowRecord>` object in a local scope variable (e.g.: `auto row = dataSet->next();`) to ensure the validity of the data lifecycle. If you access it directly via `.get()` or a raw pointer (e.g., `dataSet->next().get()`), the reference count of the smart pointer will drop to zero, the data will be released immediately, and subsequent access will lead to undefined [...]
-4. `open(bool enableRPCCompression = false)`: Opens the connection and determines whether to enable RPC compression (client state must match server state, disabled by default).
-5. `close()`: Closes the connection.
-
-#### 3.1.2 Interface Display
-
-```cpp
-class TableSession {
-private:
-    Session* session;
-public:
-    TableSession(Session* session) {
-        this->session = session;
-    }
-    void insert(Tablet& tablet, bool sorted = false);
-    void executeNonQueryStatement(const std::string& sql);
-    unique_ptr<SessionDataSet> executeQueryStatement(const std::string& sql);
-    unique_ptr<SessionDataSet> executeQueryStatement(const std::string& sql, int64_t timeoutInMs);
-    string getDatabase(); //Get the currently selected database, can be replaced by executeNonQueryStatement
-    void open(bool enableRPCCompression = false);
-    void close();
-};
-```
-
-### 3.2 TableSessionBuilder Class
-
-The TableSessionBuilder class is a builder used to configure and create instances of the TableSession class. Through it, you can conveniently set connection parameters, query parameters, and other settings when creating instances.
-
-#### 3.2.1 Usage Example
-
-```cpp
-//Set connection IP, port, username, password
-//The order of settings is arbitrary, just ensure build() is called last, the created instance is connected by default through open()
-session = (new TableSessionBuilder())
-            ->host("127.0.0.1")
-            ->rpcPort(6667)
-            ->username("root")
-            ->password("TimechoDB@2021") //before V2.0.6 it is root
-            ->build();
-```
-
-#### 3.2.2 Configurable Parameter List
-
-| **Parameter Name** | **Description** |              **Default Value**              |
-| :---: | :---: |:-------------------------------------------:|
-| host | Set the connected node IP |          "127.0.0.1" ("localhost")          |
-| rpcPort | Set the connected node port |                    6667                     |
-| username | Set the connection username |                   "root"                    |
-| password | Set the connection password | "TimechoDB@2021" //before V2.0.6 it is root |
-| zoneId | Set the ZoneId related to timezone |                     ""                      |
-| fetchSize | Set the query result fetch size |                    10000                    |
-| database | Set the target database name |                     ""                      |
-
-## 4. Examples
-
-The sample code of using these interfaces is in:
-
-- `example/client-cpp-example/src/TableModelSessionExample.cpp`: [TableModelSessionExample](https://github.com/apache/iotdb/blob/master/example/client-cpp-example/src/TableModelSessionExample.cpp)
-
-If the compilation finishes successfully, the example project will be placed under `example/client-cpp-example/target`
-
-
-```cpp
-#include "TableSession.h"
-#include "TableSessionBuilder.h"
-
-using namespace std;
-
-shared_ptr<TableSession> session;
-
-void insertRelationalTablet() {
-
-    vector<pair<string, TSDataType::TSDataType>> schemaList {
-        make_pair("region_id", TSDataType::TEXT),
-        make_pair("plant_id", TSDataType::TEXT),
-        make_pair("device_id", TSDataType::TEXT),
-        make_pair("model", TSDataType::TEXT),
-        make_pair("temperature", TSDataType::FLOAT),
-        make_pair("humidity", TSDataType::DOUBLE)
-    };
-    
-    vector<ColumnCategory> columnTypes = {
-        ColumnCategory::TAG,
-        ColumnCategory::TAG,
-        ColumnCategory::TAG,
-        ColumnCategory::ATTRIBUTE,
-        ColumnCategory::FIELD,
-        ColumnCategory::FIELD
-    };
-    
-    Tablet tablet("table1", schemaList, columnTypes, 100);
-    
-    for (int row = 0; row < 100; row++) {
-        int rowIndex = tablet.rowSize++;
-        tablet.timestamps[rowIndex] = row;
-        
-        // Using index-based API is more efficient than column name lookup
-        // Prefer: tablet.addValue(0, rowIndex, "1");
-        // Avoid:  tablet.addValue("region_id", rowIndex, "1");
-        tablet.addValue(0, rowIndex, "1");    // region_id
-        tablet.addValue(1, rowIndex, "5");    // plant_id
-        tablet.addValue(2, rowIndex, "3");    // device_id
-        tablet.addValue(3, rowIndex, "A");    // model
-        tablet.addValue(4, rowIndex, 37.6F);  // temperature
-        tablet.addValue(5, rowIndex, 111.1);  // humidity
-        if (tablet.rowSize == tablet.maxRowNumber) {
-            session->insert(tablet);
-            tablet.reset();
-        }
-    }
-    
-    if (tablet.rowSize != 0) {
-        session->insert(tablet);
-        tablet.reset();
-    }
-}
-
-void Output(unique_ptr<SessionDataSet> &dataSet) {
-    for (const string &name: dataSet->getColumnNames()) {
-        cout << name << "  ";
-    }
-    cout << endl;
-    while (dataSet->hasNext()) {
-        cout << dataSet->next()->toString();
-    }
-    cout << endl;
-}
-
-void OutputWithType(unique_ptr<SessionDataSet> &dataSet) {
-    for (const string &name: dataSet->getColumnNames()) {
-        cout << name << "  ";
-    }
-    cout << endl;
-    for (const string &type: dataSet->getColumnTypeList()) {
-        cout << type << "  ";
-    }
-    cout << endl;
-    while (dataSet->hasNext()) {
-        cout << dataSet->next()->toString();
-    }
-    cout << endl;
-}
-
-int main() {
-    try {
-        session = (new TableSessionBuilder())
-            ->host("127.0.0.1")
-            ->rpcPort(6667)
-            ->username("root")
-            ->password("root")
-            ->build();
-            
-        cout << "[Create Database db1,db2]\n" << endl;
-        try {
-            session->executeNonQueryStatement("CREATE DATABASE IF NOT EXISTS db1");
-            session->executeNonQueryStatement("CREATE DATABASE IF NOT EXISTS db2");
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Use db1 as database]\n" << endl;
-        try {
-            session->executeNonQueryStatement("USE db1");
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Create Table table1,table2]\n" << endl;
-        try {
-            session->executeNonQueryStatement("create table db1.table1(region_id STRING TAG, plant_id STRING TAG, device_id STRING TAG, model STRING ATTRIBUTE, temperature FLOAT FIELD, humidity DOUBLE FIELD) with (TTL=3600000)");
-            session->executeNonQueryStatement("create table db2.table2(region_id STRING TAG, plant_id STRING TAG, color STRING ATTRIBUTE, temperature FLOAT FIELD, speed DOUBLE FIELD) with (TTL=6600000)");
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Show Tables]\n" << endl;
-        try {
-            unique_ptr<SessionDataSet> dataSet = session->executeQueryStatement("SHOW TABLES");
-            Output(dataSet);
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Show tables from specific database]\n" << endl;
-        try {
-            unique_ptr<SessionDataSet> dataSet = session->executeQueryStatement("SHOW TABLES FROM db1");
-            Output(dataSet);
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[InsertTablet]\n" << endl;
-        try {
-            insertRelationalTablet();
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Query Table Data]\n" << endl;
-        try {
-            unique_ptr<SessionDataSet> dataSet = session->executeQueryStatement("SELECT * FROM table1"
-                " where region_id = '1' and plant_id in ('3', '5') and device_id = '3'");
-            OutputWithType(dataSet);
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        session->close();
-        
-        // specify database in constructor
-        session = (new TableSessionBuilder())
-            ->host("127.0.0.1")
-            ->rpcPort(6667)
-            ->username("root")
-            ->password("root")
-            ->database("db1")
-            ->build();
-            
-        cout << "[Show tables from current database(db1)]\n" << endl;
-        try {
-            unique_ptr<SessionDataSet> dataSet = session->executeQueryStatement("SHOW TABLES");
-            Output(dataSet);
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Change database to db2]\n" << endl;
-        try {
-            session->executeNonQueryStatement("USE db2");
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Show tables from current database(db2)]\n" << endl;
-        try {
-            unique_ptr<SessionDataSet> dataSet = session->executeQueryStatement("SHOW TABLES");
-            Output(dataSet);
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "[Drop Database db1,db2]\n" << endl;
-        try {
-            session->executeNonQueryStatement("DROP DATABASE db1");
-            session->executeNonQueryStatement("DROP DATABASE db2");
-        } catch (IoTDBException &e) {
-            cout << e.what() << endl;
-        }
-        
-        cout << "session close\n" << endl;
-        session->close();
-        
-        cout << "finished!\n" << endl;
-    } catch (IoTDBConnectionException &e) {
-        cout << e.what() << endl;
-    } catch (IoTDBException &e) {
-        cout << e.what() << endl;
-    }
-    return 0;
-}
-```
-
-
-## 5. FAQ
-
-### 5.1 on Mac
-
-If errors occur when compiling thrift source code, try to downgrade your xcode-commandline from 12 to 11.5
-
-see https://stackoverflow.com/questions/63592445/ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file/65518087#65518087
-
-
-### 5.2 on Windows
-
-When Building Thrift and downloading packages via "wget", a possible annoying issue may occur with
-error message looks like:
-```shell
-Failed to delete cached file C:\Users\Administrator\.m2\repository\.cache\download-maven-plugin\index.ser
-```
-Possible fixes:
-- Try to delete the ".m2\repository\\.cache\" directory and try again.
-- Add "\<skipCache>true\</skipCache>" configuration to the download-maven-plugin maven phase that complains this error.
-
diff --git a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md b/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
deleted file mode 100644
index 41ab8637..00000000
--- a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
+++ /dev/null
@@ -1,576 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Go Native API
-
-The Git repository for the Go Native API client is located [here](https://github.com/apache/iotdb-client-go/)
-
-## 1. Usage
-### 1.1 Dependencies
-
-* golang >= 1.13
-* make   >= 3.0
-* curl   >= 7.1.1
-* thrift 0.15.0
-* Linux、Macos or other unix-like systems
-* Windows+bash (WSL、cygwin、Git Bash)
-
-### 1.2 Installation
-
-* go mod
-
-```sh
-export GO111MODULE=on
-export GOPROXY=https://goproxy.io
-
-mkdir session_example && cd session_example
-
-curl -o session_example.go -L https://github.com/apache/iotdb-client-go/raw/main/example/session_example.go
-
-go mod init session_example
-go run session_example.go
-```
-
-* GOPATH
-
-```sh
-# get thrift 0.15.0
-go get github.com/apache/thrift
-cd $GOPATH/src/github.com/apache/thrift
-git checkout 0.15.0
-
-mkdir -p $GOPATH/src/iotdb-client-go-example/session_example
-cd $GOPATH/src/iotdb-client-go-example/session_example
-curl -o session_example.go -L https://github.com/apache/iotdb-client-go/raw/main/example/session_example.go
-go run session_example.go
-```
-* Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-## 2. ITableSession Interface
-### 2.1 Description
-
-Defines core operations for interacting with IoTDB tables, including data insertion, query execution, and session closure. Not thread-safe.
-
-### 2.2 Method List
-
-| **Method Name**                                        | **Description**                                                    | **Parameters**                                                                 | **Return Value**                                    | **Return Error**                                                                             |
-| -------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
-| `Insert(tablet *Tablet)`                                 | Inserts a`Tablet`containing time-series data into the database.| `tablet`: A pointer to a Tablet containing time-series data to be inserted.      | A pointer to TSStatus indicating the execution result.    | An error if an issue occurs during the operation, such as a connection error or execution failure. |
-| `xecuteNonQueryStatement(sql string)`| Executes non-query SQL statements such as DDL or DML commands.           | `sql`: The SQL statement to execute.| A pointer to TSStatus indicating the execution result.| An error if an issue occurs during the operation, such as a connection error or execution failure. |
-| `ExecuteQueryStatement (sql string, timeoutInMs *int64)` | Executes a query SQL statement with a specified timeout in milliseconds. | `sql`: The SQL query statement.`timeoutInMs`: Query timeout in milliseconds. | A pointer to SessionDataSet containing the query results. | An error if an issue occurs during the operation, such as a connection error or execution failure. |
-| `Close()`                                                | Closes the session and releases resources.                               | None                                                                                 | None                                                      | An error if there is an issue with closing the IoTDB connection.                                   |
-
-### 2.3 Interface Definition
-1. ITableSession
-
-```go
-// ITableSession defines an interface for interacting with IoTDB tables.
-// It supports operations such as data insertion, executing queries, and closing the session.
-// Implementations of this interface are expected to manage connections and ensure
-// proper resource cleanup.
-//
-// Each method may return an error to indicate issues such as connection errors
-// or execution failures.
-//
-// Since this interface includes a Close method, it is recommended to use
-// defer to ensure the session is properly closed.
-type ITableSession interface {
-
-        // Insert inserts a Tablet into the database.
-        //
-        // Parameters:
-        //   - tablet: A pointer to a Tablet containing time-series data to be inserted.
-        //
-        // Returns:
-        //   - r: A pointer to TSStatus indicating the execution result.
-        //   - err: An error if an issue occurs during the operation, such as a connection error or execution failure.
-        Insert(tablet *Tablet) (r *common.TSStatus, err error)
-
-        // ExecuteNonQueryStatement executes a non-query SQL statement, such as a DDL or DML command.
-        //
-        // Parameters:
-        //   - sql: The SQL statement to execute.
-        //
-        // Returns:
-        //   - r: A pointer to TSStatus indicating the execution result.
-        //   - err: An error if an issue occurs during the operation, such as a connection error or execution failure.
-        ExecuteNonQueryStatement(sql string) (r *common.TSStatus, err error)
-
-        // ExecuteQueryStatement executes a query SQL statement and returns the result set.
-        //
-        // Parameters:
-        //   - sql: The SQL query statement to execute.
-        //   - timeoutInMs: A pointer to the timeout duration in milliseconds for the query execution. 
-        //
-        // Returns:
-        //   - result: A pointer to SessionDataSet containing the query results.
-        //   - err: An error if an issue occurs during the operation, such as a connection error or execution failure.
-        ExecuteQueryStatement(sql string, timeoutInMs *int64) (*SessionDataSet, error)
-
-        // Close closes the session, releasing any held resources.
-        //
-        // Returns:
-        //   - err: An error if there is an issue with closing the IoTDB connection.
-        Close() (err error)
-}
-```
-
-2. Constructing a TableSession
-
-* There’s no need to manually set the `sqlDialect` field in the `Config`structs. This is automatically handled by the corresponding `NewSession` function during initialization. Simply use the appropriate constructor based on your use case (single-node or cluster).
-
-```Go
-type Config struct {
-   Host            string
-   Port            string
-   UserName        string
-   Password        string
-   FetchSize       int32
-   TimeZone        string
-   ConnectRetryMax int
-   sqlDialect      string
-   Version         Version
-   Database        string
-}
-
-type ClusterConfig struct {
-   NodeUrls        []string //ip:port
-   UserName        string
-   Password        string
-   FetchSize       int32
-   TimeZone        string
-   ConnectRetryMax int
-   sqlDialect      string
-   Database        string
-}
-
-// NewTableSession creates a new TableSession instance using the provided configuration.
-//
-// Parameters:
-//   - config: The configuration for the session.
-//   - enableRPCCompression: A boolean indicating whether RPC compression is enabled.
-//   - connectionTimeoutInMs: The timeout in milliseconds for establishing a connection.
-//
-// Returns:
-//   - An ITableSession instance if the session is successfully created.
-//   - An error if there is an issue during session initialization.
-func NewTableSession(config *Config, enableRPCCompression bool, connectionTimeoutInMs int) (ITableSession, error)
-
-// NewClusterTableSession creates a new TableSession instance for a cluster setup.
-//
-// Parameters:
-//   - clusterConfig: The configuration for the cluster session.
-//   - enableRPCCompression: A boolean indicating whether RPC compression is enabled.
-//
-// Returns:
-//   - An ITableSession instance if the session is successfully created.
-//   - An error if there is an issue during session initialization.
-func NewClusterTableSession(clusterConfig *ClusterConfig, enableRPCCompression bool) (ITableSession, error)
-```
-
-> Note:
->
-> When creating a `TableSession` via `NewTableSession` or `NewClusterTableSession`, the connection is already established; no additional `Open` operation is required.
-
-### 2.4 Example
-
-```go
-package main
-
-import (
-	"flag"
-	"log"
-	"math/rand"
-	"strconv"
-	"time"
-
-	"github.com/apache/iotdb-client-go/v2/client"
-)
-
-func main() {
-	flag.Parse()
-	config := &client.Config{
-		Host:     "127.0.0.1",
-		Port:     "6667",
-		UserName: "root",
-		Password: "root",
-		Database: "test_session",
-	}
-	session, err := client.NewTableSession(config, false, 0)
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer session.Close()
-
-	checkError(session.ExecuteNonQueryStatement("create database test_db"))
-	checkError(session.ExecuteNonQueryStatement("use test_db"))
-	checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
-	insertRelationalTablet(session)
-	showTables(session)
-	query(session)
-}
-
-func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName string) string {
-	if isNull, err := dataSet.IsNull(columnName); err != nil {
-		log.Fatal(err)
-	} else if isNull {
-		return "null"
-	}
-	v, err := dataSet.GetString(columnName)
-	if err != nil {
-		log.Fatal(err)
-	}
-	return v
-}
-
-func insertRelationalTablet(session client.ITableSession) {
-	tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-		{
-			Measurement: "tag1",
-			DataType:    client.STRING,
-		},
-		{
-			Measurement: "tag2",
-			DataType:    client.STRING,
-		},
-		{
-			Measurement: "s1",
-			DataType:    client.TEXT,
-		},
-		{
-			Measurement: "s2",
-			DataType:    client.TEXT,
-		},
-	}, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, client.FIELD}, 1024)
-	if err != nil {
-		log.Fatal("Failed to create relational tablet {}", err)
-	}
-	ts := time.Now().UTC().UnixNano() / 1000000
-	for row := 0; row < 16; row++ {
-		ts++
-		tablet.SetTimestamp(ts, row)
-		tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
-		tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
-		tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-		tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-		tablet.RowSize++
-	}
-	checkError(session.Insert(tablet))
-
-	tablet.Reset()
-
-	for row := 0; row < 16; row++ {
-		ts++
-		tablet.SetTimestamp(ts, row)
-		tablet.SetValueAt("tag1_value_1", 0, row)
-		tablet.SetValueAt("tag2_value_1", 1, row)
-		tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-		tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-		nullValueColumn := rand.Intn(4)
-		tablet.SetValueAt(nil, nullValueColumn, row)
-		tablet.RowSize++
-	}
-	checkError(session.Insert(tablet))
-}
-
-func showTables(session client.ITableSession) {
-	timeout := int64(2000)
-	dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-	defer dataSet.Close()
-	if err != nil {
-		log.Fatal(err)
-	}
-	for {
-		hasNext, err := dataSet.Next()
-		if err != nil {
-			log.Fatal(err)
-		}
-		if !hasNext {
-			break
-		}
-		value, err := dataSet.GetString("TableName")
-		if err != nil {
-			log.Fatal(err)
-		}
-		log.Printf("tableName is %v", value)
-	}
-}
-
-func query(session client.ITableSession) {
-	timeout := int64(2000)
-	dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-	defer dataSet.Close()
-	if err != nil {
-		log.Fatal(err)
-	}
-	for {
-		hasNext, err := dataSet.Next()
-		if err != nil {
-			log.Fatal(err)
-		}
-		if !hasNext {
-			break
-		}
-		log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "tag1"), getTextValueFromDataSet(dataSet, "tag2"), getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
-	}
-}
-
-func checkError(err error) {
-	if err != nil {
-		log.Fatal(err)
-	}
-}
-```
-
-## 3. TableSessionPool  Interface
-### 3.1 Description
-
-Manages a pool of `ITableSession` instances for efficient connection reuse and resource cleanup.
-
-### 3.2 Method List
-
-| **Method Name** | **Description**                                      | **Return Value**                                      | **Return Error**                    |
-| ----------------------- | ------------------------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------- |
-| `GetSession()`    | Acquires a session from the pool for database interaction. | A usable ITableSession instance for interacting with IoTDB. | An error if a session cannot be acquired. |
-| `Close()`         | Closes the session pool and releases resources.。          | None                                                        | None                                      |
-
-### 3.3 Interface Definition
-1. TableSessionPool
-
-```Go
-// TableSessionPool manages a pool of ITableSession instances, enabling efficient
-// reuse and management of resources. It provides methods to acquire a session
-// from the pool and to close the pool, releasing all held resources.
-//
-// This implementation ensures proper lifecycle management of sessions,
-// including efficient reuse and cleanup of resources.
-
-// GetSession acquires an ITableSession instance from the pool.
-//
-// Returns:
-//   - A usable ITableSession instance for interacting with IoTDB.
-//   - An error if a session cannot be acquired.
-func (spool *TableSessionPool) GetSession() (ITableSession, error) {
-        return spool.sessionPool.getTableSession()
-}
-
-// Close closes the TableSessionPool, releasing all held resources.
-// Once closed, no further sessions can be acquired from the pool.
-func (spool *TableSessionPool) Close()
-```
-
-2. Constructing a TableSessionPool
-
-```Go
-type PoolConfig struct {
-   Host            string
-   Port            string
-   NodeUrls        []string
-   UserName        string
-   Password        string
-   FetchSize       int32
-   TimeZone        string
-   ConnectRetryMax int
-   Database        string
-   sqlDialect      string
-}
-
-// NewTableSessionPool creates a new TableSessionPool with the specified configuration.
-//
-// Parameters:
-//   - conf: PoolConfig defining the configuration for the pool.
-//   - maxSize: The maximum number of sessions the pool can hold.
-//   - connectionTimeoutInMs: Timeout for establishing a connection in milliseconds.
-//   - waitToGetSessionTimeoutInMs: Timeout for waiting to acquire a session in milliseconds.
-//   - enableCompression: A boolean indicating whether to enable compression.
-//
-// Returns:
-//   - A TableSessionPool instance.
-func NewTableSessionPool(conf *PoolConfig, maxSize, connectionTimeoutInMs, waitToGetSessionTimeoutInMs int,
-        enableCompression bool) TableSessionPool
-```
-
-> Note:
->
-> * If a `Database` is specified when creating the `TableSessionPool`, all sessions acquired from the pool will automatically use this database. There is no need to explicitly set the database during operations.
-> * Automatic State Reset: If a session temporarily switches to another database using `USE DATABASE` during usage, the session will automatically revert to the original database specified in the pool when closed and returned to the pool.
-
-### 3.4 Example
-
-```go
-package main
-
-import (
-	"log"
-	"strconv"
-	"sync"
-	"sync/atomic"
-	"time"
-
-	"github.com/apache/iotdb-client-go/v2/client"
-)
-
-func main() {
-	sessionPoolWithSpecificDatabaseExample()
-	sessionPoolWithoutSpecificDatabaseExample()
-	putBackToSessionPoolExample()
-}
-
-func putBackToSessionPoolExample() {
-	// should create database test_db before executing
-	config := &client.PoolConfig{
-		Host:     "127.0.0.1",
-		Port:     "6667",
-		UserName: "root",
-		Password: "root",
-		Database: "test_db",
-	}
-	sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-	defer sessionPool.Close()
-
-	num := 4
-	successGetSessionNum := int32(0)
-	var wg sync.WaitGroup
-	wg.Add(num)
-	for i := 0; i < num; i++ {
-		dbName := "db" + strconv.Itoa(i)
-		go func() {
-			defer wg.Done()
-			session, err := sessionPool.GetSession()
-			if err != nil {
-				log.Println("Failed to create database "+dbName+"because ", err)
-				return
-			}
-			atomic.AddInt32(&successGetSessionNum, 1)
-			defer func() {
-				time.Sleep(6 * time.Second)
-				// put back to session pool
-				session.Close()
-			}()
-			checkError(session.ExecuteNonQueryStatement("create database " + dbName))
-			checkError(session.ExecuteNonQueryStatement("use " + dbName))
-			checkError(session.ExecuteNonQueryStatement("create table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
-		}()
-	}
-	wg.Wait()
-	log.Println("success num is", successGetSessionNum)
-
-	log.Println("All session's database have been reset.")
-	// the using database will automatically reset to session pool's database after the session closed
-	wg.Add(5)
-	for i := 0; i < 5; i++ {
-		go func() {
-			defer wg.Done()
-			session, err := sessionPool.GetSession()
-			if err != nil {
-				log.Println("Failed to get session because ", err)
-			}
-			defer session.Close()
-			timeout := int64(3000)
-			dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-			for {
-				hasNext, err := dataSet.Next()
-				if err != nil {
-					log.Fatal(err)
-				}
-				if !hasNext {
-					break
-				}
-				value, err := dataSet.GetString("TableName")
-				if err != nil {
-					log.Fatal(err)
-				}
-				log.Println("table is", value)
-			}
-			dataSet.Close()
-		}()
-	}
-	wg.Wait()
-}
-
-func sessionPoolWithSpecificDatabaseExample() {
-	// should create database test_db before executing
-	config := &client.PoolConfig{
-		Host:     "127.0.0.1",
-		Port:     "6667",
-		UserName: "root",
-		Password: "root",
-		Database: "test_db",
-	}
-	sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-	defer sessionPool.Close()
-	num := 10
-	var wg sync.WaitGroup
-	wg.Add(num)
-	for i := 0; i < num; i++ {
-		tableName := "t" + strconv.Itoa(i)
-		go func() {
-			defer wg.Done()
-			session, err := sessionPool.GetSession()
-			if err != nil {
-				log.Println("Failed to create table "+tableName+"because ", err)
-				return
-			}
-			defer session.Close()
-			checkError(session.ExecuteNonQueryStatement("create table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
-		}()
-	}
-	wg.Wait()
-}
-
-func sessionPoolWithoutSpecificDatabaseExample() {
-	config := &client.PoolConfig{
-		Host:     "127.0.0.1",
-		Port:     "6667",
-		UserName: "root",
-		Password: "root",
-	}
-	sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-	defer sessionPool.Close()
-	num := 10
-	var wg sync.WaitGroup
-	wg.Add(num)
-	for i := 0; i < num; i++ {
-		dbName := "db" + strconv.Itoa(i)
-		go func() {
-			defer wg.Done()
-			session, err := sessionPool.GetSession()
-			if err != nil {
-				log.Println("Failed to create database ", dbName, err)
-				return
-			}
-			defer session.Close()
-			checkError(session.ExecuteNonQueryStatement("create database " + dbName))
-			checkError(session.ExecuteNonQueryStatement("use " + dbName))
-			checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
-		}()
-	}
-	wg.Wait()
-}
-
-func checkError(err error) {
-	if err != nil {
-		log.Fatal(err)
-	}
-}
-```
-
diff --git a/src/UserGuide/Master/Table/API/Programming-JDBC_timecho.md b/src/UserGuide/Master/Table/API/Programming-JDBC_timecho.md
deleted file mode 100644
index 6b85ccab..00000000
--- a/src/UserGuide/Master/Table/API/Programming-JDBC_timecho.md
+++ /dev/null
@@ -1,189 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# JDBC
-
-The IoTDB JDBC provides a standardized way to interact with the IoTDB database, allowing users to execute SQL statements from Java programs for managing databases and time-series data. It supports operations such as connecting to the database, creating, querying, updating, and deleting data, as well as batch insertion and querying of time-series data.
-
-**Note:** The current JDBC implementation is designed primarily for integration with third-party tools. High-performance writing **may not be achieved** when using JDBC for insert operations. For Java applications, it is recommended to use the **JAVA Native API** for optimal performance.
-
-## 1. Prerequisites
-
-### 1.1 **Environment Requirements**
-
-- **JDK:** Version 1.8 or higher
-- **Maven:** Version 3.6 or higher
-
-### 1.2 **Adding Maven Dependencies**
-
-Add the following dependency to your Maven `pom.xml` file:
-
-```XML
-<dependencies>
-    <dependency>
-      <groupId>com.timecho.iotdb</groupId>
-      <artifactId>iotdb-session</artifactId>
-      <version>2.0.1.1</version>
-    </dependency>
-</dependencies>
-```
-Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-## 2. Read and Write Operations
-
-**Write Operations:** Perform database operations such as inserting data, creating databases, and creating time-series using the `execute` method.
-
-**Read Operations:** Execute queries using the `executeQuery` method and retrieve results via the `ResultSet` object.
-
-### 2.1 Method Overview
-
-| **Method Name**                                              | **Description**                                             | **Parameters**                                               | **Return Value**                                  |
-| ------------------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------- |
-| Class.forName(String driver)                                 | Loads the JDBC driver class                                 | `driver`: Name of the JDBC driver class                      | `Class`: Loaded class object                      |
-| DriverManager.getConnection(String url, String username, String password) | Establishes a database connection                           | `url`: Database URL `username`: Username `password`: Password | `Connection`: Database connection object          |
-| Connection.createStatement()                                 | Creates a `Statement` object for executing SQL statements   | None                                                         | `Statement`: SQL execution object                 |
-| Statement.execute(String sql)                                | Executes a non-query SQL statement                          | `sql`: SQL statement to execute                              | `boolean`: Indicates if a `ResultSet` is returned |
-| Statement.executeQuery(String sql)                           | Executes a query SQL statement and retrieves the result set | `sql`: SQL query statement                                   | `ResultSet`: Query result set                     |
-| ResultSet.getMetaData()                                      | Retrieves metadata of the result set                        | None                                                         | `ResultSetMetaData`: Metadata object              |
-| ResultSet.next()                                             | Moves to the next row in the result set                     | None                                                         | `boolean`: Whether the move was successful        |
-| ResultSet.getString(int columnIndex)                         | Retrieves the string value of a specified column            | `columnIndex`: Column index (starting from 1)                | `String`: Column value                            |
-
-## 3. Sample Code
-
-**Note:** When using the Table Mode, you must specify the `sql_dialect` parameter as `table` in the URL. Example:
-
-```Java
-String url = "jdbc:iotdb://127.0.0.1:6667?sql_dialect=table";
-```
-
-You can find the full example code at [GitHub Repository](https://github.com/apache/iotdb/blob/rc/2.0.1/example/jdbc/src/main/java/org/apache/iotdb/TableModelJDBCExample.java).
-
-Here is an excerpt of the sample code:
-
-```Java
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb;
-
-import org.apache.iotdb.jdbc.IoTDBSQLException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-public class TableModelJDBCExample {
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(TableModelJDBCExample.class);
-
-  public static void main(String[] args) throws ClassNotFoundException, SQLException {
-    Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
-
-    // don't specify database in url
-    try (Connection connection =
-            DriverManager.getConnection(
-                "jdbc:iotdb://127.0.0.1:6667?sql_dialect=table", "root", "TimechoDB@2021"); //before V2.0.6 it is root
-        Statement statement = connection.createStatement()) {
-
-      statement.execute("CREATE DATABASE test1");
-      statement.execute("CREATE DATABASE test2");
-
-      statement.execute("use test2");
-
-      // or use full qualified table name
-      statement.execute(
-          "create table test1.table1(region_id STRING TAG, plant_id STRING TAG, device_id STRING TAG, model STRING ATTRIBUTE, temperature FLOAT FIELD, humidity DOUBLE FIELD) with (TTL=3600000)");
-
-      statement.execute(
-          "create table table2(region_id STRING TAG, plant_id STRING TAG, color STRING ATTRIBUTE, temperature FLOAT FIELD, speed DOUBLE FIELD) with (TTL=6600000)");
-
-      // show tables from current database
-      try (ResultSet resultSet = statement.executeQuery("SHOW TABLES")) {
-        ResultSetMetaData metaData = resultSet.getMetaData();
-        System.out.println(metaData.getColumnCount());
-        while (resultSet.next()) {
-          System.out.println(resultSet.getString(1) + ", " + resultSet.getInt(2));
-        }
-      }
-
-      // show tables by specifying another database
-      // using SHOW tables FROM
-      try (ResultSet resultSet = statement.executeQuery("SHOW TABLES FROM test1")) {
-        ResultSetMetaData metaData = resultSet.getMetaData();
-        System.out.println(metaData.getColumnCount());
-        while (resultSet.next()) {
-          System.out.println(resultSet.getString(1) + ", " + resultSet.getInt(2));
-        }
-      }
-
-    } catch (IoTDBSQLException e) {
-      LOGGER.error("IoTDB Jdbc example error", e);
-    }
-
-    // specify database in url
-    try (Connection connection =
-            DriverManager.getConnection(
-                "jdbc:iotdb://127.0.0.1:6667/test1?sql_dialect=table", "root", "TimechoDB@2021"); //before V2.0.6 it is root
-        Statement statement = connection.createStatement()) {
-      // show tables from current database test1
-      try (ResultSet resultSet = statement.executeQuery("SHOW TABLES")) {
-        ResultSetMetaData metaData = resultSet.getMetaData();
-        System.out.println(metaData.getColumnCount());
-        while (resultSet.next()) {
-          System.out.println(resultSet.getString(1) + ", " + resultSet.getInt(2));
-        }
-      }
-
-      // change database to test2
-      statement.execute("use test2");
-
-      try (ResultSet resultSet = statement.executeQuery("SHOW TABLES")) {
-        ResultSetMetaData metaData = resultSet.getMetaData();
-        System.out.println(metaData.getColumnCount());
-        while (resultSet.next()) {
-          System.out.println(resultSet.getString(1) + ", " + resultSet.getInt(2));
-        }
-      }
-    }
-  }
-}
-```
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/Programming-Java-Native-API_timecho.md b/src/UserGuide/Master/Table/API/Programming-Java-Native-API_timecho.md
deleted file mode 100644
index ec19bf23..00000000
--- a/src/UserGuide/Master/Table/API/Programming-Java-Native-API_timecho.md
+++ /dev/null
@@ -1,851 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# Java Native API
-
-## 1. Function Introduction
-
-IoTDB provides a Java native client driver and a session pool management mechanism. These tools enable developers to interact with IoTDB using object-oriented APIs, allowing time-series objects to be directly assembled and inserted into the database without constructing SQL statements. It is recommended to use the  `ITableSessionPool` for multi-threaded database operations to maximize efficiency.
-
-## 2. Usage Instructions
-
-**Environment Requirements**
-
-- **JDK**: Version 1.8 or higher
-- **Maven**: Version 3.6 or higher
-
-**Adding Maven Dependencies**
-
-```XML
-<dependencies>
-    <dependency>
-      <groupId>com.timecho.iotdb</groupId>
-      <artifactId>iotdb-session</artifactId>
-        <!-- The version number is the same as the database version number -->
-      <version>${project.version}</version>
-    </dependency>
-</dependencies>
-```
-* The latest version of `iotdb-session` can be viewed [here](https://repo1.maven.org/maven2/com/timecho/iotdb/iotdb-session/)
-* Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-## 3. Read and Write Operations
-
-### 3.1 ITableSession Interface
-
-#### 3.1.1 Feature Description
-
-The `ITableSession` interface defines basic operations for interacting with IoTDB, including data insertion, query execution, and session closure. Note that this interface is **not thread-safe**.
-
-#### 3.1.2 Method Overview
-
-| **Method Name**                                     | **Description**                                              | **Parameters**                                               | **Return Value** | **Exceptions**                                            |
-| --------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------- | --------------------------------------------------------- |
-| insert(Tablet tablet)                               | Inserts a `Tablet` containing time-series data into the database. | `tablet`: The `Tablet` object to be inserted.                | None             | `StatementExecutionException`, `IoTDBConnectionException` |
-| executeNonQueryStatement(String sql)                | Executes non-query SQL statements such as DDL or DML commands. | `sql`: The SQL statement to execute.                         | None             | `StatementExecutionException`, `IoTDBConnectionException` |
-| executeQueryStatement(String sql)                   | Executes a query SQL statement and returns a `SessionDataSet` containing the query results. | `sql`: The SQL query statement to execute.                   | `SessionDataSet` | `StatementExecutionException`, `IoTDBConnectionException` |
-| executeQueryStatement(String sql, long timeoutInMs) | Executes a query SQL statement with a specified timeout in milliseconds. | `sql`: The SQL query statement. `timeoutInMs`: Query timeout in milliseconds. | `SessionDataSet` | `StatementExecutionException`                             |
-| close()                                             | Closes the session and releases resources.                   | None                                                         | None             | IoTDBConnectionException                                  |
-
-**Description of Object Data Type:**
-
-Since V2.0.8, the `iTableSession.insert(Tablet tablet)` interface supports splitting a single Object-class file into multiple segments and writing them sequentially in order. When the column data type in the Tablet data structure is **`TSDataType.Object`**, you need to use the following method to populate the Tablet:
-
-```Java
-/*
-rowIndex: row position in the tablet
-columnIndex: column position in the tablet
-isEOF: whether the current write operation contains the last segment of the Object file
-offset: starting offset of the current write content within the Object file
-content: byte array of the current write content
-Note: When writing, ensure the total length of all segmented byte[] arrays equals the original Object size, 
-otherwise it will cause incorrect data size.
-*/
-void addValue(int rowIndex, int columnIndex, boolean isEOF, long offset, byte[] content)
-```
-
-During queries, the following four methods are supported to retrieve values:
-`Field.getStringValue`, `Field.getObjectValue`, `SessionDataSet.DataIterator.getObject`, and `SessionDataSet.DataIterator.getString`.
-All these methods return a String containing metadata in the format:
-`(Object) XX.XX KB` (where XX.XX KB represents the actual object size).
-
-#### 3.1.3 Sample Code
-
-```java
-/**
- * This interface defines a session for interacting with IoTDB tables.
- * It supports operations such as data insertion, executing queries, and closing the session.
- * Implementations of this interface are expected to manage connections and ensure
- * proper resource cleanup.
- *
- * <p>Each method may throw exceptions to indicate issues such as connection errors or
- * execution failures.
- *
- * <p>Since this interface extends {@link AutoCloseable}, it is recommended to use
- * try-with-resources to ensure the session is properly closed.
- */
-public interface ITableSession extends AutoCloseable {
-
-  /**
-   * Inserts a {@link Tablet} into the database.
-   *
-   * @param tablet the tablet containing time-series data to be inserted.
-   * @throws StatementExecutionException if an error occurs while executing the statement.
-   * @throws IoTDBConnectionException    if there is an issue with the IoTDB connection.
-   */
-  void insert(Tablet tablet) throws StatementExecutionException, IoTDBConnectionException;
-
-  /**
-   * Executes a non-query SQL statement, such as a DDL or DML command.
-   *
-   * @param sql the SQL statement to execute.
-   * @throws IoTDBConnectionException    if there is an issue with the IoTDB connection.
-   * @throws StatementExecutionException if an error occurs while executing the statement.
-   */
-  void executeNonQueryStatement(String sql) throws IoTDBConnectionException, StatementExecutionException;
-
-  /**
-   * Executes a query SQL statement and returns the result set.
-   *
-   * @param sql the SQL query statement to execute.
-   * @return a {@link SessionDataSet} containing the query results.
-   * @throws StatementExecutionException if an error occurs while executing the statement.
-   * @throws IoTDBConnectionException    if there is an issue with the IoTDB connection.
-   */
-  SessionDataSet executeQueryStatement(String sql)
-      throws StatementExecutionException, IoTDBConnectionException;
-
-  /**
-   * Executes a query SQL statement with a specified timeout and returns the result set.
-   *
-   * @param sql         the SQL query statement to execute.
-   * @param timeoutInMs the timeout duration in milliseconds for the query execution.
-   * @return a {@link SessionDataSet} containing the query results.
-   * @throws StatementExecutionException if an error occurs while executing the statement.
-   * @throws IoTDBConnectionException    if there is an issue with the IoTDB connection.
-   */
-  SessionDataSet executeQueryStatement(String sql, long timeoutInMs)
-      throws StatementExecutionException, IoTDBConnectionException;
-
-  /**
-   * Closes the session, releasing any held resources.
-   *
-   * @throws IoTDBConnectionException if there is an issue with closing the IoTDB connection.
-   */
-  @Override
-  void close() throws IoTDBConnectionException;
-}
-```
-
-### 3.2 TableSessionBuilder Class
-
-#### 3.2.1 Feature Description
-
-The `TableSessionBuilder` class is a builder for configuring and creating instances of the `ITableSession` interface. It allows developers to set connection parameters, query parameters, and security features.
-
-#### 3.2.2 Parameter Configuration
-
-| **Parameter**                                       | **Description**                                              | **Default Value**                                 |
-|-----------------------------------------------------| ------------------------------------------------------------ |---------------------------------------------------|
-| nodeUrls(List\<String> nodeUrls)                    | Sets the list of IoTDB cluster node URLs.                    | `Collections.singletonList("``localhost:6667``")` |
-| username(String username)                           | Sets the username for the connection.                        | `"root"`                                          |
-| password(String password)                           | Sets the password for the connection.                        | `"TimechoDB@2021"` //before V2.0.6 it is root     |
-| database(String database)                           | Sets the target database name.                               | `null`                                            |
-| queryTimeoutInMs(long queryTimeoutInMs)             | Sets the query timeout in milliseconds.                      | `60000` (1 minute)                                |
-| fetchSize(int fetchSize)                            | Sets the fetch size for query results.                       | `5000`                                            |
-| zoneId(ZoneId zoneId)                               | Sets the timezone-related `ZoneId`.                          | `ZoneId.systemDefault()`                          |
-| thriftDefaultBufferSize(int thriftDefaultBufferSize) | Sets the default buffer size for the Thrift client (in bytes). | `1024`(1KB)                                       |
-| thriftMaxFrameSize(int thriftMaxFrameSize)          | Sets the maximum frame size for the Thrift client (in bytes). | `64 * 1024 * 1024`(64MB)                          |
-| enableRedirection(boolean enableRedirection)        | Enables or disables redirection for cluster nodes.           | `true`                                            |
-| enableAutoFetch(boolean enableAutoFetch)            | Enables or disables automatic fetching of available DataNodes. | `true`                                            |
-| maxRetryCount(int maxRetryCount)                    | Sets the maximum number of connection retry attempts.        | `60`                                              |
-| retryIntervalInMs(long retryIntervalInMs)           | Sets the interval between retry attempts (in milliseconds).  | `500`(500 millisesonds)                           |
-| useSSL(boolean useSSL)                              | Enables or disables SSL for secure connections.              | `false`                                           |
-| trustStore(String keyStore)                         | Sets the path to the trust store for SSL connections.        | `null`                                            |
-| trustStorePwd(String keyStorePwd)                   | Sets the password for the SSL trust store.                   | `null`                                            |
-| enableCompression(boolean enableCompression)        | Enables or disables RPC compression for the connection.      | `false`                                           |
-| connectionTimeoutInMs(int connectionTimeoutInMs)    | Sets the connection timeout in milliseconds.                 | `0` (no timeout)                                  |
-
-#### 3.2.3 Sample Code
-
-```java
-/**
- * A builder class for constructing instances of {@link ITableSession}.
- *
- * <p>This builder provides a fluent API for configuring various options such as connection 
- * settings, query parameters, and security features.
- *
- * <p>All configurations have reasonable default values, which can be overridden as needed.
- */
-public class TableSessionBuilder {
-
-    /**
-     * Builds and returns a configured {@link ITableSession} instance.
-     *
-     * @return a fully configured {@link ITableSession}.
-     * @throws IoTDBConnectionException if an error occurs while establishing the connection.
-     */
-    public ITableSession build() throws IoTDBConnectionException;
-
-    /**
-     * Sets the list of node URLs for the IoTDB cluster.
-     *
-     * @param nodeUrls a list of node URLs.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue Collection.singletonList("localhost:6667")
-     */
-    public TableSessionBuilder nodeUrls(List<String> nodeUrls);
-
-    /**
-     * Sets the username for the connection.
-     *
-     * @param username the username.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue "root"
-     */
-    public TableSessionBuilder username(String username);
-
-    /**
-     * Sets the password for the connection.
-     *
-     * @param password the password.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue "TimechoDB@2021" //before V2.0.6 it is root
-     */
-    public TableSessionBuilder password(String password);
-
-    /**
-     * Sets the target database name.
-     *
-     * @param database the database name.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue null
-     */
-    public TableSessionBuilder database(String database);
-
-    /**
-     * Sets the query timeout in milliseconds.
-     *
-     * @param queryTimeoutInMs the query timeout in milliseconds.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 60000 (1 minute)
-     */
-    public TableSessionBuilder queryTimeoutInMs(long queryTimeoutInMs);
-
-    /**
-     * Sets the fetch size for query results.
-     *
-     * @param fetchSize the fetch size.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 5000
-     */
-    public TableSessionBuilder fetchSize(int fetchSize);
-
-    /**
-     * Sets the {@link ZoneId} for timezone-related operations.
-     *
-     * @param zoneId the {@link ZoneId}.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue ZoneId.systemDefault()
-     */
-    public TableSessionBuilder zoneId(ZoneId zoneId);
-
-    /**
-     * Sets the default init buffer size for the Thrift client.
-     *
-     * @param thriftDefaultBufferSize the buffer size in bytes.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 1024 (1 KB)
-     */
-    public TableSessionBuilder thriftDefaultBufferSize(int thriftDefaultBufferSize);
-
-    /**
-     * Sets the maximum frame size for the Thrift client.
-     *
-     * @param thriftMaxFrameSize the maximum frame size in bytes.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 64 * 1024 * 1024 (64 MB)
-     */
-    public TableSessionBuilder thriftMaxFrameSize(int thriftMaxFrameSize);
-
-    /**
-     * Enables or disables redirection for cluster nodes.
-     *
-     * @param enableRedirection whether to enable redirection.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue true
-     */
-    public TableSessionBuilder enableRedirection(boolean enableRedirection);
-
-    /**
-     * Enables or disables automatic fetching of available DataNodes.
-     *
-     * @param enableAutoFetch whether to enable automatic fetching.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue true
-     */
-    public TableSessionBuilder enableAutoFetch(boolean enableAutoFetch);
-
-    /**
-     * Sets the maximum number of retries for connection attempts.
-     *
-     * @param maxRetryCount the maximum retry count.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 60
-     */
-    public TableSessionBuilder maxRetryCount(int maxRetryCount);
-
-    /**
-     * Sets the interval between retries in milliseconds.
-     *
-     * @param retryIntervalInMs the interval in milliseconds.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 500 milliseconds
-     */
-    public TableSessionBuilder retryIntervalInMs(long retryIntervalInMs);
-
-    /**
-     * Enables or disables SSL for secure connections.
-     *
-     * @param useSSL whether to enable SSL.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue false
-     */
-    public TableSessionBuilder useSSL(boolean useSSL);
-
-    /**
-     * Sets the trust store path for SSL connections.
-     *
-     * @param keyStore the trust store path.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue null
-     */
-    public TableSessionBuilder trustStore(String keyStore);
-
-    /**
-     * Sets the trust store password for SSL connections.
-     *
-     * @param keyStorePwd the trust store password.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue null
-     */
-    public TableSessionBuilder trustStorePwd(String keyStorePwd);
-
-    /**
-     * Enables or disables rpc compression for the connection.
-     *
-     * @param enableCompression whether to enable compression.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue false
-     */
-    public TableSessionBuilder enableCompression(boolean enableCompression);
-
-    /**
-     * Sets the connection timeout in milliseconds.
-     *
-     * @param connectionTimeoutInMs the connection timeout in milliseconds.
-     * @return the current {@link TableSessionBuilder} instance.
-     * @defaultValue 0 (no timeout)
-     */
-    public TableSessionBuilder connectionTimeoutInMs(int connectionTimeoutInMs);
-}
-```
-
-> Note: When creating tables using the native API, if table or column names contain special characters or Chinese characters, do not add extra double quotes around them. Otherwise, the quotation marks will become part of the name itself.
-
-## 4. Session Pool
-
-### 4.1 ITableSessionPool Interface
-
-#### 4.1.1 Feature Description
-
-The `ITableSessionPool` interface manages a pool of `ITableSession` instances, enabling efficient reuse of connections and proper cleanup of resources.
-
-#### 4.1.2 Method Overview
-
-| **Method Name** | **Description**                                            | **Return Value** | **Exceptions**             |
-| --------------- | ---------------------------------------------------------- | ---------------- | -------------------------- |
-| getSession()    | Acquires a session from the pool for database interaction. | `ITableSession`  | `IoTDBConnectionException` |
-| close()         | Closes the session pool and releases resources.。          | None             | None                       |
-
-#### 4.1.3 Sample Code
-
-```Java
-/**
- * This interface defines a pool for managing {@link ITableSession} instances.
- * It provides methods to acquire a session from the pool and to close the pool.
- *
- * <p>The implementation should handle the lifecycle of sessions, ensuring efficient
- * reuse and proper cleanup of resources.
- */
-public interface ITableSessionPool {
-
-    /**
-     * Acquires an {@link ITableSession} instance from the pool.
-     *
-     * @return an {@link ITableSession} instance for interacting with the IoTDB.
-     * @throws IoTDBConnectionException if there is an issue obtaining a session from the pool.
-     */
-    ITableSession getSession() throws IoTDBConnectionException;
-
-    /**
-     * Closes the session pool, releasing any held resources.
-     *
-     * <p>Once the pool is closed, no further sessions can be acquired.
-     */
-    void close();
-}
-```
-
-### 4.2 ableSessionPoolBuilder Class
-
-#### 4.2.1 Feature Description
-
-The `TableSessionPoolBuilder` class is a builder for configuring and creating `ITableSessionPool` instances, supporting options like connection settings and pooling behavior.
-
-#### 4.2.2 Parameter Configuration
-
-| **Parameter**                                                 | **Description**                                              | **Default Value**                              |
-|---------------------------------------------------------------| ------------------------------------------------------------ |------------------------------------------------|
-| nodeUrls(List\<String> nodeUrls)                              | Sets the list of IoTDB cluster node URLs.                    | `Collections.singletonList("localhost:6667")`  |
-| maxSize(int maxSize)                                          | Sets the maximum size of the session pool, i.e., the maximum number of sessions allowed in the pool. | `5`                                            |
-| user(String user)                                             | Sets the username for the connection.                        | `"root"`                                       |
-| password(String password)                                     | Sets the password for the connection.                        | `"TimechoDB@2021"` //before V2.0.6 it is root  |
-| database(String database)                                     | Sets the target database name.                               | `"root"`                                       |
-| queryTimeoutInMs(long queryTimeoutInMs)                       | Sets the query timeout in milliseconds.                      | `60000`(1 minute)                              |
-| fetchSize(int fetchSize)                                      | Sets the fetch size for query results.                       | `5000`                                         |
-| zoneId(ZoneId zoneId)                                         | Sets the timezone-related `ZoneId`.                          | `ZoneId.systemDefault()`                       |
-| waitToGetSessionTimeoutInMs(long waitToGetSessionTimeoutInMs) | Sets the timeout duration (in milliseconds) for acquiring a session from the pool. | `30000`(30 seconds)                            |
-| thriftDefaultBufferSize(int thriftDefaultBufferSize)          | Sets the default buffer size for the Thrift client (in bytes). | `1024`(1KB)                                    |
-| thriftMaxFrameSize(int thriftMaxFrameSize)                    | Sets the maximum frame size for the Thrift client (in bytes). | `64 * 1024 * 1024`(64MB)                       |
-| enableCompression(boolean enableCompression)                  | Enables or disables compression for the connection.          | `false`                                        |
-| enableRedirection(boolean enableRedirection)                  | Enables or disables redirection for cluster nodes.           | `true`                                         |
-| connectionTimeoutInMs(int connectionTimeoutInMs)              | Sets the connection timeout in milliseconds.                 | `10000` (10 seconds)                           |
-| enableAutoFetch(boolean enableAutoFetch)                      | Enables or disables automatic fetching of available DataNodes. | `true`                                         |
-| maxRetryCount(int maxRetryCount)                              | Sets the maximum number of connection retry attempts.        | `60`                                           |
-| retryIntervalInMs(long retryIntervalInMs)                     | Sets the interval between retry attempts (in milliseconds).  | `500` (500 milliseconds)                       |
-| useSSL(boolean useSSL)                                        | Enables or disables SSL for secure connections.              | `false`                                        |
-| trustStore(String keyStore)                                   | Sets the path to the trust store for SSL connections.        | `null`                                         |
-| trustStorePwd(String keyStorePwd)                             | Sets the password for the SSL trust store.                   | `null`                                         |
-
-#### 4.2.3 Sample Code
-
-```Java
-/**
- * A builder class for constructing instances of {@link ITableSessionPool}.
- *
- * <p>This builder provides a fluent API for configuring a session pool, including
- * connection settings, session parameters, and pool behavior.
- *
- * <p>All configurations have reasonable default values, which can be overridden as needed.
- */
-public class TableSessionPoolBuilder {
-
-    /**
-     * Builds and returns a configured {@link ITableSessionPool} instance.
-     *
-     * @return a fully configured {@link ITableSessionPool}.
-     */
-    public ITableSessionPool build();
-
-    /**
-     * Sets the list of node URLs for the IoTDB cluster.
-     *
-     * @param nodeUrls a list of node URLs.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue Collection.singletonList("localhost:6667")
-     */
-    public TableSessionPoolBuilder nodeUrls(List<String> nodeUrls);
-
-    /**
-     * Sets the maximum size of the session pool.
-     *
-     * @param maxSize the maximum number of sessions allowed in the pool.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 5
-     */
-    public TableSessionPoolBuilder maxSize(int maxSize);
-
-    /**
-     * Sets the username for the connection.
-     *
-     * @param user the username.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue "root"
-     */
-    public TableSessionPoolBuilder user(String user);
-
-    /**
-     * Sets the password for the connection.
-     *
-     * @param password the password.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue "TimechoDB@2021" //before V2.0.6 it is root
-     */
-    public TableSessionPoolBuilder password(String password);
-
-    /**
-     * Sets the target database name.
-     *
-     * @param database the database name.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue "root"
-     */
-    public TableSessionPoolBuilder database(String database);
-
-    /**
-     * Sets the query timeout in milliseconds.
-     *
-     * @param queryTimeoutInMs the query timeout in milliseconds.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 60000 (1 minute)
-     */
-    public TableSessionPoolBuilder queryTimeoutInMs(long queryTimeoutInMs);
-
-    /**
-     * Sets the fetch size for query results.
-     *
-     * @param fetchSize the fetch size.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 5000
-     */
-    public TableSessionPoolBuilder fetchSize(int fetchSize);
-
-    /**
-     * Sets the {@link ZoneId} for timezone-related operations.
-     *
-     * @param zoneId the {@link ZoneId}.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue ZoneId.systemDefault()
-     */
-    public TableSessionPoolBuilder zoneId(ZoneId zoneId);
-
-    /**
-     * Sets the timeout for waiting to acquire a session from the pool.
-     *
-     * @param waitToGetSessionTimeoutInMs the timeout duration in milliseconds.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 30000 (30 seconds)
-     */
-    public TableSessionPoolBuilder waitToGetSessionTimeoutInMs(long waitToGetSessionTimeoutInMs);
-
-    /**
-     * Sets the default buffer size for the Thrift client.
-     *
-     * @param thriftDefaultBufferSize the buffer size in bytes.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 1024 (1 KB)
-     */
-    public TableSessionPoolBuilder thriftDefaultBufferSize(int thriftDefaultBufferSize);
-
-    /**
-     * Sets the maximum frame size for the Thrift client.
-     *
-     * @param thriftMaxFrameSize the maximum frame size in bytes.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 64 * 1024 * 1024 (64 MB)
-     */
-    public TableSessionPoolBuilder thriftMaxFrameSize(int thriftMaxFrameSize);
-
-    /**
-     * Enables or disables compression for the connection.
-     *
-     * @param enableCompression whether to enable compression.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue false
-     */
-    public TableSessionPoolBuilder enableCompression(boolean enableCompression);
-
-    /**
-     * Enables or disables redirection for cluster nodes.
-     *
-     * @param enableRedirection whether to enable redirection.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue true
-     */
-    public TableSessionPoolBuilder enableRedirection(boolean enableRedirection);
-
-    /**
-     * Sets the connection timeout in milliseconds.
-     *
-     * @param connectionTimeoutInMs the connection timeout in milliseconds.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 10000 (10 seconds)
-     */
-    public TableSessionPoolBuilder connectionTimeoutInMs(int connectionTimeoutInMs);
-
-    /**
-     * Enables or disables automatic fetching of available DataNodes.
-     *
-     * @param enableAutoFetch whether to enable automatic fetching.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue true
-     */
-    public TableSessionPoolBuilder enableAutoFetch(boolean enableAutoFetch);
-
-    /**
-     * Sets the maximum number of retries for connection attempts.
-     *
-     * @param maxRetryCount the maximum retry count.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 60
-     */
-    public TableSessionPoolBuilder maxRetryCount(int maxRetryCount);
-
-    /**
-     * Sets the interval between retries in milliseconds.
-     *
-     * @param retryIntervalInMs the interval in milliseconds.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue 500 milliseconds
-     */
-    public TableSessionPoolBuilder retryIntervalInMs(long retryIntervalInMs);
-
-    /**
-     * Enables or disables SSL for secure connections.
-     *
-     * @param useSSL whether to enable SSL.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue false
-     */
-    public TableSessionPoolBuilder useSSL(boolean useSSL);
-
-    /**
-     * Sets the trust store path for SSL connections.
-     *
-     * @param keyStore the trust store path.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue null
-     */
-    public TableSessionPoolBuilder trustStore(String keyStore);
-
-    /**
-     * Sets the trust store password for SSL connections.
-     *
-     * @param keyStorePwd the trust store password.
-     * @return the current {@link TableSessionPoolBuilder} instance.
-     * @defaultValue null
-     */
-    public TableSessionPoolBuilder trustStorePwd(String keyStorePwd);
-}
-```
-
-## 5. Example Code
-
-Session: [src/main/java/org/apache/iotdb/TableModelSessionExample.java](https://github.com/apache/iotdb/blob/master/example/session/src/main/java/org/apache/iotdb/TableModelSessionExample.java)
-
-SessionPool: [src/main/java/org/apache/iotdb/TableModelSessionPoolExample.java](https://github.com/apache/iotdb/blob/master/example/session/src/main/java/org/apache/iotdb/TableModelSessionPoolExample.java)
-
-```Java
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb;
-
-import org.apache.iotdb.isession.ITableSession;
-import org.apache.iotdb.isession.SessionDataSet;
-import org.apache.iotdb.isession.pool.ITableSessionPool;
-import org.apache.iotdb.rpc.IoTDBConnectionException;
-import org.apache.iotdb.rpc.StatementExecutionException;
-import org.apache.iotdb.session.pool.TableSessionPoolBuilder;
-
-import org.apache.tsfile.enums.ColumnCategory;
-import org.apache.tsfile.enums.TSDataType;
-import org.apache.tsfile.write.record.Tablet;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import static org.apache.iotdb.SessionExample.printDataSet;
-
-public class TableModelSessionPoolExample {
-
-    private static final String LOCAL_URL = "127.0.0.1:6667";
-
-    public static void main(String[] args) {
-
-        // don't specify database in constructor
-        ITableSessionPool tableSessionPool =
-                new TableSessionPoolBuilder()
-                        .nodeUrls(Collections.singletonList(LOCAL_URL))
-                        .user("root")
-                        .password("TimechoDB@2021") //before V2.0.6 it is root
-                        .maxSize(1)
-                        .build();
-
-        try (ITableSession session = tableSessionPool.getSession()) {
-
-            session.executeNonQueryStatement("CREATE DATABASE test1");
-            session.executeNonQueryStatement("CREATE DATABASE test2");
-
-            session.executeNonQueryStatement("use test2");
-
-            // or use full qualified table name
-            session.executeNonQueryStatement(
-                    "create table test1.table1("
-                            + "region_id STRING TAG, "
-                            + "plant_id STRING TAG, "
-                            + "device_id STRING TAG, "
-                            + "model STRING ATTRIBUTE, "
-                            + "temperature FLOAT FIELD, "
-                            + "humidity DOUBLE FIELD) with (TTL=3600000)");
-
-            session.executeNonQueryStatement(
-                    "create table table2("
-                            + "region_id STRING TAG, "
-                            + "plant_id STRING TAG, "
-                            + "color STRING ATTRIBUTE, "
-                            + "temperature FLOAT FIELD, "
-                            + "speed DOUBLE FIELD) with (TTL=6600000)");
-
-            // show tables from current database
-            try (SessionDataSet dataSet = session.executeQueryStatement("SHOW TABLES")) {
-                printDataSet(dataSet);
-            }
-
-            // show tables by specifying another database
-            // using SHOW tables FROM
-            try (SessionDataSet dataSet = session.executeQueryStatement("SHOW TABLES FROM test1")) {
-                printDataSet(dataSet);
-            }
-
-            // insert table data by tablet
-            List<String> columnNameList =
-                    Arrays.asList("region_id", "plant_id", "device_id", "model", "temperature", "humidity");
-            List<TSDataType> dataTypeList =
-                    Arrays.asList(
-                            TSDataType.STRING,
-                            TSDataType.STRING,
-                            TSDataType.STRING,
-                            TSDataType.STRING,
-                            TSDataType.FLOAT,
-                            TSDataType.DOUBLE);
-            List<ColumnCategory> columnTypeList =
-                    new ArrayList<>(
-                            Arrays.asList(
-                                    ColumnCategory.TAG,
-                                    ColumnCategory.TAG,
-                                    ColumnCategory.TAG,
-                                    ColumnCategory.ATTRIBUTE,
-                                    ColumnCategory.FIELD,
-                                    ColumnCategory.FIELD));
-            Tablet tablet = new Tablet("test1", columnNameList, dataTypeList, columnTypeList, 100);
-            for (long timestamp = 0; timestamp < 100; timestamp++) {
-                int rowIndex = tablet.getRowSize();
-                tablet.addTimestamp(rowIndex, timestamp);
-                tablet.addValue("region_id", rowIndex, "1");
-                tablet.addValue("plant_id", rowIndex, "5");
-                tablet.addValue("device_id", rowIndex, "3");
-                tablet.addValue("model", rowIndex, "A");
-                tablet.addValue("temperature", rowIndex, 37.6F);
-                tablet.addValue("humidity", rowIndex, 111.1);
-                if (tablet.getRowSize() == tablet.getMaxRowNumber()) {
-                    session.insert(tablet);
-                    tablet.reset();
-                }
-            }
-            if (tablet.getRowSize() != 0) {
-                session.insert(tablet);
-                tablet.reset();
-            }
-
-            // query table data
-            try (SessionDataSet dataSet =
-                         session.executeQueryStatement(
-                                 "select * from test1 "
-                                         + "where region_id = '1' and plant_id in ('3', '5') and device_id = '3'")) {
-                printDataSet(dataSet);
-            }
-
-        } catch (IoTDBConnectionException e) {
-            e.printStackTrace();
-        } catch (StatementExecutionException e) {
-            e.printStackTrace();
-        } finally {
-            tableSessionPool.close();
-        }
-
-        // specify database in constructor
-        tableSessionPool =
-                new TableSessionPoolBuilder()
-                        .nodeUrls(Collections.singletonList(LOCAL_URL))
-                        .user("root")
-                        .password("TimechoDB@2021")//before V2.0.6 it is root
-                        .maxSize(1)
-                        .database("test1")
-                        .build();
-
-        try (ITableSession session = tableSessionPool.getSession()) {
-
-            // show tables from current database
-            try (SessionDataSet dataSet = session.executeQueryStatement("SHOW TABLES")) {
-                printDataSet(dataSet);
-            }
-
-            // change database to test2
-            session.executeNonQueryStatement("use test2");
-
-            // show tables by specifying another database
-            // using SHOW tables FROM
-            try (SessionDataSet dataSet = session.executeQueryStatement("SHOW TABLES")) {
-                printDataSet(dataSet);
-            }
-
-        } catch (IoTDBConnectionException e) {
-            e.printStackTrace();
-        } catch (StatementExecutionException e) {
-            e.printStackTrace();
-        }
-
-        try (ITableSession session = tableSessionPool.getSession()) {
-
-            // show tables from default database test1
-            try (SessionDataSet dataSet = session.executeQueryStatement("SHOW TABLES")) {
-                printDataSet(dataSet);
-            }
-
-        } catch (IoTDBConnectionException e) {
-            e.printStackTrace();
-        } catch (StatementExecutionException e) {
-            e.printStackTrace();
-        } finally {
-            tableSessionPool.close();
-        }
-    }
-}
-```
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/Programming-MQTT_timecho.md b/src/UserGuide/Master/Table/API/Programming-MQTT_timecho.md
deleted file mode 100644
index 39184f47..00000000
--- a/src/UserGuide/Master/Table/API/Programming-MQTT_timecho.md
+++ /dev/null
@@ -1,261 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# MQTT Protocol
-
-## 1. Overview
-
-MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for IoT and low-bandwidth environments. It operates on a Publish/Subscribe (Pub/Sub) model, enabling efficient and reliable bidirectional communication between devices. Its core objectives are low power consumption, minimal bandwidth usage, and high real-time performance, making it ideal for unstable networks or resource-constrained scenarios (e.g., sensors, mobile devices).
-
-IoTDB provides deep integration with the MQTT protocol, fully compliant with MQTT v3.1 (OASIS International Standard). The IoTDB server includes a built-in high-performance MQTT Broker module, eliminating the need for third-party middleware. Devices can directly write time-series data into the IoTDB storage engine via MQTT messages.
-
-![](/img/mqtt-table-en-1.png)
-
-Note: As of version V2.0.8.2, the TimechoDB installation package does not include the MQTT service JAR file by default. Please contact the Timecho team to obtain the JAR file before using this service, and place it in the `timechodb_home/lib` or `timechodb_home/ext/external_service` directory.
-
-
-## 2. Configuration
-
-By default, the IoTDB MQTT service loads configurations from `${IOTDB_HOME}/${IOTDB_CONF}/iotdb-system.properties`.
-
-| **Property**            | **Description**                                                                                              | **Default** |
-| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------- |
-| `enable_mqtt_service`     | Enable/ disable the MQTT service.                                                                                  | FALSE             |
-| `mqtt_host`               | Host address bound to the MQTT service.                                                                            | 127.0.0.1         |
-| `mqtt_port`               | Port bound to the MQTT service.                                                                                    | 1883              |
-| `mqtt_handler_pool_size`  | Thread pool size for processing MQTT messages.                                                                     | 1                 |
-| **`mqtt_payload_formatter`** | **Formatting method for MQTT message payloads. ​**​**Options: `json` (tree mode), `line` (table mode).** | **json**    |
-| `mqtt_max_message_size`   | Maximum allowed MQTT message size (bytes).                                                                         | 1048576           |
-
-## 3. Write Protocol
-
-* Line Protocol Syntax
-
-```JavaScript
-<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]][ <attribute_key>=<attribute_value>[,<attribute_key>=<attribute_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
-```
-
-* Example
-
-```JavaScript
-myMeasurement,tag1=value1,tag2=value2 attr1=value1,attr2=value2 fieldKey="fieldValue" 1556813561098000000
-```
-
-![](/img/mqtt-table-en-2.png)
-
-## 4. Naming Conventions
-
-* Database Name
-
-The first segment of the MQTT topic (split by `/`) is used as the database name.
-
-```Properties
-topic: stock/Legacy
-databaseName: stock
-
-
-topic: stock/Legacy/#
-databaseName:stock
-```
-
-* Table Name
-
-The table name is derived from the `<measurement>` in the line protocol.
-
-* Type Identifiers
-
-| Filed Value                                                        | IoTDB Data Type |
-|--------------------------------------------------------------------| ----------------- |
-| 1<br>1.12                                                          | DOUBLE          |
-| 1`f`<br>1.12`f`                                                    | FLOAT           |
-| 1`i`<br>123`i`                                                     | INT64           |
-| 1`u`<br>123`u`                                                     | INT64          |
-| 1`i32`<br>123`i32`                                                 | INT32           |
-| `"xxx"`                                                            | TEXT            |
-| `t`,`T`,`true`,`True`,`TRUE`<br> `f`,`F`,`false`,`False`,`FALSE`   | BOOLEAN         |
-
-
-## 5. Coding Examples
-The following is an example which a mqtt client send messages to IoTDB server.
-
- ```java
-MQTT mqtt = new MQTT();
-mqtt.setHost("127.0.0.1", 1883);
-mqtt.setUserName("root");
-mqtt.setPassword("root");
-
-BlockingConnection connection = mqtt.blockingConnection();
-String DATABASE = "myMqttTest";
-connection.connect();
-
-String payload =
-        "test1,tag1=t1,tag2=t2 attr3=a5,attr4=a4 field1=\"fieldValue1\",field2=1i,field3=1u 1";
-connection.publish(DATABASE + "/myTopic", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
-Thread.sleep(10);
-
-payload = "test1,tag1=t1,tag2=t2  field4=2,field5=2i32,field6=2f 2";
-connection.publish(DATABASE, payload.getBytes(), QoS.AT_LEAST_ONCE, false);
-Thread.sleep(10);
-
-payload = "# It's a remark\n " + "test1,tag1=t1,tag2=t2 field4=2,field5=2i32,field6=2f 6";
-        connection.publish(DATABASE + "/myTopic", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
-        Thread.sleep(10);
-
-//batch write example       
-payload =
-        "test1,tag1=t1,tag2=t2  field7=t,field8=T,field9=true 3 \n "
-        + "test1,tag1=t1,tag2=t2  field7=f,field8=F,field9=FALSE 4";
-connection.publish(DATABASE + "/myTopic", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
-Thread.sleep(10);
-
-//batch write example
-payload =
-        "test1,tag1=t1,tag2=t2 attr1=a1,attr2=a2 field1=\"fieldValue1\",field2=1i,field3=1u 4 \n "
-        + "test1,tag1=t1,tag2=t2 field4=2,field5=2i32,field6=2f 5";
-connection.publish(DATABASE + "/myTopic", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
-Thread.sleep(10);
-
-connection.disconnect();
- ```
-
-
-
-## 6. Customize your MQTT Message Format
-
-If you do not like the above Line format, you can customize your MQTT Message format by just writing several lines
-of codes. An example can be found in  [example/mqtt-customize](https://github.com/apache/iotdb/tree/master/example/mqtt-customize)  project.
-
-Steps:
-1. Create a java project, and add dependency:
-```xml
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-server</artifactId>
-            <version>2.0.4-SNAPSHOT</version>
-        </dependency>
-```
-2. Define your implementation which implements `org.apache.iotdb.db.protocol.mqtt.PayloadFormatter`
-   e.g.,
-
-```java
-package org.apache.iotdb.mqtt.server;
-
-import io.netty.buffer.ByteBuf;
-import org.apache.iotdb.db.protocol.mqtt.Message;
-import org.apache.iotdb.db.protocol.mqtt.PayloadFormatter;
-
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class CustomizedLinePayloadFormatter implements PayloadFormatter {
-
-    @Override
-    public List<Message> format(String topic, ByteBuf payload) {
-        // Suppose the payload is a line format
-        if (payload == null) {
-            return null;
-        }
-
-        String line = payload.toString(StandardCharsets.UTF_8);
-        // parse data from the line and generate Messages and put them into List<Meesage> ret
-        List<Message> ret = new ArrayList<>();
-        // this is just an example, so we just generate some Messages directly
-        for (int i = 0; i < 3; i++) {
-            long ts = i;
-            TableMessage message = new TableMessage();
-
-            // Parsing Database Name
-            message.setDatabase("db" + i);
-
-            //Parsing Table Names
-            message.setTable("t" + i);
-
-            // Parsing Tags
-            List<String> tagKeys = new ArrayList<>();
-            tagKeys.add("tag1" + i);
-            tagKeys.add("tag2" + i);
-            List<Object> tagValues = new ArrayList<>();
-            tagValues.add("t_value1" + i);
-            tagValues.add("t_value2" + i);
-            message.setTagKeys(tagKeys);
-            message.setTagValues(tagValues);
-
-            // Parsing Attributes
-            List<String> attributeKeys = new ArrayList<>();
-            List<Object> attributeValues = new ArrayList<>();
-            attributeKeys.add("attr1" + i);
-            attributeKeys.add("attr2" + i);
-            attributeValues.add("a_value1" + i);
-            attributeValues.add("a_value2" + i);
-            message.setAttributeKeys(attributeKeys);
-            message.setAttributeValues(attributeValues);
-
-           // Parsing Fields
-           List<String> fields = Arrays.asList("field1" + i, "field2" + i);
-           List<TSDataType> dataTypes = Arrays.asList(TSDataType.FLOAT, TSDataType.FLOAT);
-           List<Object> values = Arrays.asList("4.0" + i, "5.0" + i);
-           message.setFields(fields);
-           message.setDataTypes(dataTypes);
-           message.setValues(values);
-
-           //// Parsing timestamp
-           message.setTimestamp(ts);
-           ret.add(message);
-        }
-        return ret;
-    }
-
-    @Override
-    public String getName() {
-        // set the value of mqtt_payload_formatter in iotdb-system.properties as the following string:
-        return "CustomizedLine";
-    }
-}
-```
-3. modify the file in `src/main/resources/META-INF/services/org.apache.iotdb.db.protocol.mqtt.PayloadFormatter`:
-   clean the file and put your implementation class name into the file.
-   In this example, the content is: `org.apache.iotdb.mqtt.server.CustomizedLinePayloadFormatter`
-4. compile your implementation as a jar file: `mvn package -DskipTests`
-
-
-Then, in your server:
-1. Create ${IOTDB_HOME}/ext/mqtt/ folder, and put the jar into this folder.
-2. Update configuration to enable MQTT service. (`enable_mqtt_service=true` in `conf/iotdb-system.properties`)
-3. Set the value of `mqtt_payload_formatter` in `conf/iotdb-system.properties` as the value of getName() in your implementation
-   , in this example, the value is `CustomizedLine`
-4. Launch the IoTDB server.
-5. Now IoTDB will use your implementation to parse the MQTT message.
-
-More: the message format can be anything you want. For example, if it is a binary format,
-just use `payload.forEachByte()` or `payload.array` to get bytes content. 
-
-## 7. Caution
-
-To avoid compatibility issues caused by a default client_id, always explicitly supply a unique, non-empty client_id in every MQTT client.
-Behavior varies when the client_id is missing or empty. Common examples:
-1. Explicitly sending an empty string
-• MQTTX: When client_id="", IoTDB silently discards the message.
-• mosquitto_pub: When client_id="", IoTDB receives the message normally.
-2. Omitting client_id entirely
-• MQTTX: IoTDB accepts the message.
-• mosquitto_pub: IoTDB rejects the connection.
-Therefore, explicitly assigning a unique, non-empty client_id is the simplest way to eliminate these discrepancies and ensure reliable message delivery.
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md b/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md
deleted file mode 100644
index fe40f1f8..00000000
--- a/src/UserGuide/Master/Table/API/Programming-ODBC_timecho.md
+++ /dev/null
@@ -1,1051 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# ODBC
-
-## 1. Feature Introduction
-The IoTDB ODBC driver provides the ability to interact with the database via the standard ODBC interface, supporting data management in time-series databases through ODBC connections. It currently supports database connection, data query, data insertion, data modification, and data deletion operations, and is compatible with various applications and toolchains that support the ODBC protocol.
-
-> Note: This feature is supported starting from V2.0.8.2.
-
-## 2. Usage Method
-It is recommended to install using the pre-compiled binary package. There is no need to compile it yourself; simply use the script to complete the driver installation and system registration. Currently, only Windows systems are supported.
-
-### 2.1 Environment Requirements
-Only the ODBC Driver Manager dependency at the operating system level is required; no compilation environment configuration is needed:
-
-| **Operating System** | **Requirements and Installation Method**                                                                                                                                                                                                                      |
-| :--- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Windows | 1. **Windows 10/11, Server 2016/2019/2022**: Comes with ODBC Driver Manager version 17/18 built-in; no extra installation needed.<br>2. **Windows 8.1/Server 2012 R2**: Requires manual installation of the corresponding version of the ODBC Driver Manager. |
-
-### 2.2 Installation Steps
-1. Contact the Tianmou team to obtain the pre-compiled binary package.
-   Binary package directory structure:
-   ```Plain
-   ├── bin/
-   │   ├── apache_iotdb_odbc.dll
-   │   └── install_driver.exe
-   ├── install.bat
-   └── registry.bat
-   ```
-2. Open a command line tool (CMD/PowerShell) with **Administrator privileges** and run the following command: (You can replace the path with any absolute path)
-   ```Bash
-   install.bat "C:\Program Files\Apache IoTDB ODBC Driver"
-   ```
-   The script automatically completes the following operations:
-    * Creates the installation directory (if it does not exist).
-    * Copies `bin\apache_iotdb_odbc.dll` to the specified installation directory.
-    * Calls `install_driver.exe` to register the driver to the system via the ODBC standard API (`SQLInstallDriverEx`).
-3. Verify installation: Open "ODBC Data Source Administrator". If you can see `Apache IoTDB ODBC Driver` in the "Drivers" tab, the registration was successful.
-   ![](/img/odbc-1-en.png)
-
-### 2.3 Uninstallation Steps
-1. Open Command Prompt as Administrator and `cd` into the project root directory.
-2. Run the uninstallation script:
-   ```Bash
-   uninstall.bat
-   ```
-   The script will call `install_driver.exe` to unregister the driver from the system via the ODBC standard API (`SQLRemoveDriver`). The DLL files in the installation directory will not be automatically deleted; please delete them manually if cleanup is required.
-
-### 2.4 Connection Configuration
-After installing the driver, you need to configure a Data Source Name (DSN) to allow applications to connect to the database using the DSN name. The IoTDB ODBC driver supports two methods for configuring connection parameters: via Data Source and via Connection String.
-
-#### 2.4.1 Configuring Data Source
-**Configure via ODBC Data Source Administrator**
-1. Open "ODBC Data Source Administrator", switch to the "User DSN" tab, and click the "Add" button.
-   ![](/img/odbc-2-en.png)
-2. Select "Apache IoTDB ODBC Driver" from the pop-up driver list and click "Finish".
-   ![](/img/odbc-3-en.png)
-3. The data source configuration dialog will appear. Fill in the connection parameters and click OK:
-   ![](/img/odbc-4-en.png)
-   The meaning of each field in the dialog box is as follows:
-
-   | **Area** | **Field** | **Description** |
-   | :--- | :--- | :--- |
-   | Data Source | DSN Name | Data Source Name; applications refer to this data source by this name. |
-   | Data Source | Description | Data Source description (optional). |
-   | Connection | Server | IoTDB server IP address, default 127.0.0.1. |
-   | Connection | Port | IoTDB Session API port, default 6667. |
-   | Connection | User | Username, default root. |
-   | Connection | Password | Password, default root. |
-   | Options | Table Model | Check to use Table Model; uncheck to use Tree Model. |
-   | Options | Database | Database name. Only available in Table Model mode; grayed out in Tree Model. |
-   | Options | Log Level | Log level (0-4): 0=OFF, 1=ERROR, 2=WARN, 3=INFO, 4=TRACE. |
-   | Options | Session Timeout | Session timeout time (milliseconds); 0 means no timeout. Note: The server-side `queryTimeoutThreshold` defaults to 60000ms; exceeding this value requires modifying server configuration. |
-   | Options | Batch Size | Number of rows fetched per batch, default 1000. Setting to 0 resets to the default value. |
-
-4. After filling in the details, you can click the "Test Connection" button to test the connection. Testing will attempt to connect to the IoTDB server using the current parameters and execute a `SHOW VERSION` query. If successful, the server version information will be displayed; if failed, the specific error reason will be shown.
-5. Once parameters are confirmed correct, click "OK" to save. The data source will appear in the "User DSN" list, as shown in the example below with the name "123".
-   ![](/img/odbc-5-en.png)
-   To modify the configuration of an existing data source, select it in the list and click the "Configure" button to edit again.
-
-#### 2.4.2 Connection String
-The connection string format is **semicolon-separated key-value pairs**, for example:
-```Bash
-Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2
-```
-Specific field attributes are introduced in the table below:
-
-| **Field Name** | **Description** | **Optional Values**                                                                                                                                                                                                                                         | **Default Value** |
-| :--- | :--- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |
-| DSN | Data Source Name | Custom data source name                                                                                                                                                                                                                                     | - |
-| uid | Database username | Any string                                                                                                                                                                                                                                                  | root |
-| pwd | Database password | Any string                                                                                                                                                                                                                                                  | root |
-| server | IoTDB server address | IP address                                                                                                                                                                                                                                                  | 127.0.0.1 |
-| port | IoTDB server port | Port number                                                                                                                                                                                                                                                 | 6667 |
-| database | Database name (only effective in Table Model mode) | Any string                                                                                                                                                                                                                                                  | Empty string |
-| loglevel | Log level | Integer value (0-4)                                                                                                                                                                                                                                         | 4 (LOG_LEVEL_TRACE) |
-| isTableModel / tablemodel | Whether to enable Table Model mode | Boolean type, supports multiple representations:<br>1. 0, false, no, off: set to false;<br>2. 1, true, yes, on: set to true;<br>3. Other values default to true.                                                                                                    | true |
-| sessiontimeoutms | Session timeout time (milliseconds) | 64-bit integer, defaults to `LLONG_MAX`; setting to `0` will be replaced with `LLONG_MAX`. Note: The server has a timeout setting: `private long queryTimeoutThreshold = 60000;` this item needs to be modified to get a timeout time exceeding 60 seconds. | LLONG_MAX |
-| batchsize | Batch size for fetching data each time | 64-bit integer, defaults to `1000`; setting to `0` will be replaced with `1000`                                                                                                                                                                             | 1000 |
-
-Notes:
-* Field names are case-insensitive (automatically converted to lowercase for comparison).
-* Connection string format is semicolon-separated key-value pairs, e.g., `Driver={IoTDB ODBC Driver};server=127.0.0.1;port=6667;uid=root;pwd=root;database=testdb;isTableModel=true;loglevel=2`.
-* For boolean fields (`isTableModel`), multiple representation methods are supported.
-* All fields are optional; if not specified, default values are used.
-* Unsupported fields will be ignored and a warning logged, but will not affect the connection.
-* The default server interface port 6667 is the default port used by IoTDB's C++ Session interface. This ODBC driver uses the C++ Session interface to transfer data with IoTDB. If the C++ Session interface on the IoTDB server uses a non-default port, corresponding changes must be made in the ODBC connection string.
-
-#### 2.4.3 Relationship between Data Source Configuration and Connection String
-Configurations saved in the ODBC Data Source Administrator are written into the system's ODBC data source configuration as key-value pairs (corresponding to the registry `HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI` under Windows). When an application uses `SQLConnect` or specifies `DSN=DataSourceName` in the connection string, the driver reads these parameters from the system configuration.
-
-**The priority of the connection string is higher than the configuration saved in the DSN.** Specific rules are as follows:
-1. If the connection string contains `DSN=xxx` and does not contain `DRIVER=...`, the driver first loads all parameters of that DSN from the system configuration as base values.
-2. Then, parameters explicitly specified in the connection string will override parameters with the same name in the DSN.
-3. If the connection string contains `DRIVER=...`, no DSN parameters will be read from the system configuration; it will rely entirely on the connection string.
-
-For example: If the DSN is configured with `Server=192.168.1.100` and `Port=6667`, but the connection string is `DSN=MyDSN;Server=127.0.0.1`, then the actual connection will use `Server=127.0.0.1` (overridden by connection string) and `Port=6667` (from DSN).
-
-### 2.5 Logging
-Log output during driver runtime is divided into "Driver Self-Logs" and "ODBC Manager Tracing Logs". Note the impact of log levels on performance.
-
-#### 2.5.1 Driver Self-Logs
-* Output location: `apache_iotdb_odbc.log` in the user's home directory.
-* Log level: Configured via the `loglevel` parameter in the connection string (0-4; higher levels produce more detailed output).
-* Performance impact: High log levels will significantly reduce driver performance; recommended for debugging only.
-
-#### 2.5.2 ODBC Manager Tracing Logs
-* How to enable: Open "ODBC Data Source Administrator" → "Tracing" → "Start Tracing Now".
-* Precautions: Enabling this will greatly reduce driver performance; use only for troubleshooting.
-
-## 3. Interface Support
-
-### 3.1 Method List
-The driver's support status for standard ODBC APIs is as follows:
-
-| ODBC/Setup API    | Function Function                            | Parameter List                                                                                                                                                                                                               | Parameter Description |
-|:------------------|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| :--- |
-| SQLAllocHandle    | Allocate ODBC Handle                         | (SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle)                                                                                                                                                     | HandleType: Type of handle to allocate (ENV/DBC/STMT/DESC);<br>InputHandle: Parent context handle;<br>OutputHandle: Pointer to the returned new handle. |
-| SQLBindCol        | Bind column to result buffer                 | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind)                                                                            | StatementHandle: Statement handle;<br>ColumnNumber: Column number;<br>TargetType: C data type;<br>TargetValue: Data buffer;BufferLength: Buffer length;<br>StrLen_or_Ind: Returns data length or NULL in [...]
-| SQLColAttribute   | Get column attribute information             | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLLEN *NumericAttribute)                            | StatementHandle: Statement handle;<br>ColumnNumber: Column number;<br>FieldIdentifier: Attribute ID;<br>CharacterAttribute: Character attribute output;<br>BufferLength: Buffer length;<br>StringLength: [...]
-| SQLColumns        | Query table column information               | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4)           | StatementHandle: Statement handle;<br>Catalog/Schema/Table/ColumnName: Query object names;<br><br>NameLength*: Corresponding name lengths. |
-| SQLConnect        | Establish database connection                | (SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3)                                                       | ConnectionHandle: Connection handle;<br>ServerName: Data source name;<br>UserName: Username;<br>Authentication: Password; <br>NameLength*: String lengths. |
-| SQLDescribeCol    | Describe columns in result set               | (SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) | StatementHandle: Statement handle;<br>ColumnNumber: Column number;<br>ColumnName: Column name output;<br>BufferLength: Buffer length;<br>NameLength: Returned column name length;<br>DataType: SQL type; [...]
-| SQLDisconnect     | Disconnect database connection               | (SQLHDBC ConnectionHandle)                                                                                                                                                                                                   | ConnectionHandle: Connection handle. |
-| SQLDriverConnect  | Establish connection using connection string | (SQLHDBC ConnectionHandle, SQLHWND WindowHandle, SQLCHAR *InConnectionString, SQLSMALLINT StringLength1, SQLCHAR *OutConnectionString, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength2, SQLUSMALLINT DriverCompletion)  | ConnectionHandle: Connection handle;<br>WindowHandle: Window handle;InConnectionString: Input connection string;<br>StringLength1: Input length;<br>OutConnectionString: Output connection string;<br>Bu [...]
-| SQLEndTran        | Commit or rollback transaction               | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType)                                                                                                                                                       | HandleType: Handle type;<br>Handle: Connection or environment handle;<br>CompletionType: Commit or rollback transaction. |
-| SQLExecDirect     | Execute SQL statement directly               | (SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength)                                                                                                                                                    | StatementHandle: Statement handle;<br>StatementText: SQL text;TextLength: SQL length. |
-| SQLFetch          | Fetch next row in result set                 | (SQLHSTMT StatementHandle)                                                                                                                                                                                                   | StatementHandle: Statement handle. |
-| SQLFreeHandle     | Free ODBC handle                             | (SQLSMALLINT HandleType, SQLHANDLE Handle)                                                                                                                                                                                   | HandleType: Handle type;<br>Handle: Handle to free. |
-| SQLFreeStmt       | Free statement-related resources             | (SQLHSTMT StatementHandle, SQLUSMALLINT Option)                                                                                                                                                                              | StatementHandle: Statement handle;<br>Option: Free option (close cursor/reset parameters, etc.). |
-| SQLGetConnectAttr | Get connection attribute                     | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength)                                                                                                        | ConnectionHandle: Connection handle;<br>Attribute: Attribute ID;<br>Value: Returned attribute value;<br>BufferLength: Buffer length;<br>StringLength: Returned length. |
-| SQLGetData        | Get result data                              | (SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN *StrLen_or_Ind)                                                                        | StatementHandle: Statement handle;<br>Col_or_Param_Num: Column number;<br>TargetType: C type;<br>TargetValue: Data buffer;<br>BufferLength: Buffer size;<br>StrLen_or_Ind: Returned length or NULL flag. |
-| SQLGetDiagField   | Get diagnostic field                         | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength)                                                      | HandleType: Handle type;<br>Handle: Handle;<br>RecNumber: Record number;<br>DiagIdentifier: Diagnostic field ID;<br>DiagInfo: Output info;<br>BufferLength: Buffer;<br>StringLength: Returned length. |
-| SQLGetDiagRec     | Get diagnostic record                        | (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength)                                       | HandleType: Handle type;<br>Handle: Handle;<br>RecNumber: Record number;<br>Sqlstate: SQL state code;<br>NativeError: Native error code;<br>MessageText: Error message;<br>BufferLength: Buffer;<br>Text [...]
-| SQLGetInfo        | Get database information                     | (SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength)                                                                                                 | ConnectionHandle: Connection handle;<br>InfoType: Information type;<br>InfoValue: Return value;<br>BufferLength: Buffer length;<br>StringLength: Returned length. |
-| SQLGetStmtAttr    | Get statement attribute                      | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength)                                                                                                        | StatementHandle: Statement handle;<br>Attribute: Attribute ID;<br>Value: Return value;<br>BufferLength: Buffer;<br>StringLength: Returned length. |
-| SQLGetTypeInfo    | Get data type information                    | (SQLHSTMT StatementHandle, SQLSMALLINT DataType)                                                                                                                                                                             | StatementHandle: Statement handle;<br>DataType: SQL data type. |
-| SQLMoreResults    | Get more result sets                         | (SQLHSTMT StatementHandle)                                                                                                                                                                                                   | StatementHandle: Statement handle. |
-| SQLNumResultCols  | Get number of columns in result set          | (SQLHSTMT StatementHandle, SQLSMALLINT *ColumnCount)                                                                                                                                                                         | StatementHandle: Statement handle;<br>ColumnCount: Returned column count. |
-| SQLRowCount       | Get number of affected rows                  | (SQLHSTMT StatementHandle, SQLLEN *RowCount)                                                                                                                                                                                 | StatementHandle: Statement handle;<br>RowCount: Returned number of affected rows. |
-| SQLSetConnectAttr | Set connection attribute                     | (SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)                                                                                                                                  | ConnectionHandle: Connection handle;<br>Attribute: Attribute ID;<br>Value: Attribute value;<br>StringLength: Attribute value length. |
-| SQLSetEnvAttr     | Set environment attribute                    | (SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)                                                                                                                                 | EnvironmentHandle: Environment handle;<br>Attribute: Attribute ID;<br>Value: Attribute value;<br>StringLength: Length. |
-| SQLSetStmtAttr    | Set statement attribute                      | (SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength)                                                                                                                                  | StatementHandle: Statement handle;<br>Attribute: Attribute ID;<br>Value: Attribute value;<br>StringLength: Length. |
-| SQLTables         | Query table information                      | (SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4)            | StatementHandle: Statement handle;<br>Catalog/Schema/TableName: Table names;<br>TableType: Table type;<br>NameLength*: Corresponding lengths. |
-
-### 3.2 Data Type Conversion
-The mapping relationship between IoTDB data types and standard ODBC data types is as follows:
-
-| **IoTDB Data Type** | **ODBC Data Type** |
-| :--- | :--- |
-| BOOLEAN | SQL_BIT |
-| INT32 | SQL_INTEGER |
-| INT64 | SQL_BIGINT |
-| FLOAT | SQL_REAL |
-| DOUBLE | SQL_DOUBLE |
-| TEXT | SQL_VARCHAR |
-| STRING | SQL_VARCHAR |
-| BLOB | SQL_LONGVARBINARY |
-| TIMESTAMP | SQL_BIGINT |
-| DATE | SQL_DATE |
-
-## 4. Operation Examples
-This chapter mainly introduces full-type operation examples for **C#**, **Python**, **C++**, **PowerBI**, and **Excel**, covering core operations such as data query, insertion, and deletion.
-
-### 4.1 C# Example
-
-```C#
-Here is the C# code with all comments and string literals translated into English:
-
-```csharp
-/*******
-Note: When the output contains Chinese characters, it may cause garbled text.
-This is because the table.Write() function cannot output strings in UTF-8 encoding
-and can only output using GB2312 (or another system default encoding). This issue
-may not occur in software like Power BI; it also does not occur when using the Console.WriteLine function. 
-This is an issue with the ConsoleTable package.
-*****/
-
-using System.Data.Common;
-using System.Data.Odbc;
-using System.Reflection.PortableExecutable;
-using ConsoleTables;
-using System;
-
-/// <summary>Executes a SELECT query and outputs the results of fulltable in table format</summary>
-void Query(OdbcConnection dbConnection)
-{
-    try
-    {
-        using (OdbcCommand dbCommand = dbConnection.CreateCommand())
-        {
-            dbCommand.CommandText = "select * from fulltable";
-            using (OdbcDataReader dbReader = dbCommand.ExecuteReader())
-            {
-                var fCount = dbReader.FieldCount;
-                Console.WriteLine($"fCount = {fCount}");
-                
-                // Output header row
-                var columns = new string[fCount];
-                for (var i = 0; i < fCount; i++)
-                {
-                    var fName = dbReader.GetName(i);
-                    if (fName.Contains('.'))
-                    {
-                        fName = fName.Substring(fName.LastIndexOf('.') + 1);
-                    }
-                    columns[i] = fName;
-                }
-                
-                // Output content rows
-                var table = new ConsoleTable(columns);
-                while (dbReader.Read())
-                {
-                    var row = new object[fCount];
-                    for (var i = 0; i < fCount; i++)
-                    {
-                        if (dbReader.IsDBNull(i))
-                        {
-                            row[i] = null;
-                            continue;
-                        }
-                        row[i] = dbReader.GetValue(i);
-                    }
-                    table.AddRow(row);
-                }
-                table.Write();
-                Console.WriteLine();
-            }
-        }
-    }
-    catch (Exception ex)
-    {
-        Console.WriteLine(ex.ToString());
-    }
-}
-
-/// <summary>Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.)</summary>
-void Execute(OdbcConnection dbConnection, string command)
-{
-    try
-    {
-        using (OdbcCommand dbCommand = dbConnection.CreateCommand())
-        {
-            try
-            {
-                dbCommand.CommandText = command;
-                Console.WriteLine($"Execute command: {command}");
-                dbCommand.ExecuteNonQuery();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine($"CommandText error: {ex.Message}");
-            }
-        }
-    }
-    catch (OdbcException ex)
-    {
-        Console.WriteLine($"Database error: {ex.Message}");
-    }
-    catch (Exception ex)
-    {
-        Console.WriteLine($"Unknown error occurred: {ex.Message}");
-    }
-}
-
-var dsn = "Apache IoTDB DSN";
-var user = "root";
-var password = "root";
-var server = "127.0.0.1";
-var database = "test";
-var connectionString = $"DSN={dsn};Server={server};UID={user};PWD={password};Database={database};loglevel=4";
-
-using (OdbcConnection dbConnection = new OdbcConnection(connectionString))
-{
-    Console.WriteLine($"Start");
-    try
-    {
-        dbConnection.Open();
-    }
-    catch (Exception ex)
-    {
-        Console.WriteLine($"Login failed: {ex.Message}");
-        Console.WriteLine($"Stack Trace: {ex.StackTrace}");
-        dbConnection.Dispose();
-        return;
-    }
-    Console.WriteLine($"Successfully opened connection. database name = {dbConnection.Driver}");
-    
-    Execute(dbConnection, "CREATE DATABASE IF NOT EXISTS test");
-    Execute(dbConnection, "use test");
-    Console.WriteLine("use test Execute complete. Begin to setup fulltable.");
-
-    Execute(dbConnection, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)");
-    
-    string[] insertStatements = new string[]
-    {
-        "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')",
-        "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')"
-    };
-    
-    foreach (var insert in insertStatements)
-    {
-        Execute(dbConnection, insert);
-    }
-    Console.WriteLine("fulltable setup complete. Begin to query.");
-    
-    Query(dbConnection); // Execute query and output results
-}
-```
-
-### 4.2 Python Example
-1. To access ODBC via Python, install the `pyodbc` package:
-   ```Plain
-   pip install pyodbc
-   ```
-2. Full Code:
-
-
-```Python
-Here is the complete Python code with all comments and string literals translated into English:
-
-```python
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Apache IoTDB ODBC Python example
-Use pyodbc to connect to the IoTDB ODBC driver and perform operations such as query and insert.
-For reference, see examples/cpp-example/test.cpp and examples/BasicTest/BasicTest/Program.cs
-"""
-
-import pyodbc
-
-def execute(conn: pyodbc.Connection, command: str) -> None:
-    """Executes non-query SQL statements (such as USE, CREATE, INSERT, DELETE, etc.)"""
-    try:
-        with conn.cursor() as cursor:
-            cursor.execute(command)
-            # INSERT/UPDATE/DELETE require commit; session commands such as USE do not.
-            cmd_upper = command.strip().upper()
-            if cmd_upper.startswith(("INSERT", "UPDATE", "DELETE")):
-                conn.commit()
-            print(f"Execute command: {command}")
-    except pyodbc.Error as ex:
-        print(f"CommandText error: {ex}")
-
-def query(conn: pyodbc.Connection, sql: str) -> None:
-    """Executes a SELECT query and outputs the results in table format"""
-    try:
-        with conn.cursor() as cursor:
-            cursor.execute(sql)
-            col_count = len(cursor.description)
-            print(f"fCount = {col_count}")
-
-            if col_count <= 0:
-                return
-
-            # Get column names (if the name contains '.', take the last segment, consistent with C++/C# samples).
-            columns = []
-            for i in range(col_count):
-                col_name = cursor.description[i][0] or f"Column{i}"
-                if "." in str(col_name):
-                    col_name = str(col_name).split(".")[-1]
-                columns.append(str(col_name))
-
-            # Fetch data rows
-            rows = cursor.fetchall()
-
-            # Simple table output
-            col_widths = [max(len(str(col)), 4) for col in columns]
-            for i, row in enumerate(rows):
-                for j, val in enumerate(row):
-                    if j < len(col_widths):
-                        col_widths[j] = max(col_widths[j], len(str(val) if val is not None else "NULL"))
-
-            # Print header
-            header = " | ".join(str(c).ljust(col_widths[i]) for i, c in enumerate(columns))
-            print(header)
-            print("-" * len(header))
-
-            # Print data rows
-            for row in rows:
-                values = []
-                for i, val in enumerate(row):
-                    if val is None:
-                        cell = "NULL"
-                    else:
-                        cell = str(val)
-                    values.append(cell.ljust(col_widths[i]) if i < len(col_widths) else cell)
-                print(" | ".join(values))
-
-            print()
-
-    except pyodbc.Error as ex:
-        print(f"Query error: {ex}")
-
-def main() -> None:
-    dsn = "Apache IoTDB DSN"
-    user = "root"
-    password = "root"
-    server = "127.0.0.1"
-    database = "test"
-    connection_string = (
-        f"DSN={dsn};Server={server};UID={user};PWD={password};"
-        f"Database={database};loglevel=4"
-    )
-
-    print("Start")
-
-    try:
-        conn = pyodbc.connect(connection_string)
-    except pyodbc.Error as ex:
-        print(f"Login failed: {ex}")
-        return
-
-    try:
-        driver_name = conn.getinfo(6)  # SQL_DRIVER_NAME
-        print(f"Successfully opened connection. driver = {driver_name}")
-    except Exception:
-        print("Successfully opened connection.")
-
-    try:
-        execute(conn, "CREATE DATABASE IF NOT EXISTS test")
-        execute(conn, "use test")
-        print("use test Execute complete. Begin to setup fulltable.")
-
-        # Create the fulltable table and insert test data
-        execute(
-            conn,
-            "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, "
-            "int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, "
-            "double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, "
-            "blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) "
-            "WITH (TTL=315360000000)",
-        )
-        insert_statements = [
-            "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')",
-        ]
-        for insert_sql in insert_statements:
-            execute(conn, insert_sql)
-        print("fulltable setup complete. Begin to query.")
-        query(conn, "select * from fulltable")
-        print("Query ok")
-    finally:
-        conn.close()
-
-if __name__ == "__main__":
-    main()
-```
-
-
-### 4.3 C++ Example
-
-
-```C++
-Here is the complete C++ code with all comments and string literals translated into English:
-
-```cpp
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-#include <sql.h>
-#include <sqlext.h>
-#include <iostream>
-#include <string>
-#include <vector>
-#include <chrono>
-#include <ctime>
-
-#ifndef SQL_DIAG_COLUMN_SIZE
-#define SQL_DIAG_COLUMN_SIZE  33L
-#endif
-
-// Error handling function (core functionality preserved)
-void CheckOdbcError(SQLRETURN retCode, SQLSMALLINT handleType, SQLHANDLE handle, const char* functionName) {
-    if (retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) {
-        return;
-    }
-
-    SQLCHAR sqlState[6];
-    SQLCHAR message[SQL_MAX_MESSAGE_LENGTH];
-    SQLINTEGER nativeError;
-    SQLSMALLINT textLength;
-    SQLRETURN errRet;
-    errRet = SQLGetDiagRec(handleType, handle, 1, sqlState, &nativeError, message, sizeof(message), &textLength);
-
-    std::cerr << "ODBC Error in " << functionName << ":\n";
-    std::cerr << "  SQL State: " << sqlState << "\n";
-    std::cerr << "  Native Error: " << nativeError << "\n";
-    std::cerr << "  Message: " << message << "\n";
-    std::cerr << "  SQLGetDiagRec Return: " << errRet << "\n";
-
-    if (retCode == SQL_ERROR || retCode == SQL_INVALID_HANDLE) {
-        exit(1);
-    }
-}
-
-// Simplified table output - displays basic data only
-void PrintSimpleTable(const std::vector<std::string>& headers, 
-                     const std::vector<std::vector<std::string>>& rows) {
-    // Print header row
-    for (size_t i = 0; i < headers.size(); i++) {
-        std::cout << headers[i];
-        if (i < headers.size() - 1) std::cout << "\t";
-    }
-    std::cout << std::endl;
-    
-    // Print separator line
-    for (size_t i = 0; i < headers.size(); i++) {
-        std::cout << "----------------";
-        if (i < headers.size() - 1) std::cout << "\t";
-    }
-    std::cout << std::endl;
-    
-    // Print data rows
-    for (const auto& row : rows) {
-        for (size_t i = 0; i < row.size(); i++) {
-            std::cout << row[i];
-            if (i < row.size() - 1) std::cout << "\t";
-        }
-        std::cout << std::endl;
-    }
-    std::cout << std::endl;
-}
-
-/// Executes a SELECT query and outputs the results of fulltable in table format
-void Query(SQLHDBC hDbc) {
-    SQLHSTMT hStmt = SQL_NULL_HSTMT;
-    SQLRETURN ret = SQL_SUCCESS;
-    
-    try {
-        // Allocate statement handle
-        ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
-        if (!SQL_SUCCEEDED(ret)) {
-            CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)");
-            return;
-        }
-        
-        // Execute query
-        const std::string sqlQuery = "select * from fulltable";
-        std::cout << "Execute query: " << sqlQuery << std::endl;
-
-        ret = SQLExecDirect(hStmt, reinterpret_cast<SQLCHAR*>(const_cast<char*>(sqlQuery.c_str())), SQL_NTS);
-        if (!SQL_SUCCEEDED(ret)) {
-            if (ret != SQL_NO_DATA) {
-                CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect(SELECT)");
-            }
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-            return;
-        }
-        
-        // Get column count
-        SQLSMALLINT colCount = 0;
-        ret = SQLNumResultCols(hStmt, &colCount);
-        if (!SQL_SUCCEEDED(ret)) {
-            CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLNumResultCols");
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-            return;
-        }
-        
-        std::cout << "Column count = " << colCount << std::endl;
-        
-        // If no columns, return directly
-        if (colCount <= 0) {
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-            return;
-        }
-        
-        // Get column names and type information
-        std::vector<std::string> columnNames;
-        std::vector<SQLSMALLINT> columnTypes(colCount);
-        std::vector<SQLULEN> columnSizes(colCount);
-        std::vector<SQLSMALLINT> decimalDigits(colCount);
-        std::vector<SQLSMALLINT> nullable(colCount);
-        
-        // Get basic column information
-        for (SQLSMALLINT i = 1; i <= colCount; i++) {
-            SQLSMALLINT nameLength = 0;
-            ret = SQLDescribeCol(hStmt, i, NULL, 0, &nameLength, NULL, NULL, NULL, NULL);
-            if (!SQL_SUCCEEDED(ret)) {
-                CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get length)");
-                SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-                return;
-            }
-            
-            std::vector<SQLCHAR> colNameBuffer(nameLength + 1);
-            SQLSMALLINT actualNameLength = 0;
-            
-            ret = SQLDescribeCol(hStmt, i, colNameBuffer.data(), nameLength + 1, 
-                                &actualNameLength, NULL, NULL, NULL, NULL);
-            if (!SQL_SUCCEEDED(ret)) {
-                CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get name)");
-                SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-                return;
-            }
-            
-            std::string fullName(reinterpret_cast<char*>(colNameBuffer.data()));
-            
-            size_t pos = fullName.find_last_of('.');
-            if (pos != std::string::npos) {
-                columnNames.push_back(fullName.substr(pos + 1));
-            } else {
-                columnNames.push_back(fullName);
-            }
-            
-            ret = SQLDescribeCol(hStmt, i, NULL, 0, NULL, &columnTypes[i-1], 
-                                &columnSizes[i-1], &decimalDigits[i-1], &nullable[i-1]);
-            if (!SQL_SUCCEEDED(ret)) {
-                CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLDescribeCol (get type info)");
-                SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-                return;
-            }
-        }
-        
-        std::vector<std::vector<std::string>> tableRows;
-        
-        int rowCount = 0;
-        // Fetch data for every row
-        while (true) {
-            ret = SQLFetch(hStmt);
-            if (ret == SQL_NO_DATA) {
-                break;  
-            }
-
-            if (!SQL_SUCCEEDED(ret)) {
-                CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLFetch");
-                break;
-            }
-            
-            std::vector<std::string> row;
-            
-            for (SQLSMALLINT i = 1; i <= colCount; i++) {
-                SQLLEN indicator = 0;
-                std::string valueStr;
-                
-                SQLSMALLINT cType;
-                size_t bufferSize;
-                bool isCharacterType = false;
-                const int maxBufferSize = 32768;
-                
-                switch (columnTypes[i-1]) {
-                    case SQL_CHAR:
-                    case SQL_VARCHAR:
-                    case SQL_LONGVARCHAR:
-                    case SQL_WCHAR:
-                    case SQL_WVARCHAR:
-                    case SQL_WLONGVARCHAR:
-                        cType = SQL_C_CHAR;
-                        if (columnSizes[i - 1] > 0) {
-                            bufferSize = min(maxBufferSize, static_cast<size_t>(columnSizes[i-1]) * 4 + 1);
-                        } else {
-                            bufferSize = maxBufferSize;
-                        }
-                        isCharacterType = true;
-                        break;
-                        
-                    case SQL_DECIMAL:
-                    case SQL_NUMERIC:
-                        cType = SQL_C_CHAR;
-                        if (columnSizes[i - 1] > 0) {
-                            bufferSize = min(maxBufferSize, static_cast<size_t>(columnSizes[i-1]) * 4 + 1);
-                        } else {
-                            bufferSize = maxBufferSize;
-                        }
-                        isCharacterType = true;
-                        break;
-                        
-                    case SQL_INTEGER:
-                    case SQL_SMALLINT:
-                    case SQL_TINYINT:
-                    case SQL_BIGINT:
-                        cType = SQL_C_SBIGINT;  
-                        bufferSize = sizeof(SQLBIGINT);
-                        break;
-                        
-                    case SQL_REAL:
-                    case SQL_FLOAT:
-                    case SQL_DOUBLE:
-                        cType = SQL_C_DOUBLE;
-                        bufferSize = sizeof(double);
-                        break;
-                        
-                    case SQL_BIT:
-                        cType = SQL_C_BIT;
-                        bufferSize = sizeof(SQLCHAR);
-                        break;
-                        
-                    case SQL_DATE:
-                    case SQL_TYPE_DATE:
-                        cType = SQL_C_DATE;
-                        bufferSize = sizeof(SQL_DATE_STRUCT);
-                        break;
-                        
-                    case SQL_TIME:
-                    case SQL_TYPE_TIME:
-                        cType = SQL_C_TIME;
-                        bufferSize = sizeof(SQL_TIME_STRUCT);
-                        break;
-                        
-                    case SQL_TIMESTAMP:
-                    case SQL_TYPE_TIMESTAMP:
-                        cType = SQL_C_TIMESTAMP;
-                        bufferSize = sizeof(SQL_TIMESTAMP_STRUCT);
-                        break;
-                        
-                    default:
-                        cType = SQL_C_CHAR;
-                        bufferSize = 256; 
-                        isCharacterType = true;
-                        break;
-                }
-                
-                std::vector<BYTE> buffer(bufferSize);
-
-                ret = SQLGetData(hStmt, i, cType, buffer.data(), bufferSize, &indicator);
-
-                if (indicator == SQL_NULL_DATA) {
-                    valueStr = "NULL";
-                } 
-                else if (ret != SQL_SUCCESS) {
-                    valueStr = "ERR_CONV";
-                }
-                else {
-                    if (cType == SQL_C_CHAR) {
-                        valueStr = reinterpret_cast<char*>(buffer.data());
-                    }
-                    else if (cType == SQL_C_SBIGINT) {
-                        SQLBIGINT intVal = *reinterpret_cast<SQLBIGINT*>(buffer.data());
-                        valueStr = std::to_string(intVal);
-                    }
-                    else if (cType == SQL_C_DOUBLE) {
-                        double doubleVal = *reinterpret_cast<double*>(buffer.data());
-                        valueStr = std::to_string(doubleVal);
-                    }
-                    else if (cType == SQL_C_BIT) {
-                        valueStr = (*buffer.data() != 0) ? "TRUE" : "FALSE";
-                    }
-                    else if (cType == SQL_C_DATE) {
-                        SQL_DATE_STRUCT* date = reinterpret_cast<SQL_DATE_STRUCT*>(buffer.data());
-                        char dateStr[20];
-                        snprintf(dateStr, sizeof(dateStr), "%04d-%02d-%02d", 
-                                date->year, date->month, date->day);
-                        valueStr = dateStr;
-                    }
-                    else if (cType == SQL_C_TIME) {
-                        SQL_TIME_STRUCT* time = reinterpret_cast<SQL_TIME_STRUCT*>(buffer.data());
-                        char timeStr[15];
-                        snprintf(timeStr, sizeof(timeStr), "%02d:%02d:%02d", 
-                                time->hour, time->minute, time->second);
-                        valueStr = timeStr;
-                    }
-                    else if (cType == SQL_C_TIMESTAMP) {
-                        SQL_TIMESTAMP_STRUCT* ts = reinterpret_cast<SQL_TIMESTAMP_STRUCT*>(buffer.data());
-                        char tsStr[30];
-                        snprintf(tsStr, sizeof(tsStr), "%04d-%02d-%02d %02d:%02d:%02d.%06d", 
-                                ts->year, ts->month, ts->day,
-                                ts->hour, ts->minute, ts->second,
-                                ts->fraction / 1000); 
-                        valueStr = tsStr;
-                    }
-                    else {
-                        valueStr = "UNKNOWN_TYPE";
-                    }
-                    
-                    if (isCharacterType && ret == SQL_SUCCESS_WITH_INFO) {
-                        SQLLEN actualSize = 0;
-                        SQLGetDiagField(SQL_HANDLE_STMT, hStmt, 0, SQL_DIAG_COLUMN_SIZE, 
-                                       &actualSize, SQL_IS_INTEGER, NULL);
-                        
-                        if (indicator > 0 && static_cast<size_t>(indicator) > bufferSize - 1) {
-                            valueStr += "...";  
-                        }
-                    }
-                    
-                }
-                
-                row.push_back(valueStr);
-            }
-            
-            tableRows.push_back(row);
-        }
-        
-        if (!tableRows.empty()) {
-            PrintSimpleTable(columnNames, tableRows);
-        }
-        
-        SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-    }
-    catch (const std::exception& ex) {
-        std::cerr << "Exception: " << ex.what() << std::endl;
-        if (hStmt != SQL_NULL_HSTMT) {
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-        }
-        throw;
-    }
-    catch (...) {
-        std::cerr << "Unknown exception occurred" << std::endl;
-        if (hStmt != SQL_NULL_HSTMT) {
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-        }
-        throw;
-    }
-}
-
-/// Executes non-query SQL statements (such as CREATE DATABASE, CREATE TABLE, INSERT, etc.)
-void Execute(SQLHDBC hDbc, const std::string& command) {
-    SQLHSTMT hStmt = SQL_NULL_HSTMT;
-    SQLRETURN ret;
-    
-    try {
-        // Allocate statement handle
-        ret = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
-        CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLAllocHandle(SQL_HANDLE_STMT)");
-        
-        // Execute command
-        ret = SQLExecDirect(hStmt, (SQLCHAR*)command.c_str(), SQL_NTS);
-        if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
-            CheckOdbcError(ret, SQL_HANDLE_STMT, hStmt, "SQLExecDirect");
-        }
-        
-        // Free statement handle
-        SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-    }
-    catch (...) {
-        if (hStmt != SQL_NULL_HSTMT) {
-            SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
-        }
-        throw;
-    }
-}
-
-int main() {
-    SQLHENV hEnv = SQL_NULL_HENV;
-    SQLHDBC hDbc = SQL_NULL_HDBC;
-    SQLRETURN ret;
-    
-    try {
-        std::cout << "Start" << std::endl;
-        
-        // 1. Initialize ODBC environment
-        ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
-        CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_ENV)");
-        
-        ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
-        CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLSetEnvAttr");
-        
-        // 2. Establish connection
-        ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
-        CheckOdbcError(ret, SQL_HANDLE_ENV, hEnv, "SQLAllocHandle(SQL_HANDLE_DBC)");
-        
-        // Connection string
-        std::string dsn = "Apache IoTDB DSN";
-        std::string user = "root";
-        std::string password = "root";
-        std::string server = "127.0.0.1";
-        std::string database = "test";
-        
-        std::string connectionString = "DSN=" + dsn + ";Server=" + server + 
-                                     ";UID=" + user + ";PWD=" + password + 
-                                     ";Database=" + database + ";loglevel=4";
-        std::cout << "Using connection string: " << connectionString << std::endl;
-        
-        SQLCHAR outConnStr[1024];
-        SQLSMALLINT outConnStrLen;
-        
-        ret = SQLDriverConnect(hDbc, NULL, 
-                              (SQLCHAR*)connectionString.c_str(), SQL_NTS,
-                              outConnStr, sizeof(outConnStr),
-                              &outConnStrLen, SQL_DRIVER_COMPLETE);
-        
-        if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
-            std::cerr << "Login failed" << std::endl;
-            CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLDriverConnect");
-            return 1;
-        }
-        
-        // Get driver name
-        SQLCHAR driverName[256];
-        SQLSMALLINT nameLength;
-        ret = SQLGetInfo(hDbc, SQL_DRIVER_NAME, driverName, sizeof(driverName), &nameLength);
-        CheckOdbcError(ret, SQL_HANDLE_DBC, hDbc, "SQLGetInfo");
-        
-        std::cout << "Successfully opened connection. database name = " << driverName << std::endl;
-        
-        // 3. Execute operations
-        Execute(hDbc, "CREATE DATABASE IF NOT EXISTS test");
-        Execute(hDbc, "use test");
-        std::cout << "use test Execute complete. Begin to setup fulltable." << std::endl;
-
-        // Create fulltable table and insert test data
-        Execute(hDbc, "CREATE TABLE IF NOT EXISTS fullTable (time TIMESTAMP TIME, bool_col BOOLEAN FIELD, int32_col INT32 FIELD, int64_col INT64 FIELD, float_col FLOAT FIELD, double_col DOUBLE FIELD, text_col TEXT FIELD, string_col STRING FIELD, blob_col BLOB FIELD, timestamp_col TIMESTAMP FIELD, date_col DATE FIELD) WITH (TTL=315360000000)");
-        const char* insertStatements[] = {
-            "INSERT INTO fulltable VALUES (1735689600000, true, 100, 10000000000, 36.5, 128.689, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689600000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689660000, false, 101, 10000000001, 36.6, 128.789, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689660000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689720000, true, 102, 10000000002, 36.7, 128.889, 'Device operating normally', 'DeviceA-Room1', '0x506C616E7444617461', 1735689720000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689780000, false, 103, 10000000003, 36.8, 128.989, 'Device temperature high alarm', 'DeviceA-Room1', '0x506C616E7444617462', 1735689780000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689840000, true, 104, 10000000004, 36.9, 129.089, 'Device status returned to normal', 'DeviceA-Room1', '0x506C616E7444617461', 1735689840000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689900000, false, 105, 10000000005, 37.0, 129.189, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689900000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735689960000, true, 106, 10000000006, 37.1, 129.289, 'Device operating normally', 'DeviceB-Room2', '0x506C616E7444617463', 1735689960000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690020000, false, 107, 10000000007, 37.2, 129.389, 'Device humidity low alarm', 'DeviceB-Room2', '0x506C616E7444617464', 1735690020000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690080000, true, 108, 10000000008, 37.3, 129.489, 'Device status returned to normal', 'DeviceB-Room2', '0x506C616E7444617463', 1735690080000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690140000, false, 109, 10000000009, 37.4, 129.589, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690140000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690200000, true, 110, 10000000010, 37.5, 129.689, 'Device operating normally', 'DeviceC-Room3', '0x506C616E7444617465', 1735690200000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690260000, false, 111, 10000000011, 37.6, 129.789, 'Device voltage unstable alarm', 'DeviceC-Room3', '0x506C616E7444617466', 1735690260000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690320000, true, 112, 10000000012, 37.7, 129.889, 'Device status returned to normal', 'DeviceC-Room3', '0x506C616E7444617465', 1735690320000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690380000, false, 113, 10000000013, 37.8, 129.989, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690380000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690440000, true, 114, 10000000014, 37.9, 130.089, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690440000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690500000, false, 115, 10000000015, 38.0, 130.189, 'Device operating normally', 'DeviceD-Room4', '0x506C616E7444617467', 1735690500000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690560000, true, 116, 10000000016, 38.1, 130.289, 'Device signal interrupted alarm', 'DeviceD-Room4', '0x506C616E7444617468', 1735690560000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690620000, false, 117, 10000000017, 38.2, 130.389, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690620000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690680000, true, 118, 10000000018, 38.3, 130.489, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690680000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690740000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')",
-            "INSERT INTO fulltable VALUES (1735690790000, false, 119, 10000000019, 38.4, 130.589, 'Device operating normally', 'DeviceE-Room5', '0x506C616E7444617469', 1735690740000, '2026-01-04')"
-        };
-        for (const char* sql : insertStatements) {
-            Execute(hDbc, sql);
-        }
-        std::cout << "fulltable setup complete. Begin to query." << std::endl;
-        Query(hDbc);
-        std::cout << "Query ok" << std::endl;
-
-        // 4. Clean up resources
-        SQLDisconnect(hDbc);
-        SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
-        SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
-        
-        return 0;
-    }
-    catch (...) {
-        // Exception cleanup
-        if (hDbc != SQL_NULL_HDBC) {
-            SQLDisconnect(hDbc);
-            SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
-        }
-        if (hEnv != SQL_NULL_HENV) {
-            SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
-        }
-        
-        std::cerr << "Unexpected error!" << std::endl;
-        return 1;
-    }
-}
-```
-
-### 4.4 PowerBI Example
-1. Open PowerBI Desktop and create a new project.
-2. Click "Home" → "Get Data" → "More..." → "ODBC" → Click the "Connect" button.
-3. Data Source Selection: In the pop-up window, select "Data Source Name (DSN)" and choose `Apache IoTDB DSN` from the dropdown.
-4. Advanced Configuration:
-    * Click "Advanced options" and fill in the configuration in the "Connection string" input box (example):
-      ```Plain
-      server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4
-      ```
-    * Notes:
-        * The `dsn` item is optional; filling it in or not does not affect the connection.
-        * `loglevel` ranges from 0-4: Level 0 (ERROR) has the least logs, Level 4 (TRACE) has the most detailed logs; set as needed.
-        * `server`/`database`/`dsn`/`loglevel` are case-insensitive (e.g., can be written as `Server/DATABASE`).
-        * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN.
-5. Authentication: Enter the username (default `root`) and password (default `root`), then click "Connect".
-6. Data Loading: Select the table to be called in the interface (e.g., fulltable/table1) , and then click "Load" to view the data.
-
-### 4.5 Excel Example
-1. Open Excel and create a blank workbook.
-2. Click the "Data" tab → "From Other Sources" → "From Data Connection Wizard".
-3. Data Source Selection: Select "ODBC DSN" → Next → Select `Apache IoTDB DSN` → Next.
-4. Connection Configuration:
-   * The input process for connection string, username, and password is exactly the same as in PowerBI. Reference format for connection string:
-      ```Plain
-      server=127.0.0.1;port=6667;database=test;isTableModel=true;loglevel=4 
-      ```
-   * If relevant information is configured in the DSN, you do not need to fill in any configuration information; the Driver Manager will automatically use the configuration filled in the DSN.
-5. Table Selection: Choose the database and table you wish to access (e.g., fulltable), then click Next.
-6. Save Connection: Customize settings for the data connection file name, connection description, etc., then click "Finish".
-7. Import Data: Select the location to import the data into the worksheet (e.g., cell A1 of "Existing Worksheet"), click "OK" to complete data loading.
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/Programming-Python-Native-API_timecho.md b/src/UserGuide/Master/Table/API/Programming-Python-Native-API_timecho.md
deleted file mode 100644
index 4dd1fe4f..00000000
--- a/src/UserGuide/Master/Table/API/Programming-Python-Native-API_timecho.md
+++ /dev/null
@@ -1,752 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# Python Native API
-
-IoTDB provides a Python native client driver and a session pool management mechanism. These tools allow developers to interact with IoTDB in a programmatic and efficient manner. Using the Python API, developers can encapsulate time-series data into objects (e.g., `Tablet`, `NumpyTablet`) and insert them into the database directly, without the need to manually construct SQL statements. For multi-threaded operations, the `TableSessionPool` is recommended to optimize resource utilization an [...]
-
-## 1. Prerequisites
-
-To use the IoTDB Python API, install the required package using pip:
-
-```shell
-pip3 install apache-iotdb>=2.0
-```
-Note: Do not use a newer client to connect to an older server, as this may cause connection failures or unexpected errors.
-
-## 2. Read and Write Operations
-
-### 2.1 TableSession
-
-`TableSession` is a core class in IoTDB, enabling users to interact with the IoTDB database. It provides methods to execute SQL statements, insert data, and manage database sessions.
-
-#### Method Overview
-
-| **Method Name**             | **Descripton**                                        | **Parameter Type**                   | **Return Type**  |
-| --------------------------- | ----------------------------------------------------- | ------------------------------------ | ---------------- |
-| insert                      | Inserts data into the database.                       | tablet: `Union[Tablet, NumpyTablet]` | None             |
-| execute_non_query_statement | Executes non-query SQL statements like DDL/DML.       | sql: `str`                           | None             |
-| execute_query_statement     | Executes a query SQL statement and retrieves results. | sql: `str`                           | `SessionDataSet` |
-| close                       | Closes the session and releases resources.            | None                                 | None             |
-
-**Since V2.0.8.2**, `SessionDataSet` provides methods for batch DataFrame retrieval to efficiently handle large-volume queries:
-
-```python
-# Batch DataFrame retrieval
-has_next = result.has_next_df()
-if has_next:
-    df = result.next_df()
-    # Process DataFrame
-```
-
-**Method Details:**
-- `has_next_df()`: Returns `True`/`False` indicating whether more data exists
-- `next_df()`: Returns a `DataFrame` or `None`. Each call returns `fetchSize` rows (default: 5000 rows, controlled by Session's `fetch_size` parameter):
-    - If remaining data ≥ `fetchSize`: returns `fetchSize` rows
-    - If remaining data < `fetchSize`: returns all remaining rows
-    - If traversal completes: returns `None`
-- Session validates `fetchSize` at initialization: if ≤0, resets to 5000 and logs warning: `fetch_size xxx is illegal, use default fetch_size 5000`
-
-**Note:** Avoid mixing different traversal methods (e.g., combining `todf()` with `next_df()`), which may cause unexpected errors.
-
-**Since V2.0.8.3**, the Python client has supported `TSDataType.OBJECT` for Tablet batch write and Session value serialization. Query results are read via the `Field` object. The related interfaces are defined as follows:
-
-| Function Name | Description | Parameters | Return Value |
-|---------------|-------------|------------|--------------|
-| `encode_object_cell` | Encodes a single OBJECT cell into wire-format bytes | `is_eof: bool`,<br>`offset: int`,<br>`content: bytes` | `bytes`: `|[eof 1B]|[offset 8B BE]|[payload]|` |
-| `decode_object_cell` | Parses a wire-format cell back into `eof`, `offset`, and `payload` | `cell: bytes` (length ≥ 9) | `Tuple[bool, int, bytes]`: `(is_eof, offset, payload)` |
-| `Tablet.add_value_object` | Writes an OBJECT cell at the specified row and column (internally calls `encode_object_cell`) | `row_index: int`,<br>`column_index: int`,<br>`is_eof: bool`,<br>`offset: int`,<br>`content: bytes` | `None` |
-| `Tablet.add_value_object_by_name` | Same as above, locates column by name | `column_name: str`,<br>`row_index: int`,<br>`is_eof: bool`,<br>`offset: int`,<br>`content: bytes` | `None` |
-| `NumpyTablet.add_value_object` | Same semantics as `Tablet.add_value_object`, column data is stored as `ndarray` | Same as above (`row_index`, `column_index`, ...) | `None` |
-| `Field.get_object_value` | Converts the value to a Python value based on the **target type** | `data_type: TSDataType` | Depends on type:<br>For OBJECT: `str` decoded from the entire `self.value` in UTF-8 (see Field.py) |
-| `Field.get_string_value` | Returns a string representation | None | `str`;<br>For OBJECT: `self.value.decode("utf-8")` |
-| `Field.get_binary_value` | Gets the binary data of TEXT/STRING/BLOB | None | `bytes` or `None`;<br>**Throws an error for OBJECT columns and should not be called** |
-
-
-#### Sample Code
-
-```Python
-class TableSession(object):
-def insert(self, tablet: Union[Tablet, NumpyTablet]):
-    """
-    Insert data into the database.
-
-    Parameters:
-        tablet (Tablet | NumpyTablet): The tablet containing the data to be inserted.
-                                       Accepts either a `Tablet` or `NumpyTablet`.
-
-    Raises:
-        IoTDBConnectionException: If there is an issue with the database connection.
-    """
-    pass
-
-def execute_non_query_statement(self, sql: str):
-    """
-    Execute a non-query SQL statement.
-
-    Parameters:
-        sql (str): The SQL statement to execute. Typically used for commands
-                   such as INSERT, DELETE, or UPDATE.
-
-    Raises:
-        IoTDBConnectionException: If there is an issue with the database connection.
-    """
-    pass
-
-def execute_query_statement(self, sql: str, timeout_in_ms: int = 0) -> "SessionDataSet":
-    """
-    Execute a query SQL statement and return the result set.
-
-    Parameters:
-        sql (str): The SQL query to execute.
-        timeout_in_ms (int, optional): Timeout for the query in milliseconds. Defaults to 0,
-                                       which means no timeout.
-
-    Returns:
-        SessionDataSet: The result set of the query.
-
-    Raises:
-        IoTDBConnectionException: If there is an issue with the database connection.
-    """
-    pass
-
-def close(self):
-    """
-    Close the session and release resources.
-
-    Raises:
-        IoTDBConnectionException: If there is an issue closing the connection.
-    """
-    pass
-```
-
-### 2.2 TableSessionConfig
-
-`TableSessionConfig` is a configuration class that sets parameters for creating a `TableSession` instance, defining essential settings for connecting to the IoTDB database.
-
-#### Parameter Configuration
-
-| **Parameter**      | **Description**                       | **Type** | **Default Value**                             |
-| ------------------ | ------------------------------------- | -------- |-----------------------------------------------|
-| node_urls          | List of database node URLs.           | `list`   | `["localhost:6667"]`                          |
-| username           | Username for the database connection. | `str`    | `"root"`                                      |
-| password           | Password for the database connection. | `str`    | `"TimechoDB@2021"`,before V2.0.6 it is root   |
-| database           | Target database to connect to.        | `str`    | `None`                                        |
-| fetch_size         | Number of rows to fetch per query.    | `int`    | `5000`                                        |
-| time_zone          | Default session time zone.            | `str`    | `Session.DEFAULT_ZONE_ID`                     |
-| enable_compression | Enable data compression.              | `bool`   | `False`                                       |
-
-#### Sample Code
-
-```Python
-class TableSessionConfig(object):
-    """
-    Configuration class for a TableSession. 
-
-    This class defines various parameters for connecting to and interacting 
-    with the IoTDB tables.
-    """
-
-    def __init__(
-        self,
-        node_urls: list = None,
-        username: str = Session.DEFAULT_USER,
-        password: str = Session.DEFAULT_PASSWORD,
-        database: str = None,
-        fetch_size: int = 5000,
-        time_zone: str = Session.DEFAULT_ZONE_ID,
-        enable_compression: bool = False,
-    ):
-        """
-        Initialize a TableSessionConfig object with the provided parameters.
-
-        Parameters:
-            node_urls (list, optional): A list of node URLs for the database connection.
-                                        Defaults to ["localhost:6667"].
-            username (str, optional): The username for the database connection. 
-                                      Defaults to "root".
-            password (str, optional): The password for the database connection. 
-                                      Defaults to "TimechoDB@2021",before V2.0.6 it is root
-            database (str, optional): The target database to connect to. Defaults to None.
-            fetch_size (int, optional): The number of rows to fetch per query. Defaults to 5000.
-            time_zone (str, optional): The default time zone for the session. 
-                                       Defaults to Session.DEFAULT_ZONE_ID.
-            enable_compression (bool, optional): Whether to enable data compression. 
-                                                 Defaults to False.
-        """
-```
-
-**Note:** After using a `TableSession`, make sure to call the `close` method to release resources.
-
-## 3. Session Pool
-
-### 3.1 TableSessionPool
-
-`TableSessionPool` is a session pool management class designed for creating and managing `TableSession` instances. It provides functionality to retrieve sessions from the pool and close the pool when it is no longer needed.
-
-#### Method Overview
-
-| **Method Name** | **Description**                                        | **Return Type** | **Exceptions** |
-| --------------- | ------------------------------------------------------ | --------------- | -------------- |
-| get_session     | Retrieves a new `TableSession` instance from the pool. | `TableSession`  | None           |
-| close           | Closes the session pool and releases all resources.    | None            | None           |
-
-#### Sample Code
-
-```Python
-def get_session(self) -> TableSession:
-    """
-    Retrieve a new TableSession instance.
-
-    Returns:
-        TableSession: A new session object configured with the session pool.
-
-    Notes:
-        The session is initialized with the underlying session pool for managing
-        connections. Ensure proper usage of the session's lifecycle.
-    """
-
-def close(self):
-    """
-    Close the session pool and release all resources.
-
-    This method closes the underlying session pool, ensuring that all
-    resources associated with it are properly released.
-
-    Notes:
-        After calling this method, the session pool cannot be used to retrieve
-        new sessions, and any attempt to do so may raise an exception.
-    """
-```
-
-### 3.2 TableSessionPoolConfig
-
-`TableSessionPoolConfig` is a configuration class used to define parameters for initializing and managing a `TableSessionPool` instance. It specifies the settings needed for efficient session pool management in IoTDB.
-
-#### Parameter Configuration
-
-| **Paramater**      | **Description**                                              | **Type** | **Default Value**          |
-| ------------------ | ------------------------------------------------------------ | -------- | -------------------------- |
-| node_urls          | List of IoTDB cluster node URLs.                             | `list`   | None                       |
-| max_pool_size      | Maximum size of the session pool, i.e., the maximum number of sessions allowed in the pool. | `int`    | `5`                        |
-| username           | Username for the connection.                                 | `str`    | `Session.DEFAULT_USER`     |
-| password           | Password for the connection.                                 | `str`    | `Session.DEFAULT_PASSWORD` |
-| database           | Target database to connect to.                               | `str`    | None                       |
-| fetch_size         | Fetch size for query results                                 | `int`    | `5000`                     |
-| time_zone          | Timezone-related `ZoneId`                                    | `str`    | `Session.DEFAULT_ZONE_ID`  |
-| enable_redirection | Whether to enable redirection.                               | `bool`   | `False`                    |
-| enable_compression | Whether to enable data compression.                          | `bool`   | `False`                    |
-| wait_timeout_in_ms | Sets the connection timeout in milliseconds.                 | `int`    | `10000`                    |
-| max_retry          | Maximum number of connection retry attempts.                 | `int`    | `3`                        |
-
-#### Sample Code
-
-```Python
-class TableSessionPoolConfig(object):
-    """
-    Configuration class for a TableSessionPool.
-
-    This class defines the parameters required to initialize and manage
-    a session pool for interacting with the IoTDB database.
-    """
-    def __init__(
-        self,
-        node_urls: list = None,
-        max_pool_size: int = 5,
-        username: str = Session.DEFAULT_USER,
-        password: str = Session.DEFAULT_PASSWORD,
-        database: str = None,
-        fetch_size: int = 5000,
-        time_zone: str = Session.DEFAULT_ZONE_ID,
-        enable_redirection: bool = False,
-        enable_compression: bool = False,
-        wait_timeout_in_ms: int = 10000,
-        max_retry: int = 3,
-    ):
-    """
-    Initialize a TableSessionPoolConfig object with the provided parameters.
-    
-    Parameters:
-        node_urls (list, optional): A list of node URLs for the database connection.
-                                    Defaults to None.
-        max_pool_size (int, optional): The maximum number of sessions in the pool.
-                                       Defaults to 5.
-        username (str, optional): The username for the database connection.
-                                  Defaults to Session.DEFAULT_USER.
-        password (str, optional): The password for the database connection.
-                                  Defaults to Session.DEFAULT_PASSWORD.
-        database (str, optional): The target database to connect to. Defaults to None.
-        fetch_size (int, optional): The number of rows to fetch per query. Defaults to 5000.
-        time_zone (str, optional): The default time zone for the session pool.
-                                   Defaults to Session.DEFAULT_ZONE_ID.
-        enable_redirection (bool, optional): Whether to enable redirection.
-                                             Defaults to False.
-        enable_compression (bool, optional): Whether to enable data compression.
-                                             Defaults to False.
-        wait_timeout_in_ms (int, optional): The maximum time (in milliseconds) to wait for a session
-                                            to become available. Defaults to 10000.
-        max_retry (int, optional): The maximum number of retry attempts for operations. Defaults to 3.
-    
-    """
-```
-
-**Notes:**
-
-- Ensure that `TableSession` instances retrieved from the `TableSessionPool` are properly closed after use.
-- After closing the `TableSessionPool`, it will no longer be possible to retrieve new sessions.
-
-### 3.3 SSL Connection
-
-#### 3.3.1 Server Certificate Configuration
-
-In the `conf/iotdb-system.properties` configuration file, locate or add the following configuration items:
-
-```
-enable_thrift_ssl=true
-key_store_path=/path/to/your/server_keystore.jks
-key_store_pwd=your_keystore_password
-```
-
-#### 3.3.2 Configure Python Client Certificate
-
-- Set `use_ssl` to True to enable SSL.
-- Specify the client certificate path using the `ca_certs` parameter.
-
-```
-use_ssl = True
-ca_certs = "/path/to/your/server.crt"  # 或 ca_certs = "/path/to/your//ca_cert.pem"
-```
-**Example Code: Using SSL to Connect to IoTDB**
-
-```Python
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from iotdb.SessionPool import PoolConfig, SessionPool
-from iotdb.Session import Session
-
-ip = "127.0.0.1"
-port_ = "6667"
-username_ = "root"
-password_ = "TimechoDB@2021",before V2.0.6 it is root
-# Configure SSL enabled
-use_ssl = True
-# Configure certificate path
-ca_certs = "/path/server.crt"
-
-
-def get_data():
-    session = Session(
-        ip, port_, username_, password_, use_ssl=use_ssl, ca_certs=ca_certs
-    )
-    session.open(False)
-    with session.execute_query_statement("SHOW DATABASES") as session_data_set:
-        print(session_data_set.get_column_names())
-        while session_data_set.has_next():
-            print(session_data_set.next())
-
-    session.close()
-
-
-def get_data2():
-    pool_config = PoolConfig(
-        host=ip,
-        port=port_,
-        user_name=username_,
-        password=password_,
-        fetch_size=1024,
-        time_zone="UTC+8",
-        max_retry=3,
-        use_ssl=use_ssl,
-        ca_certs=ca_certs,
-    )
-    max_pool_size = 5
-    wait_timeout_in_ms = 3000
-    session_pool = SessionPool(pool_config, max_pool_size, wait_timeout_in_ms)
-    session = session_pool.get_session()
-    with session.execute_query_statement("SHOW DATABASES") as session_data_set:
-        print(session_data_set.get_column_names())
-        while session_data_set.has_next():
-            print(session_data_set.next())
-    session_pool.put_back(session)
-    session_pool.close()
-
-
-if __name__ == "__main__":
-    df = get_data()
-```
-
-## 4. Sample Code
-
-**Session** Example: You can find the full example code at [Session Example](https://github.com/apache/iotdb/blob/master/iotdb-client/client-py/table_model_session_example.py).
-
-**Session Pool** Example: You can find the full example code at [SessionPool Example](https://github.com/apache/iotdb/blob/master/iotdb-client/client-py/table_model_session_pool_example.py).
-
-Here is an excerpt of the sample code:
-
-```Python
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import threading
-
-import numpy as np
-
-from iotdb.table_session_pool import TableSessionPool, TableSessionPoolConfig
-from iotdb.utils.IoTDBConstants import TSDataType
-from iotdb.utils.NumpyTablet import NumpyTablet
-from iotdb.utils.Tablet import ColumnType, Tablet
-
-
-def prepare_data():
-    print("create database")
-    # Get a session from the pool
-    session = session_pool.get_session()
-    session.execute_non_query_statement("CREATE DATABASE IF NOT EXISTS db1")
-    session.execute_non_query_statement('USE "db1"')
-    session.execute_non_query_statement(
-        "CREATE TABLE table0 (id1 string id, attr1 string attribute, "
-        + "m1 double "
-        + "field)"
-    )
-    session.execute_non_query_statement(
-        "CREATE TABLE table1 (id1 string tag, attr1 string attribute, "
-        + "m1 double "
-        + "field)"
-    )
-
-    print("now the tables are:")
-    # show result
-    with session.execute_query_statement("SHOW TABLES") as res:
-        while res.has_next():
-            print(res.next())
-
-    session.close()
-
-
-def insert_data(num: int):
-    print("insert data for table" + str(num))
-    # Get a session from the pool
-    session = session_pool.get_session()
-    column_names = [
-        "id1",
-        "attr1",
-        "m1",
-    ]
-    data_types = [
-        TSDataType.STRING,
-        TSDataType.STRING,
-        TSDataType.DOUBLE,
-    ]
-    column_types = [ColumnType.TAG, ColumnType.ATTRIBUTE, ColumnType.FIELD]
-    timestamps = []
-    values = []
-    for row in range(15):
-        timestamps.append(row)
-        values.append(["id:" + str(row), "attr:" + str(row), row * 1.0])
-    tablet = Tablet(
-        "table" + str(num), column_names, data_types, values, timestamps, column_types
-    )
-    session.insert(tablet)
-    session.execute_non_query_statement("FLush")
-
-    np_timestamps = np.arange(15, 30, dtype=np.dtype(">i8"))
-    np_values = [
-        np.array(["id:{}".format(i) for i in range(15, 30)]),
-        np.array(["attr:{}".format(i) for i in range(15, 30)]),
-        np.linspace(15.0, 29.0, num=15, dtype=TSDataType.DOUBLE.np_dtype()),
-    ]
-
-    np_tablet = NumpyTablet(
-        "table" + str(num),
-        column_names,
-        data_types,
-        np_values,
-        np_timestamps,
-        column_types=column_types,
-    )
-    session.insert(np_tablet)
-    session.close()
-
-
-def query_data():
-    # Get a session from the pool
-    session = session_pool.get_session()
-
-    print("get data from table0")
-    with session.execute_query_statement("select * from table0") as res:
-        while res.has_next():
-            print(res.next())
-
-    print("get data from table1") 
-    with session.execute_query_statement("select * from table1") as res:
-      while res.has_next():
-          print(res.next())
-        
-    # Querying Table Data Using Batch DataFrame (Recommended for Large Datasets)
-    print("get data from table0 using batch DataFrame")
-    with session.execute_query_statement("select * from table0") as res: 
-      while res.has_next_df(): 
-          print(res.next_df()) 
-         
-    session.close()
-
-
-def delete_data():
-    session = session_pool.get_session()
-    session.execute_non_query_statement("drop database db1")
-    print("data has been deleted. now the databases are:")
-    with session.execute_query_statement("show databases") as res:
-        while res.has_next():
-            print(res.next())
-    session.close()
-
-
-# Create a session pool
-username = "root"
-password = "TimechoDB@2021",before V2.0.6 it is root
-node_urls = ["127.0.0.1:6667", "127.0.0.1:6668", "127.0.0.1:6669"]
-fetch_size = 1024
-database = "db1"
-max_pool_size = 5
-wait_timeout_in_ms = 3000
-config = TableSessionPoolConfig(
-    node_urls=node_urls,
-    username=username,
-    password=password,
-    database=database,
-    max_pool_size=max_pool_size,
-    fetch_size=fetch_size,
-    wait_timeout_in_ms=wait_timeout_in_ms,
-)
-session_pool = TableSessionPool(config)
-
-prepare_data()
-
-insert_thread1 = threading.Thread(target=insert_data, args=(0,))
-insert_thread2 = threading.Thread(target=insert_data, args=(1,))
-
-insert_thread1.start()
-insert_thread2.start()
-
-insert_thread1.join()
-insert_thread2.join()
-
-query_data()
-delete_data()
-session_pool.close()
-print("example is finished!")
-```
-
-**Object Type Usage Example**
-
-```python
-import os
-
-import numpy as np
-import pytest
-
-from iotdb.utils.IoTDBConstants import TSDataType
-from iotdb.utils.NumpyTablet import NumpyTablet
-from iotdb.utils.Tablet import Tablet, ColumnType
-from iotdb.utils.object_column import decode_object_cell
-
-
-def _require_thrift():
-    pytest.importorskip("iotdb.thrift.common.ttypes")
-
-
-def _session_endpoint():
-    host = os.environ.get("IOTDB_HOST", "127.0.0.1")
-    port = int(os.environ.get("IOTDB_PORT", "6667"))
-    return host, port
-
-
-@pytest.fixture(scope="module")
-def table_session():
-    _require_thrift()
-    from iotdb.Session import Session
-    from iotdb.table_session import TableSession, TableSessionConfig
-
-    host, port = _session_endpoint()
-    cfg = TableSessionConfig(
-        node_urls=[f"{host}:{port}"],
-        username=os.environ.get("IOTDB_USER", Session.DEFAULT_USER),
-        password=os.environ.get("IOTDB_PASSWORD", Session.DEFAULT_PASSWORD),
-    )
-    ts = TableSession(cfg)
-    yield ts
-    ts.close()
-
-
-def test_table_numpy_tablet_object_columns(table_session):
-    """
-    Table model: Tablet.add_value_object / add_value_object_by_name,
-    NumpyTablet.add_value_object, insert + query Field + decode_object_cell;
-    Also includes writing OBJECT in two segments at the same timestamp
-    (first with is_eof=False/offset=0, then with is_eof=True/offset=length of the first segment),
-    and verifies the complete concatenated bytes using read_object(f1).
-    """
-    db = "test_py_object_e2e"
-    table = "obj_tbl"
-    table_session.execute_non_query_statement(f"CREATE DATABASE IF NOT EXISTS {db}")
-    table_session.execute_non_query_statement(f"USE {db}")
-    table_session.execute_non_query_statement(f"DROP TABLE IF EXISTS {table}")
-    table_session.execute_non_query_statement(
-        f"CREATE TABLE {table}("
-        "device STRING TAG, temp FLOAT FIELD, f1 OBJECT FIELD, f2 OBJECT FIELD)"
-    )
-
-    column_names = ["device", "temp", "f1", "f2"]
-    data_types = [
-        TSDataType.STRING,
-        TSDataType.FLOAT,
-        TSDataType.OBJECT,
-        TSDataType.OBJECT,
-    ]
-    column_types = [
-        ColumnType.TAG,
-        ColumnType.FIELD,
-        ColumnType.FIELD,
-        ColumnType.FIELD,
-    ]
-    timestamps = [100, 200]
-    values = [
-        ["d1", 1.5, None, None],
-        ["d1", 2.5, None, None],
-    ]
-
-    tablet = Tablet(
-        table, column_names, data_types, values, timestamps, column_types
-    )
-    tablet.add_value_object(0, 2, True, 0, b"first-row-obj")
-    # Single-segment write for the entire object: is_eof=True and offset=0;
-    # Segmented sequential writes must pass server-side offset/length validation
-    tablet.add_value_object_by_name("f2", 0, True, 0, b"seg")
-    tablet.add_value_object(1, 2, True, 0, b"second-f1")
-    tablet.add_value_object(1, 3, True, 0, b"second-f2")
-    table_session.insert(tablet)
-
-    ts_arr = np.array([300, 400], dtype=TSDataType.INT64.np_dtype())
-    np_vals = [
-        np.array(["d1", "d1"]),
-        np.array([1.0, 2.0], dtype=np.float32),
-        np.array([None, None], dtype=object),
-        np.array([None, None], dtype=object),
-    ]
-    np_tab = NumpyTablet(
-        table, column_names, data_types, np_vals, ts_arr, column_types=column_types
-    )
-    np_tab.add_value_object(0, 2, True, 0, b"np-r0-f1")
-    np_tab.add_value_object(0, 3, True, 0, b"np-r0-f2")
-    np_tab.add_value_object(1, 2, True, 0, b"np-r1-f1")
-    np_tab.add_value_object(1, 3, True, 0, b"np-r1-f2")
-    table_session.insert(np_tab)
-
-    # Segmented OBJECT: first with is_eof=False (continue transmission),
-    # then with is_eof=True (last segment); offset is the length of written bytes
-    chunk0 = bytes((i % 256) for i in range(512))
-    chunk1 = b"\xab" * 64
-    expected_segmented = chunk0 + chunk1
-    seg1 = Tablet(
-        table,
-        column_names,
-        data_types,
-        [["d1", 3.0, None, None]],
-        [500],
-        column_types,
-    )
-    seg1.add_value_object(0, 2, False, 0, chunk0)
-    seg1.add_value_object(0, 3, True, 0, b"f2-seg")
-    table_session.insert(seg1)
-    seg2 = Tablet(
-        table,
-        column_names,
-        data_types,
-        [["d1", 3.0, None, None]],
-        [500],
-        column_types,
-    )
-    seg2.add_value_object(0, 2, True, 512, chunk1)
-    seg2.add_value_object(0, 3, True, 0, b"f2-seg")
-    table_session.insert(seg2)
-
-    with table_session.execute_query_statement(
-        f"SELECT read_object(f1) FROM {table} WHERE time = 500"
-    ) as ds:
-        assert ds.has_next()
-        row = ds.next()
-        blob = row.get_fields()[0].get_binary_value()
-        assert blob == expected_segmented
-        assert not ds.has_next()
-
-    seen = 0
-    with table_session.execute_query_statement(
-        f"SELECT device, temp, f1, f2 FROM {table} ORDER BY time"
-    ) as ds:
-        while ds.has_next():
-            row = ds.next()
-            fields = row.get_fields()
-            assert fields[0].get_object_value(TSDataType.STRING) == "d1"
-            assert fields[1].get_object_value(TSDataType.FLOAT) is not None
-            for j in (2, 3):
-                raw = fields[j].value
-                assert isinstance(raw, (bytes, bytearray))
-                eof, off, body = decode_object_cell(bytes(raw))
-                assert isinstance(eof, bool) and isinstance(off, int)
-                assert isinstance(body, bytes)
-                fields[j].get_string_value()
-                fields[j].get_object_value(TSDataType.OBJECT)
-            seen += 1
-    assert seen == 5
-
-
-if __name__ == "__main__":
-    pytest.main([__file__, "-v", "-rs"])
-```
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/API/RestAPI-V1_timecho.md b/src/UserGuide/Master/Table/API/RestAPI-V1_timecho.md
deleted file mode 100644
index 21ce0768..00000000
--- a/src/UserGuide/Master/Table/API/RestAPI-V1_timecho.md
+++ /dev/null
@@ -1,363 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# RestAPI V1
-
-IoTDB's RESTful service can be used for querying, writing, and management operations. It uses the OpenAPI standard to define interfaces and generate frameworks.
-
-Note: As of version V2.0.8.2, the TimechoDB installation package does not include the REST service JAR file by default. Please contact the Timecho team to obtain the corresponding JAR file before using this service, and place it in the `timechodb_home/lib` or `timechodb_home/ext/external_service` directory.
-
-## 1. Enabling RESTful Service
-
-The RESTful service is disabled by default. To enable it, locate the `conf/iotdb-system.properties` file in the IoTDB installation directory, set `enable_rest_service` to `true`, and then restart the datanode process.
-
-```Properties
-enable_rest_service=true
-```
-
-## 2. Authentication
-
-All RESTful APIs adopt **Basic Authentication**, except the health check interface `/ping`.
-All requests must carry the `Authorization` information in the request header.
-
-1. Authentication Format
-```
-Authorization: Basic <base64_string>
-```
-The `<base64_string>` is generated by directly Base64-encoding the string in the format `username:password`.
-Quick generation methods are shown below:
-
-* Linux / macOS
-```bash
-echo -n "your_username:your_password" | base64
-eg: echo -n "root:TimechoDB@2021" | base64
-```
-
-* Windows
-```powershell
-# PowerShell
-[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("username:password"))
-eg: [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("root:TimechoDB@2021"))
-```
-```cmd
-# CMD
-powershell "[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(\"username:password\"))"
-eg: powershell "[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(\"root:TimechoDB@2021\"))"
-```
-
-2. Authentication Example
-
-Default username: `root`, password: `TimechoDB@2021`
-
-- Concatenated string: `root:TimechoDB@2021`
-- Base64 encoded result: `cm9vdDpUaW1lY2hvREJAMjAyMQ==`
-- Final Header:
-```
-Authorization: Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==
-```
-
-3. Error Description
-- Incorrect username or password: returns HTTP status code `801`
-```json
-{"code":801,"message":"WRONG_LOGIN_PASSWORD"}
-```
-
-- Missing `Authorization` configuration: returns HTTP status code `800`
-```json
-{"code":800,"message":"INIT_AUTH_ERROR"}
-```
-
-
-## 3. Interface Definitions
-
-### 3.1 Ping
-
-The `/ping` endpoint can be used for online service health checks.
-
-- Request Method: GET
-
-- Request Path: `http://ip:port/ping`
-
-- Example Request:
-
-  ```Bash
-    curl http://127.0.0.1:18080/ping
-  ```
-
-- HTTP Status Codes:
-
-    - `200`: The service is working normally and can accept external requests.
-
-    - `503`: The service is experiencing issues and cannot accept external requests.
-
-  | Parameter Name | Type    | Description      |
-          | :------------- | :------ | :--------------- |
-      | code           | integer | Status Code      |
-      | message        | string  | Code Information |
-
-- Response Example:
-
-    - When the HTTP status code is `200`:
-
-      ```JSON
-      {  "code": 200,  "message": "SUCCESS_STATUS"}
-      ```
-
-    - When the HTTP status code is `503`:
-
-      ```JSON
-      {  "code": 500,  "message": "thrift service is unavailable"}
-      ```
-
-**Note**: The `/ping` endpoint does not require authentication.
-
-### 3.2 Query Interface
-
-- Request Path: `/rest/table/v1/query`
-
-- Request Method: POST
-
-- Request Format:
-
-    - Header: `application/json`
-
-    - Request Parameters:
-
-      | Parameter Name | Type   | Required | Description                                                  |
-                | :------------- | :----- | :------- | :----------------------------------------------------------- |
-          | `database`     | string | Yes      | Database name                                                |
-          | `sql`          | string | Yes      | SQL query                                                    |
-          | `row_limit`    | int    | No       | Maximum number of rows to return in a single query. If not set, the default value from the configuration file (`rest_query_default_row_size_limit`) is used. If the result set exceeds this limit, status code `411` is returned. |
-
-- Response Format:
-
-  | Parameter Name | Type  | Description                                                  |
-          | :------------- | :---- | :----------------------------------------------------------- |
-      | `column_names` | array | Column names                                                 |
-      | `data_types`   | array | Data types of each column                                    |
-      | `values`       | array | A 2D array where the first dimension represents rows, and the second dimension represents columns. Each element corresponds to a column, with the same length as `column_names`. |
-
-- Example Request:
-
-  ```Bash
-    curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"database":"test","sql":"select s1,s2,s3 from test_table"}' http://127.0.0.1:18080/rest/table/v1/query
-  ```
-
-- Example Response:
-
-  ```JSON
-    {
-        "column_names": [
-            "s1",
-            "s2",
-            "s3"
-        ],
-        "data_types": [
-            "STRING",
-            "BOOLEAN",
-            "INT32"
-        ],
-        "values": [
-            [
-                "a11",
-                true,
-                2024
-            ],
-            [
-                "a11",
-                false,
-                2025
-            ]
-        ]
-    }
-  ```
-
-### 3.3 Non-Query Interface
-
-- Request Path: `/rest/table/v1/nonQuery`
-
-- Request Method: POST
-
-- Request Format:
-
-    - Header: `application/json`
-
-    - Request Parameters:
-
-      | Parameter Name | Type   | Required | Description   |
-                | :------------- | :----- | :------- | :------------ |
-          | `sql`          | string | Yes      | SQL statement |
-          | `database`     | string | No       | Database name |
-
-- Response Format:
-
-  | Parameter Name | Type    | Description |
-          | :------------- | :------ | :---------- |
-      | `code`         | integer | Status code |
-      | `message`      | string  | Message     |
-
-- Example Requests:
-
-    - Create a database:
-
-      ```Bash
-      curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"create database test","database":""}' http://127.0.0.1:18080/rest/table/v1/nonQuery
-      ```
-
-    - Create a table `test_table` in the `test` database:
-
-      ```Bash
-      curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"CREATE TABLE table1 (time TIMESTAMP TIME,region STRING TAG,plant_id STRING TAG,device_id STRING TAG,model_id STRING ATTRIBUTE,maintenance STRING ATTRIBUTE,temperature FLOAT FIELD,humidity FLOAT FIELD,status Boolean FIELD,arrival_time TIMESTAMP FIELD) WITH (TTL=31536000000)","database":"test"}' http://127.0.0.1:18080/rest/table/v1/nonQuery
-      ```
-
-- Example Response:
-
-  ```JSON
-    {
-      "code": 200,
-      "message": "SUCCESS_STATUS"
-    }
-  ```
-
-### 3.4 Batch Write Interface
-
-- Request Path: `/rest/table/v1/insertTablet`
-
-- Request Method: POST
-
-- Request Format:
-
-    - Header: `application/json`
-
-    - Request Parameters:
-
-      | Parameter Name      | Type   | Required | Description                                                  |
-                | :------------------ | :----- | :------- | :----------------------------------------------------------- |
-          | `database`          | string | Yes      | Database name                                                |
-          | `table`             | string | Yes      | Table name                                                   |
-          | `column_names`      | array  | Yes      | Column names                                                 |
-          | `column_categories` | array  | Yes      | Column categories (`TAG`, `FIELD`, `ATTRIBUTE`)              |
-          | `data_types`        | array  | Yes      | Data types                                                   |
-          | `timestamps`        | array  | Yes      | Timestamp column                                             |
-          | `values`            | array  | Yes      | Value columns. Each column's values can be `null`. A 2D array where the first dimension corresponds to timestamps, and the second dimension corresponds to columns. |
-
-- Response Format:
-
-  | Parameter Name | Type    | Description |
-          | :------------- | :------ | :---------- |
-      | `code`         | integer | Status code |
-      | `message`      | string  | Message     |
-
-- Example Request:
-
-  ```Bash
-    curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"database":"test","column_categories":["TAG","FIELD","FIELD"],"timestamps":[1739702535000,1739789055000],"column_names":["s1","s2","s3"],"data_types":["STRING","BOOLEAN","INT32"],"values":[["a11",true,2024],["a11",false,2025]],"table":"test_table"}' http://127.0.0.1:18080/rest/table/v1/insertTablet
-  ```
-
-- Example Response:
-
-  ```JSON
-    {
-      "code": 200,
-      "message": "SUCCESS_STATUS"
-    }
-  ```
-
-## 4. Configuration
-
-The configuration file is located in `iotdb-system.properties`.
-
-- Set `enable_rest_service` to `true` to enable the module, or `false` to disable it. The default value is `false`.
-
-  ```Properties
-    enable_rest_service=true
-  ```
-
-- Only effective when `enable_rest_service=true`. Set `rest_service_port` to a number (1025~65535) to customize the REST service socket port. The default value is `18080`.
-
-  ```Properties
-    rest_service_port=18080
-  ```
-
-- Set `enable_swagger` to `true` to enable Swagger for displaying REST interface information, or `false` to disable it. The default value is `false`.
-
-  ```Properties
-    enable_swagger=false
-  ```
-
-- The maximum number of rows that can be returned in a single query. If the result set exceeds this limit, only the rows within the limit will be returned, and status code `411` will be returned.
-
-  ```Properties
-    rest_query_default_row_size_limit=10000
-  ```
-
-- Expiration time for caching client login information (used to speed up user authentication, in seconds, default is 8 hours).
-
-  ```Properties
-    cache_expire_in_seconds=28800
-  ```
-
-- Maximum number of users stored in the cache (default is 100).
-
-  ```Properties
-    cache_max_num=100
-  ```
-
-- Initial cache capacity (default is 10).
-
-  ```Properties
-    cache_init_num=10
-  ```
-
-- Whether to enable SSL configuration for the REST service. Set `enable_https` to `true` to enable it, or `false` to disable it. The default value is `false`.
-
-  ```Properties
-    enable_https=false
-  ```
-
-- Path to the `keyStore` (optional).
-
-  ```Properties
-    key_store_path=
-  ```
-
-- Password for the `keyStore` (optional).
-
-  ```Properties
-    key_store_pwd=
-  ```
-
-- Path to the `trustStore` (optional).
-
-  ```Properties
-    trust_store_path=""
-  ```
-
-- Password for the `trustStore` (optional).
-
-  ```Properties
-    trust_store_pwd=""
-  ```
-
-- SSL timeout time, in seconds.
-
-  ```Properties
-    idle_timeout_in_seconds=5000
-  ```
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Background-knowledge/Cluster-Concept_timecho.md b/src/UserGuide/Master/Table/Background-knowledge/Cluster-Concept_timecho.md
deleted file mode 100644
index 7ebd7729..00000000
--- a/src/UserGuide/Master/Table/Background-knowledge/Cluster-Concept_timecho.md
+++ /dev/null
@@ -1,140 +0,0 @@
-<!--
-
-​    Licensed to the Apache Software Foundation (ASF) under one
-​    or more contributor license agreements.  See the NOTICE file
-​    distributed with this work for additional information
-​    regarding copyright ownership.  The ASF licenses this file
-​    to you under the Apache License, Version 2.0 (the
-​    "License"); you may not use this file except in compliance
-​    with the License.  You may obtain a copy of the License at
-​    
-​        http://www.apache.org/licenses/LICENSE-2.0
-​    
-​    Unless required by applicable law or agreed to in writing,
-​    software distributed under the License is distributed on an
-​    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-​    KIND, either express or implied.  See the License for the
-​    specific language governing permissions and limitations
-​    under the License.
-
--->
-
-# Common Concepts
-
-## 1. SQL Dialect Related Concepts
-
-### 1.1 sql_dialect
-
-IoTDB supports two time-series data mode (SQL dialects), both managing devices and measurement points:  
-
-- **Tree** **Mode**: Organizes data in a hierarchical path structure, where each path represents a measurement point of a device.
-- **Table** **Mode**: Organizes data in a relational table format, where each table corresponds to a type of device.
-
-Each dialect comes with its own SQL syntax and query patterns tailored to its data mode.
-
-### 1.2 Schema  
-
-Schema refers to the metadata structure of the database, which can follow either a tree or table format. It includes definitions such as measurement point names, data types, and storage configurations.
-
-###  1.3 Device 
-
-A device corresponds to a physical device in a real-world scenario, typically associated with multiple measurement points.
-
-### 1.4 Timeseries 
-
-Also referred to as: physical quantity, time series, timeline, point, signal, metric, measurement value, etc.
-A measurement point is a time series consisting of multiple data points arranged in ascending timestamp order. It typically represents a collection point that periodically gathers physical quantities from its environment. 
-
-### 1.5 Encoding        
-
-Encoding is a compression technique that represents data in binary form, improving storage efficiency. IoTDB supports multiple encoding methods for different types of data. For details, refer to: [Compression and Encoding ](../Technical-Insider/Encoding-and-Compression.md)。
-
-### 1.6 Compression 
-
- After encoding, IoTDB applies additional compression techniques to further reduce data size and improve storage efficiency. Various compression algorithms are supported. For details, refer to: [ Compression and Encoding](../Technical-Insider/Encoding-and-Compression.md)。
-
-## 2. Distributed System Related Concepts
-
-IoTDB supports distributed deployments, typically in a 3C3D cluster model (3 ConfigNodes, 3 DataNodes), as illustrated below:          
-
-<img src="/img/Cluster-Concept03N.png" alt="" style="width: 60%;"/>
-
-### 2.1 Key Concepts 
-
-- **Nodes** (*ConfigNode,* *DataNode**, AINode*)
-- **Regions** (*SchemaRegion, DataRegion*)
-- **Replica Groups** 
-
-Below is an introduction to these concepts.
-
-
-### 2.2 Nodes   
-
-An IoTDB cluster consists of three types of nodes, each with distinct responsibilities:
-
-- **ConfigNode (Management Node)** Manages cluster metadata, configuration, user permissions, schema, and partitioning. It also handles distributed scheduling and load balancing. All ConfigNodes are replicated for high availability.
-- **DataNode (Storage and Computation Node)** Handles client requests, stores data, and executes computations.
-- **AINode (Analytics Node)** Provides machine learning capabilities, allowing users to register pre-trained models and perform inference via SQL. It includes built-in time-series modes and common ML algorithms for tasks like prediction and anomaly detection.
-
-### 2.3 Data Partitioning  
-
-IoTDB divides schema and data into **Regions**, which are managed by DataNodes.
-
-- **SchemaRegion**: Stores schema information (devices and measurement points). Regions with the same RegionID across different DataNodes serve as replicas.
-- **DataRegion**: Stores time-series data for a subset of devices over a specified time period. Regions with the same RegionID across different DataNodes act as replicas.
-
-For more details, see [Cluster Data Partitioning](../Technical-Insider/Cluster-data-partitioning.md)
-
-### 2.4 Replica Groups
-
-Replica groups ensure high availability by maintaining multiple copies of schema and data. The recommended replication configurations are: 
-
-| **Category** | **Configuration Item**    | **Standalone Recommended** | **Cluster Recommended** |
-| ------------ | ------------------------- | -------------------------- | ----------------------- |
-| Metadata     | schema_replication_factor | 1                          | 3                       |
-| Data         | data_replication_factor   | 1                          | 2                       |
-
-
-## 3. Deployment Related Concepts
-
-IoTDB has two operation modes: standalone mode and cluster mode.
-
-### 3.1 Standalone Mode
-
-An IoTDB standalone instance includes 1 ConfigNode and 1 DataNode, i.e., 1C1D.
-
-- **Features**: Easy for developers to install and deploy, with low deployment and maintenance costs and convenient operations.  
-- **Use Cases**: Scenarios with limited resources or low high-availability requirements, such as edge servers. 
-- **Deployment Method**: [Stand-Alone Deployment](../Deployment-and-Maintenance/Stand-Alone-Deployment_timecho.md)
-
-
-### 3.2 Dual-Active Mode  
-
-Dual-Active Deployment is a feature of TimechoDB, where two independent instances synchronize bidirectionally and can provide services simultaneously. If one instance stops and restarts, the other instance will resume data transfer from the breakpoint.  
-
-> An IoTDB Dual-Active instance typically consists of 2 standalone nodes, i.e., 2 sets of 1C1D. Each instance can also be a cluster.  
-
-- **Features**: The high-availability solution with the lowest resource consumption.  
-- **Use Cases**: Scenarios with limited resources (only two servers) but requiring high availability.  
-- **Deployment Method**: [Dual-Active Deployment](../Deployment-and-Maintenance/Dual-Active-Deployment_timecho.md)
-
-### 3.3 Cluster Mode
-
-An IoTDB cluster instance consists of 3 ConfigNodes and no fewer than 3 DataNodes, typically 3 DataNodes, i.e., 3C3D. If some nodes fail, the remaining nodes can still provide services, ensuring high availability of the database. Performance can be improved by adding DataNodes.  
-
-- **Features**: High availability, high scalability, and improved system performance by adding DataNodes.  
-- **Use Cases**: Enterprise-level application scenarios requiring high availability and reliability.  
-- **Deployment Method**: [Cluster Deployment](../Deployment-and-Maintenance/Cluster-Deployment_timecho.md)
-
-
-### 3.4 Feature Summary
-
-| **Dimension**                   | **Stand-Alone Mode**                                         | **Dual-Active Mode**                                        | **Cluster Mode**                                            |
-| :-------------------------- | :------------------------------------------------------- | :------------------------------------------------------ | :------------------------------------------------------ |
-| Use Cases                   | Edge-side deployment, low high-availability requirements | High-availability services, disaster recovery scenarios | High-availability services, disaster recovery scenarios |
-| Number of Machines Required | 1                                                        | 2                                                       | ≥3                                                      |
-| Security and Reliability    | Cannot tolerate single-point failure                     | High, can tolerate single-point failure                 | High, can tolerate single-point failure                 |
-| Scalability                 | Can expand DataNodes to improve performance              | Each instance can be scaled as needed                   | Can expand DataNodes to improve performance             |
-| Performance                 | Can scale with the number of DataNodes                   | Same as one of the instances                            | Can scale with the number of DataNodes                  |
-
-- Notes: The deployment steps for Stand-Alone Mode and Cluster Mode are similar (adding ConfigNodes and DataNodes one by one), with differences only in the number of replicas and the minimum number of nodes required to provide services.
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Background-knowledge/Data-Model-and-Terminology_timecho.md b/src/UserGuide/Master/Table/Background-knowledge/Data-Model-and-Terminology_timecho.md
deleted file mode 100644
index 88537b32..00000000
--- a/src/UserGuide/Master/Table/Background-knowledge/Data-Model-and-Terminology_timecho.md
+++ /dev/null
@@ -1,388 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Modeling Scheme Design
-
-This section introduces how to transform time series data application scenarios into IoTDB time series mode.   
-
-## 1. Time Series Data Mode
-
-Before designing an IoTDB data mode, it's essential to understand time series data and its underlying structure. For more details, refer to: [Time Series Data Mode](../Background-knowledge/Navigating_Time_Series_Data_timecho.md)
-
-## 2. Tree-Table Twin Mode in IoTDB
-
-IoTDB offers tree-table twin mode, each with its distinct characteristics as follows:
-
-**Tree Mode**: It manages data points as objects, with each data point corresponding to a time series. The data point names, segmented by dots, form a tree-like directory structure that corresponds one-to-one with the physical world, making the read and write operations on data points straightforward and intuitive.
-
-**Table Mode**: It is recommended to create a table for each type of device. The collection of physical quantities from devices of the same type shares certain commonalities (such as the collection of temperature and humidity physical quantities), allowing for flexible and rich data analysis.
-
-### 2.1 Mode Characteristics
-
-Tree-table twin mode syntaxes have their own applicable scenarios.
-
-The following table compares the tree mode and the table mode from various dimensions, including applicable scenarios and typical operations. Users can choose the appropriate mode based on their specific usage requirements to achieve efficient data storage and management.
-
-<table style="text-align: center;">
-        <tr>
-            <td>Dimension</td>
-            <td>Tree Mode</td>
-            <td>Table Mode</td>
-        </tr>
-        <tr>
-            <td>Applicable Scenarios</td>
-            <td>Measurements management, monitoring scenarios</td>
-            <td>Device management, analysis scenarios</td>
-        </tr>
-        <tr>
-            <td>Typical Operations</td>
-            <td>Read and write operations by specifying data point paths</td>
-            <td>Data filtering and analysis through tags</td>
-        </tr>
-        <tr>
-            <td>Structural Characteristics</td>
-            <td>Flexible addition and deletion, similar to a file system</td>
-            <td>Template-based management, facilitating data governance</td>
-        </tr>
-        <tr>
-            <td>Syntax Characteristics</td>
-            <td>Concise and flexible</td>
-            <td>Rich analysis</td>
-        </tr>
-        <tr>
-            <td>Performance Comparison</td>
-            <td colspan="2">Similar</td>
-        </tr>
-</table>
-
-**Notes:**  
-
-- Both mode spaces can coexist within the same cluster instance. Each mode follows distinct syntax and database naming conventions, and they remain isolated by default.
-
-## 2.2 Model Selection
-
-IoTDB supports model selection through various client tools. The configuration methods for different clients are as follows:
-
-1. [Command-Line Interface (CLI)](../Tools-System/CLI_timecho.md)
-
-When connecting via CLI, specify the model using the `sql_dialect` parameter (default: tree model).
-
-```bash
-# Tree model
-start-cli.sh(bat)
-start-cli.sh(bat) -sql_dialect tree
-
-# Table model
-start-cli.sh(bat) -sql_dialect table
-```
-
-2. [SQL](../User-Manual/Maintenance-commands_timecho.md#_2-1-setting-the-connected-model)
-
-Use the `SET` statement to switch models in SQL:
-
-```sql
--- Tree model
-IoTDB> SET SQL_DIALECT=TREE
-
--- Table model
-IoTDB> SET SQL_DIALECT=TABLE
-```
-
-3. Application Programming Interfaces (APIs)
-
-For multi-language APIs, create connections via model-specific session/session pool classes. Examples:
-
-* [Java Native API](../API/Programming-Java-Native-API_timecho.md)
-
-```java
-// Tree model
-SessionPool sessionPool =
-                new SessionPool.Builder()
-                        .nodeUrls(nodeUrls)
-                        .user(username)
-                        .password(password) 
-                        .maxSize(3)
-                        .build();
-
-// Table model
-ITableSessionPool tableSessionPool =
-                new TableSessionPoolBuilder()
-                        .nodeUrls(nodeUrls)
-                        .user(username)
-                        .password(password)
-                        .maxSize(1)
-                        .build();
-```
-
-* [Python Native API](../API/Programming-Python-Native-API_timecho.md)
-
-```python
-# Tree model
-session = Session(
-    ip=ip,
-    port=port,
-    user=username,
-    password=password,
-    fetch_size=1024,
-    zone_id="UTC+8",
-    enable_redirection=True
-)
-
-# Table model
-config = TableSessionPoolConfig(
-    node_urls=node_urls,
-    username=username,
-    password=password,
-    database=database,
-    max_pool_size=max_pool_size,
-    fetch_size=fetch_size,
-    wait_timeout_in_ms=wait_timeout_in_ms,
-)
-session_pool = TableSessionPool(config)
-```
-
-* [C++ Native API](../API/Programming-Cpp-Native-API_timecho.md)
-
-```cpp
-// Tree model
-session = new Session(hostip, port, username, password);
-
-// Table model
-session = (new TableSessionBuilder())
-            ->host(ip)
-            ->rpcPort(port)
-            ->username(username)
-            ->password(password)
-            ->build();
-```
-
-* [Go Native API](../API/Programming-Go-Native-API_timecho.md)
-
-```go
-// Tree model
-config := &client.PoolConfig{
-    Host:     host,
-    Port:     port,
-    UserName: user,
-    Password: password,
-}
-sessionPool = client.NewSessionPool(config, 3, 60000, 60000, false)
-defer sessionPool.Close()
-
-// Table model
-config := &client.PoolConfig{
-      Host:     host,
-      Port:     port,
-      UserName: user,
-      Password: password, 
-      Database: dbname,
-}
-sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-defer sessionPool.Close()
-```
-
-* [C# Native API](../API/Programming-CSharp-Native-API_timecho.md)
-
-```csharp
-// Tree model
-var session_pool = new SessionPool(host, port, pool_size);
-
-// Table model
-var tableSessionPool = new TableSessionPool.Builder()
-            .SetNodeUrls(nodeUrls)
-            .SetUsername(username)
-            .SetPassword(password)
-            .SetFetchSize(1024)
-            .Build();
-```
-
-* [JDBC](../API/Programming-JDBC_timecho.md)
-
-For the table model, include `sql_dialect=table` in the JDBC URL:
-
-```java
-// Tree model
-Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
-Connection connection = DriverManager.getConnection(
-                "jdbc:iotdb://127.0.0.1:6667/", username, password);
-
-// Table model
-Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
-Connection connection = DriverManager.getConnection(
-                "jdbc:iotdb://127.0.0.1:6667?sql_dialect=table", username, password);
-```
-
-## 2.3 Tree-to-Table Conversion
-
-IoTDB supports **tree-to-table conversion**, as shown in the figure below:
-
-![](/img/tree-to-table-en-1.png)
-
-This feature allows existing tree-model data to be transformed into table views. Users can then query the same dataset using either model. Detailed instructions are available in [Tree-to-Table View](../User-Manual/Tree-to-Table_timecho.md). **Note**: SQL statements for creating tree-to-table views **must be executed in table mode**.
-
-
-## 3. Application Scenarios
-
-The application scenarios mainly include three categories:
-
-- Scenario 1: Using the tree mode for data reading and writing.
-
-- Scenario 2: Using the table mode for data reading and writing.
-
-- Scenario 3: Sharing the same dataset, using the tree mode for data reading and writing, and the table mode for data analysis.
-
-### 3.1 Scenario 1: Tree Mode
-
-#### 3.1.1 Characteristics
-
-- Simple and intuitive, corresponding one-to-one with monitoring points in the physical world.
-
-- Flexible like a file system, allowing the design of any branch structure.
-
-- Suitable for industrial monitoring scenarios such as DCS and SCADA.
-
-#### 3.1.2 Basic Concepts
-
-| **Concept**                  | **Definition**                                               |
-| ---------------------------- | ------------------------------------------------------------ |
-| **Database**                 | **Definition**: A path prefixed with `root.`.<br>**Naming Recommendation**: Only include the next level node under `root`, such as `root.db`.<br>**Quantity Recommendation**: The upper limit is related to memory. A single database can fully utilize machine resources; there is no need to create multiple databases for performance reasons.<br>**Creation Method**: Recommended to create manually, but can also be created automatically when a time series is creat [...]
-| **Time Series (Data Point)** | **Definition**:<br>A path prefixed with the database path, segmented by `.`, and can contain any number of levels, such as `root.db.turbine.device1.metric1`.<br>Each time series can have different data types.<br>**Naming Recommendation**:<br>Only include unique identifiers (similar to a composite primary key) in the path, generally not exceeding 10 levels.<br>Typically, place tags with low cardinality (fewer distinct values) at the front to facilitate sys [...]
-| **Device**                   | **Definition**: The second-to-last level is the device, such as `device1` in `root.db.turbine.device1.metric1`.<br>**Creation Method**: Cannot create a device alone; it exists as time series are created. |
-
-#### 3.1.3 Mode Examples
-
-##### 3.1.3.1 How to mode when managing multiple types of devices?
-
-- If different types of devices in the scenario have different hierarchical paths and data point sets, create branches under the database node by device type. Each device type can have a different data point structure.
-
-<div style="text-align: center;">
-      <img src="/img/data-model-new-1-en.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.1.3.2 How to mode when there are no devices, only data points?
-
-- For example, in a monitoring system for a station, each data point has a unique number but does not correspond to any specific device.
-
-<div style="text-align: center;">
-      <img src="/img/Data-model-en02.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.1.3.3 How to mode when a device has both sub-devices and data points?
-
-- For example, in an energy storage scenario, each layer of the structure monitors its voltage and current. The following mode approach can be used.
-
-<div style="text-align: center;">
-      <img src="/img/Data-model-en03.png" alt="" style="width: 70%;"/>
-</div>
-
-
-### 3.2 Scenario 2: Table Mode
-
-#### 3.2.1 Characteristics
-
-- Modes and manages device time series data using time series tables, facilitating analysis with standard SQL.
-
-- Suitable for device data analysis or migrating data from other databases to IoTDB.
-
-#### 3.2.2 Basic Concepts
-
-- Database: Can manage multiple types of devices.
-
-- Time Series Table: Corresponds to a type of device.
-
-| **Category**                     | **Definition**                                               |
-| -------------------------------- | ------------------------------------------------------------ |
-| **Time Column (TIME)**           | Each time series table must have a time column named `time`, with the data type `TIMESTAMP`. |
-| **Tag Column (TAG)** \|          | Unique identifiers (composite primary key) for devices, ranging from 0 to multiple.<br>Tag information cannot be modified or deleted but can be added.<br>Recommended to arrange from coarse to fine granularity. |
-| **Data Point Column (FIELD)** \| | A device can collect 1 to multiple data points, with values changing over time.<br>There is no limit to the number of data point columns; it can reach hundreds of thousands. |
-| **Attribute Column (ATTRIBUTE)** | Supplementary descriptions of devices, not changing over time.<br>Device attribute information can range from 0 to multiple and can be updated or added.<br>A small number of static attributes that may need modification can be stored here. |
-
-**Data Filtering Efficiency**: Time Column = Tag Column > Attribute Column > Data Point Column.
-
-#### 3.2.3 Mode Examples
-
-##### 3.2.3.1 How to mode when managing multiple types of devices?
-
-- Recommended to create a table for each type of device, with each table having different tags and data point sets.
-
-- Even if devices are related or have hierarchical relationships, it is recommended to create a table for each type of device.
-
-<div style="text-align: center;">
-      <img src="/img/data-model-new-2-en.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.2.3.2 How to mode when there are no device identifier columns or attribute columns?
-
-- There is no limit to the number of columns; it can reach hundreds of thousands.
-
-<div style="text-align: center;">
-      <img src="/img/Data-model-en05.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.2.3.3 How to mode when a device has both sub-devices and data points?
-
-- Each device has multiple sub-devices and data point information. It is recommended to create a table for each type of device for management.
-
-<div style="text-align: center;">
-      <img src="/img/data-model-new-3-en.png" alt="" style="width: 70%;"/>
-</div>
-
-### 3.3 Scenario 3: Dual-Mode Integration
-
-#### 3.3.1 Characteristics
-
-- Ingeniously combines the advantages of the tree mode and table mode, sharing the same dataset, with flexible writing and rich querying.
-
-- During the data writing phase, the tree mode syntax is used, supporting flexible data access and expansion.
-
-- During the data analysis phase, the table mode syntax is used, allowing users to perform complex data analysis using standard SQL queries.
-
-#### 3.3.2 Mode Examples
-
-##### 3.3.2.1 How to mode when managing multiple types of devices?
-
-- Different types of devices in the scenario have different hierarchical paths and data point sets.
-
-- **Tree Mode**T: Create branches under the database node by device type, with each device type having a different data point structure.
-
-- **Table View**T: Create a table view for each type of device, with each table view having different tags and data point sets.
-
-<div style="text-align: center;">
-      <img src="/img/data-model-new-4-en.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.3.2.2 How to mode when there are no device identifier columns or attribute columns?
-
-- **Tree Mode**: Each data point has a unique number but does not correspond to any specific device.
-- **Table View**: Place all data points into a single table. There is no limit to the number of data point columns; it can reach hundreds of thousands. If data points have the same data type, they can be treated as the same type of device.
-
-<div style="text-align: center;">
-      <img src="/img/Data-model-en08.png" alt="" style="width: 70%;"/>
-</div>
-
-##### 3.3.2.3 How to mode when a device has both sub-devices and data points?
-
-- **Tree Mode**: Mode each layer of the structure according to the monitoring points in the physical world.
-- **Table View**: Create multiple tables to manage each layer of structural information according to device classification.
-
-<div style="text-align: center;">
-      <img src="/img/data-model-new-5-en.png" alt="" style="width: 70%;"/>
-</div>
diff --git a/src/UserGuide/Master/Table/Background-knowledge/Data-Type_timecho.md b/src/UserGuide/Master/Table/Background-knowledge/Data-Type_timecho.md
deleted file mode 100644
index d35af9d0..00000000
--- a/src/UserGuide/Master/Table/Background-knowledge/Data-Type_timecho.md
+++ /dev/null
@@ -1,201 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Data Type
-
-## 1. Basic Data Types
-
-IoTDB supports the following data types:
-
-- **BOOLEAN** (Boolean value)
-- **INT32** (32-bit integer)
-- **INT64** (64-bit integer)
-- **FLOAT** (Single-precision floating-point number)
-- **DOUBLE** (Double-precision floating-point number)
-- **TEXT** (Text data, suitable for long strings, Not recommended)
-- **STRING** (String data with additional statistical information for optimized queries)
-- **BLOB** (Large binary object)
-- **OBJECT** (Large Binary Object)
-  > Supported since V2.0.8
-- **TIMESTAMP** (Timestamp, representing precise moments in time)
-- **DATE** (Date, storing only calendar date information)
-
-The difference between **STRING** and **TEXT**:
-
-- **STRING** stores text data and includes additional statistical information to optimize value-filtering queries.
-- **TEXT** is suitable for storing long text strings without additional query optimization.
-
-The differences between **OBJECT** and **BLOB** types are as follows:
-
-|                      | **OBJECT**                                                                                                              | **BLOB**                             |
-|----------------------|-------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
-| **Write Amplification** (Lower is better)   | Low (Write amplification factor is always 1)                                                                                   | High (Write amplification factor = 2 + number of merges) |
-| **Space Amplification** (Lower is better)  | Low (Merge & release on write)                                                                                               | High (Merge on read and release on compact) |
-| **Query Results** | When querying an OBJECT column by default, returns metadata like: `(Object) XX.XX KB`.  Actual OBJECT data storage path: `${data_dir}/object_data`. Use `READ_OBJECT` function to retrieve raw content | Directly returns raw binary content |
-
-
-### 1.1 Data Type Compatibility
-
-If the written data type does not match the registered data type of a series:  
-
-- **Incompatible types** → The system will issue an error.
-- **Compatible types** → The system will automatically convert the written data type to match the registered type.
-
-The compatibility of data types is shown in the table below:  
-
-| Registered Data Type | Compatible Write Data Types            |
-|:---------------------|:---------------------------------------|
-| BOOLEAN              | BOOLEAN                                |
-| INT32                | INT32                                  |
-| INT64                | INT32, INT64, TIMESTAMP                |
-| FLOAT                | INT32, FLOAT                           |
-| DOUBLE               | INT32, INT64, FLOAT, DOUBLE, TIMESTAMP |
-| TEXT                 | TEXT, STRING                           |
-| STRING               | TEXT, STRING                           |
-| BLOB                 | TEXT, STRING, BLOB                     |
-| OBJECT               | OBJECT                                 |
-| TIMESTAMP            | INT32, INT64, TIMESTAMP                |
-| DATE                 | DATE                                   |
-
-## 2. Timestamp Types
-
-A timestamp represents the moment when data is recorded. IoTDB supports two types:
-
-- **Absolute timestamps**: Directly specify a point in time.
-- **Relative timestamps**: Define time offsets from a reference point (e.g., `now()`).
-
-### 2.1 Absolute Timestamp
-
-IoTDB supports timestamps in two formats:
-
-1. **LONG**: Milliseconds since the Unix epoch (1970-01-01 00:00:00 UTC).
-2. **DATETIME**: Human-readable date-time strings. (including **DATETIME-INPUT** and **DATETIME-DISPLAY** subcategories).  
-
-When entering a timestamp, users can use either a LONG value or a DATETIME string. Supported input formats include:
-
-<div style="text-align: center;">
-
-**DATETIME-INPUT Type Supports Format**
-
-
-| format                       |
-| :--------------------------- |
-| yyyy-MM-dd HH:mm:ss          |
-| yyyy/MM/dd HH:mm:ss          |
-| yyyy.MM.dd HH:mm:ss          |
-| yyyy-MM-dd HH:mm:ssZZ        |
-| yyyy/MM/dd HH:mm:ssZZ        |
-| yyyy.MM.dd HH:mm:ssZZ        |
-| yyyy/MM/dd HH:mm:ss.SSS      |
-| yyyy-MM-dd HH:mm:ss.SSS      |
-| yyyy.MM.dd HH:mm:ss.SSS      |
-| yyyy-MM-dd HH:mm:ss.SSSZZ    |
-| yyyy/MM/dd HH:mm:ss.SSSZZ    |
-| yyyy.MM.dd HH:mm:ss.SSSZZ    |
-| ISO8601 standard time format |
-
-
-</div>
-
-> **Note:** `ZZ` represents a time zone offset (e.g., `+0800` for Beijing Time, `-0500` for Eastern Standard Time).
-
-IoTDB supports timestamp display in **LONG** format or **DATETIME-DISPLAY** format, allowing users to customize time output. 
-
-<div style="text-align: center;">
-
-**Syntax for Custom Time Formats in DATETIME-DISPLAY**
-
-
-| Symbol |           Meaning           | Presentation |              Examples              |
-| :----: | :-------------------------: | :----------: | :--------------------------------: |
-|   G    |             era             |     era      |                era                 |
-|   C    |    century of era (>=0)     |    number    |                 20                 |
-|   Y    |      year of era (>=0)      |     year     |                1996                |
-|        |                             |              |                                    |
-|   x    |          weekyear           |     year     |                1996                |
-|   w    |      week of weekyear       |    number    |                 27                 |
-|   e    |         day of week         |    number    |                 2                  |
-|   E    |         day of week         |     text     |            Tuesday; Tue            |
-|        |                             |              |                                    |
-|   y    |            year             |     year     |                1996                |
-|   D    |         day of year         |    number    |                189                 |
-|   M    |        month of year        |    month     |           July; Jul; 07            |
-|   d    |        day of month         |    number    |                 10                 |
-|        |                             |              |                                    |
-|   a    |       halfday of day        |     text     |                 PM                 |
-|   K    |   hour of halfday (0~11)    |    number    |                 0                  |
-|   h    | clockhour of halfday (1~12) |    number    |                 12                 |
-|        |                             |              |                                    |
-|   H    |     hour of day (0~23)      |    number    |                 0                  |
-|   k    |   clockhour of day (1~24)   |    number    |                 24                 |
-|   m    |       minute of hour        |    number    |                 30                 |
-|   s    |      second of minute       |    number    |                 55                 |
-|   S    |     fraction of second      |    millis    |                978                 |
-|        |                             |              |                                    |
-|   z    |          time zone          |     text     |     Pacific Standard Time; PST     |
-|   Z    |     time zone offset/id     |     zone     | -0800; -08:00; America/Los_Angeles |
-|        |                             |              |                                    |
-|   '    |       escape for text       |  delimiter   |                                    |
-|   ''   |        single quote         |   literal    |                 '                  |
-
-</div>
-
-### 2.2 Relative Timestamp
-
-Relative timestamps allow specifying time offsets from **now()** or a **DATETIME** reference.
-
-The formal definition is:  
-
-```Plain
-Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+  
-RelativeTime = (now() | DATETIME) ((+|-) Duration)+  
-```
-
-  <div style="text-align: center;">
-
-  **The syntax of the duration unit**
-
-
-  | Symbol |   Meaning   |       Presentation       | Examples |
-  | :----: | :---------: | :----------------------: | :------: |
-  |   y    |    year     |       1y=365 days        |    1y    |
-  |   mo   |    month    |       1mo=30 days        |   1mo    |
-  |   w    |    week     |        1w=7 days         |    1w    |
-  |   d    |     day     |         1d=1 day         |    1d    |
-  |        |             |                          |          |
-  |   h    |    hour     |     1h=3600 seconds      |    1h    |
-  |   m    |   minute    |      1m=60 seconds       |    1m    |
-  |   s    |   second    |       1s=1 second        |    1s    |
-  |        |             |                          |          |
-  |   ms   | millisecond | 1ms=1000_000 nanoseconds |   1ms    |
-  |   us   | microsecond |   1us=1000 nanoseconds   |   1us    |
-  |   ns   | nanosecond  |     1ns=1 nanosecond     |   1ns    |
-
-  </div>
-
-**Examples:**  
-
-```Plain
-now() - 1d2h // A time 1 day and 2 hours earlier than the server time  
-now() - 1w   // A time 1 week earlier than the server time  
-```
-
-> **Note:** There must be spaces on both sides of `+` and `-` operators.  
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Background-knowledge/Navigating_Time_Series_Data_timecho.md b/src/UserGuide/Master/Table/Background-knowledge/Navigating_Time_Series_Data_timecho.md
deleted file mode 100644
index c60e112d..00000000
--- a/src/UserGuide/Master/Table/Background-knowledge/Navigating_Time_Series_Data_timecho.md
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# Timeseries Data Model
-
-## 1. What is Time Series Data?
-
-In today's interconnected world, industries such as the Internet of Things (IoT) and manufacturing are undergoing rapid digital transformation. Sensors are widely deployed on various devices to collect real-time operational data. For example:
-
-- **Motors** record voltage and current.
-- **Wind Turbines** track blade speed, angular velocity, and power output.
-- **Vehicles** capture GPS coordinates, speed, and fuel consumption.
-- **Bridges** monitor vibration frequency, deflection, and displacement.
-
-Sensor data collection has permeated almost every industry, generating vast amounts of **time series data**.
-
-![](/img/time-series-data-en-01.png)
-
-Each data collection point is referred to as a **measurement point** (also known as a physical quantity, time series, signal, metric, or measurement value). As time progresses, new data is continuously recorded for each measurement point, forming a **time series**. In tabular form, a time series consists of two columns: **timestamp** and **value**. When visualized, a time series appears as a trend chart over time, resembling an "electrocardiogram" of a device.
-
-![](/img/time-series-data-en-02.png)
-
-Given the vast amount of time-series data generated by sensors, structuring this data effectively is essential for digital transformation across industries. Therefore, time-series data modeling is primarily centered around **devices** and **sensors**.
-
-## 2. Key Concepts in Time Series Data
-
-Several fundamental concepts define time-series data:
-
-| **Device**              | Also known as an entity or equipment, a device is a real-world object that generates time-series data. In IoTDB, a device serves as a logical grouping of multiple time series. A device could be a physical machine, a measuring instrument, or a collection of sensors. Examples include:<br>- Energy sector: A wind turbine, identified by parameters such as region, power station, line, model, and instance.<br>- Manufacturing sector: A robotic arm, uniquely identified [...]
-| ------------------------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-| **FIELD**   | Also referred to as a physical quantity, signal, metric, or status point, a field represents a specific measurable property recorded by a sensor. Each field corresponds to a measurement point that periodically captures environmental data. Examples include:<br>- Energy and power: Current, voltage, wind speed, rotational speed.<br>- Connected vehicles: Fuel level, vehicle speed, latitude, longitude.<br>- Manufacturing: Temperature, humidity. <br>Under the **table model**, t [...]
-| **Data Point**        | A data point consists of a timestamp and a value. The timestamp is typically stored as a long integer, while the value can be of various data types such as BOOLEAN, FLOAT, or INT32. <br>In tabular format, a data point corresponds to a single row in a time-series dataset, while in graphical representation, it is a single point on a time-series chart.<br> <img src="/img/time-series-data-en-03.png" alt="" style="width: 70%;"/>                                        [...]
-| **Frequency**       | The sampling frequency determines how often a sensor records data within a given timeframe.<br>For example, if a temperature sensor records data once per second, its sampling frequency is 1Hz (1 sample per second).                                                                                                                                                                                                                                                               [...]
-| **TTL**  | TTL (Time-to-Live) defines the retention period of stored data. Once the TTL expires, the data is automatically deleted.<br>IoTDB allows different TTL values for different datasets, enabling automated, periodic data deletion. Proper TTL configuration helps:<br>- Manage disk space efficiently, preventing storage overflow.<br>- Maintain high query performance.<br>- Reduce memory resource consumption.                                                                               [...]
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Basic-Concept/Database-Management_timecho.md b/src/UserGuide/Master/Table/Basic-Concept/Database-Management_timecho.md
deleted file mode 100644
index 2ac3e52f..00000000
--- a/src/UserGuide/Master/Table/Basic-Concept/Database-Management_timecho.md
+++ /dev/null
@@ -1,175 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Database Management
-
-## 1. Database Management
-
-### 1.1 Create a Database
-
-This command is used to create a database.
-
-**Syntax:**
-
-```SQL
- CREATE DATABASE (IF NOT EXISTS)? <DATABASE_NAME> (WITH properties)?
-```
-
-**Note: **
-
-1. `<DATABASE_NAME>`: The name of the database, with the following characteristics:
-  - Case-insensitive. After creation, it will be displayed uniformly in lowercase.
-  - Can include commas (`,`), underscores (`_`), numbers, letters, and Chinese characters.
-  - Maximum length is 64 characters.
-  - Names with special characters or Chinese characters must be enclosed in double quotes (`""`).
-
-2. `WITH properties`: Property names are case-insensitive. For more details, refer to the case sensitivity rules [case-sensitivity](../SQL-Manual/Identifier.md#2-case-sensitivity)。Configurable properties include:
-
-| Property                | Description                                                  | Default Value        |
-| ----------------------- | ------------------------------------------------------------ | -------------------- |
-| TTL                     | Automatic data expiration time, in milliseconds              | `INF`                |
-| TIME_PARTITION_INTERVAL | Time partition interval for the database, in milliseconds    | `604800000` (7 days) |
-| SCHEMA_REGION_GROUP_NUM | Number of metadata replica groups; generally does not require modification | `1`                  |
-| DATA_REGION_GROUP_NUM   | Number of data replica groups; generally does not require modification | `2`                  |
-
-**Examples:**
-
-```SQL
-CREATE DATABASE IF NOT EXISTS database1 with(TTL=31536000000);
-```
-
-### 1.2 Use a Database
-
-Specify the current database as the namespace for table operations.
-
-**Syntax:**
-
-```SQL
-USE <DATABASE_NAME>
-```
-
-**Example:** 
-
-```SQL
-USE database1;
-```
-
-### 1.3 View the Current Database
-
-Displays the name of the currently connected database. If no USE statement has been executed, the default is `null`.
-
-**Syntax:**
-
-```SQL
-SHOW CURRENT_DATABASE
-```
-
-**Example:**
-
-```SQL
-USE database1;
-SHOW CURRENT_DATABASE;
-```
-```shell
-+---------------+
-|CurrentDatabase|
-+---------------+
-|      database1|
-+---------------+
-```
-
-
-### 1.4 View All Databases
-
-Displays all databases and their properties.
-
-**Syntax:**
-
-```SQL
-SHOW DATABASES (DETAILS)?
-```
-
-**Columns Explained:**
-
-
-| Column Name             | Description                                                                                                                                                                                                                                                                                                                                     |
-| ----------------------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| database                | Name of the database.                                                                                                                                                                                                                                                                                                                           |
-| TTL                     | Data retention period. If TTL is specified when creating a database, it applies to all tables within the database. You can also set or update the TTL of individual tables using [create table](../Basic-Concept/Table-Management_timecho.md#11-create-a-table) 、[alter table](../Basic-Concept/Table-Management_timecho.md#14-update-tables) . |
-| SchemaReplicationFactor | Number of metadata replicas, ensuring metadata high availability. This can be configured in the `iotdb-system.properties` file under the `schema_replication_factor` property.                                                                                                                                                                  |
-| DataReplicationFactor   | Number of data replicas, ensuring data high availability. This can be configured in the `iotdb-system.properties` file under the `data_replication_factor` property.                                                                                                                                                                            |
-| TimePartitionInterval   | Time partition interval, determining how often data is grouped into directories on disk. The default is typically one week.                                                                                                                                                                                                                     |
-| Model                   | Returned when using the `DETAILS` option, showing the data model corresponding to each database (e.g., timeseries tree model or device table model).                                                                                                                                                                                            |
-
-**Examples:** 
-
-```SQL
-SHOW DATABASES DETAILS;
-```
-```shell
-+------------------+-------+-----------------------+---------------------+---------------------+--------------------+------------------+
-|          Database|TTL(ms)|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|SchemaRegionGroupNum|DataRegionGroupNum|
-+------------------+-------+-----------------------+---------------------+---------------------+--------------------+------------------+
-|         database1|    INF|                      1|                    1|            604800000|                   1|                 2|
-|information_schema|    INF|                   null|                 null|                 null|                null|              null|
-+------------------+-------+-----------------------+---------------------+---------------------+--------------------+------------------+
-```
-
-### 1.5 Update a Database
-
-Used to modify some attributes in the database.
-
-**Syntax:**
-
-```SQL
-ALTER DATABASE (IF EXISTS)? database=identifier SET PROPERTIES propertyAssignments
-```
-
-**Note:**
-
-1. The `ALTER DATABASE` operation currently only supports modifications to the database's `SCHEMA_REGION_GROUP_NUM`, `DATA_REGION_GROUP_NUM`, and `TTL` attributes.
-
-**Example:**
-
-```SQL
-ALTER DATABASE database1 SET PROPERTIES TTL=31536000000;
-```
-
-### 1.6 Delete a Database
-
-Deletes the specified database and all associated tables and data.
-
-**Syntax:**
-
-```SQL
-DROP DATABASE (IF EXISTS)? <DATABASE_NAME>
-```
-
-**Note:**
-
-1. A database currently in use can still be dropped.
-2. Deleting a database removes all its tables and stored data.
-
-**Example:**
-
-```SQL
-DROP DATABASE IF EXISTS database1;
-```
diff --git a/src/UserGuide/Master/Table/Basic-Concept/Query-Data_timecho.md b/src/UserGuide/Master/Table/Basic-Concept/Query-Data_timecho.md
deleted file mode 100644
index 47976fb4..00000000
--- a/src/UserGuide/Master/Table/Basic-Concept/Query-Data_timecho.md
+++ /dev/null
@@ -1,590 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Query Data
-
-## 1. Syntax Overview
-
-```SQL
-SELECT ⟨select_list⟩
-    FROM ⟨tables⟩ | patternRecognition
-    [WHERE ⟨condition⟩]
-    [GROUP BY ⟨groups⟩]
-    [HAVING ⟨group_filter⟩]
-    [WINDOW windowDefinition (',' windowDefinition)*)]
-    [FILL ⟨fill_methods⟩]
-    [ORDER BY ⟨order_expression⟩]
-    [OFFSET ⟨n⟩]
-    [LIMIT ⟨n⟩];
-```
-
-The IoTDB table model query syntax supports the following clauses:
-
-- **SELECT Clause**: Specifies the columns to be included in the result. Details: [SELECT Clause](../SQL-Manual/Select-Clause_timecho.md)
-- **FROM Clause**: Indicates the data source for the query, which can be a single table, multiple tables joined using the `JOIN` clause, or a subquery. Details: [FROM & JOIN Clause](../SQL-Manual/From-Join-Clause.md)
-- **WHERE Clause**: Filters rows based on specific conditions. Logically executed immediately after the `FROM` clause. Details: [WHERE Clause](../SQL-Manual/Where-Clause.md)
-- **GROUP BY Clause**: Used for aggregating data, specifying the columns for grouping. Details: [GROUP BY Clause](../SQL-Manual/GroupBy-Clause.md)
-- **HAVING Clause**: Applied after the `GROUP BY` clause to filter grouped data, similar to `WHERE` but operates after grouping. Details:[HAVING Clause](../SQL-Manual/Having-Clause.md)
-- **FILL Clause**: Handles missing values in query results by specifying fill methods (e.g., previous non-null value or linear interpolation) for better visualization and analysis. Details:[FILL Clause](../SQL-Manual/Fill-Clause.md)
-- **ORDER BY Clause**: Sorts query results in ascending (`ASC`) or descending (`DESC`) order, with optional handling for null values (`NULLS FIRST` or `NULLS LAST`). Details: [ORDER BY Clause](../SQL-Manual/OrderBy-Clause.md)
-- **OFFSET Clause**: Specifies the starting position for the query result, skipping the first `OFFSET` rows. Often used with the `LIMIT` clause. Details: [LIMIT and OFFSET Clause](../SQL-Manual/Limit-Offset-Clause.md)
-- **LIMIT Clause**: Limits the number of rows in the query result. Typically used in conjunction with the `OFFSET` clause for pagination. Details: [LIMIT and OFFSET Clause](../SQL-Manual/Limit-Offset-Clause.md)
-
-## 2. Clause Execution Order
-
-![](/img/data-query-1.png)
-
-
-## 3. Common Query Examples
-
-### 3.1 Sample Dataset
-
-The [Example Data page](../Reference/Sample-Data.md)page provides SQL statements to construct table schemas and insert data. By downloading and executing these statements in the IoTDB CLI, you can import the data into IoTDB. This data can be used to test and run the example SQL queries included in this documentation, allowing you to reproduce the described results.
-
-### 3.2 Basic Data Query
-
-**Example 1: Filter by Time**
-
-```SQL
-IoTDB> SELECT time, temperature, humidity 
-         FROM table1 
-         WHERE time >= 2024-11-27 00:00:00  and time <= 2024-11-29 00:00:00;
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+-----------+--------+
-|                         time|temperature|humidity|
-+-----------------------------+-----------+--------+
-|2024-11-28T08:00:00.000+08:00|       85.0|    null|
-|2024-11-28T09:00:00.000+08:00|       null|    40.9|
-|2024-11-28T10:00:00.000+08:00|       85.0|    35.2|
-|2024-11-28T11:00:00.000+08:00|       88.0|    45.1|
-|2024-11-27T16:38:00.000+08:00|       null|    35.1|
-|2024-11-27T16:39:00.000+08:00|       85.0|    35.3|
-|2024-11-27T16:40:00.000+08:00|       85.0|    null|
-|2024-11-27T16:41:00.000+08:00|       85.0|    null|
-|2024-11-27T16:42:00.000+08:00|       null|    35.2|
-|2024-11-27T16:43:00.000+08:00|       null|    null|
-|2024-11-27T16:44:00.000+08:00|       null|    null|
-+-----------------------------+-----------+--------+
-Total line number = 11
-It costs 0.075s
-```
-
-**Example 2: Filter by** **Value**
-
-```SQL
-IoTDB> SELECT time, temperature, humidity 
-         FROM table1 
-         WHERE temperature > 89.0;
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+-----------+--------+
-|                         time|temperature|humidity|
-+-----------------------------+-----------+--------+
-|2024-11-29T18:30:00.000+08:00|       90.0|    35.4|
-|2024-11-26T13:37:00.000+08:00|       90.0|    35.1|
-|2024-11-26T13:38:00.000+08:00|       90.0|    35.1|
-|2024-11-30T09:30:00.000+08:00|       90.0|    35.2|
-|2024-11-30T14:30:00.000+08:00|       90.0|    34.8|
-+-----------------------------+-----------+--------+
-Total line number = 5
-It costs 0.156s
-```
-
-**Example 3: Filter by Attribute**
-
-```SQL
-IoTDB> SELECT time, temperature, humidity 
-         FROM table1 
-         WHERE model_id ='B';
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+-----------+--------+
-|                         time|temperature|humidity|
-+-----------------------------+-----------+--------+
-|2024-11-27T16:38:00.000+08:00|       null|    35.1|
-|2024-11-27T16:39:00.000+08:00|       85.0|    35.3|
-|2024-11-27T16:40:00.000+08:00|       85.0|    null|
-|2024-11-27T16:41:00.000+08:00|       85.0|    null|
-|2024-11-27T16:42:00.000+08:00|       null|    35.2|
-|2024-11-27T16:43:00.000+08:00|       null|    null|
-|2024-11-27T16:44:00.000+08:00|       null|    null|
-+-----------------------------+-----------+--------+
-Total line number = 7
-It costs 0.106s
-```
-
-**Example 3:Multi device time aligned query**
-
-```SQL
-IoTDB> SELECT date_bin_gapfill(1d, TIME) AS a_time,
-              device_id,
-              AVG(temperature) AS avg_temp
-       FROM table1
-       WHERE TIME >= 2024-11-26 13:00:00
-         AND TIME <= 2024-11-27 17:00:00
-       GROUP BY 1, device_id FILL METHOD PREVIOUS; 
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+---------+--------+
-|                       a_time|device_id|avg_temp|
-+-----------------------------+---------+--------+
-|2024-11-26T08:00:00.000+08:00|      100|    90.0|
-|2024-11-27T08:00:00.000+08:00|      100|    90.0|
-|2024-11-26T08:00:00.000+08:00|      101|    90.0|
-|2024-11-27T08:00:00.000+08:00|      101|    85.0|
-+-----------------------------+---------+--------+
-Total line number = 4
-It costs 0.048s
-```
-
-### 3.3 Aggregation Query
-
-**Example**: Calculate the average, maximum, and minimum temperature for each `device_id` within a specific time range.
-
-```SQL
-IoTDB> SELECT device_id, AVG(temperature) as avg_temp, MAX(temperature) as max_temp, MIN(temperature) as min_temp
-         FROM table1
-         WHERE time >= 2024-11-26 00:00:00 AND time <= 2024-11-29 00:00:00
-         GROUP BY device_id;
-```
-
-**Result**:
-
-```SQL
-+---------+--------+--------+--------+
-|device_id|avg_temp|max_temp|min_temp|
-+---------+--------+--------+--------+
-|      100|    87.6|    90.0|    85.0|
-|      101|    85.0|    85.0|    85.0|
-+---------+--------+--------+--------+
-Total line number = 2
-It costs 0.278s
-```
-
-### 3.4 Latest Point Query
-
-**Example**: Retrieve the latest record for each `device_id`, including the temperature value and the timestamp of the last record.
-
-```SQL
-IoTDB> SELECT device_id,last(time),last_by(temperature,time) 
-         FROM table1 
-         GROUP BY device_id;
-```
-
-**Result**:
-
-```SQL
-+---------+-----------------------------+-----+
-|device_id|                        _col1|_col2|
-+---------+-----------------------------+-----+
-|      100|2024-11-29T18:30:00.000+08:00| 90.0|
-|      101|2024-11-30T14:30:00.000+08:00| 90.0|
-+---------+-----------------------------+-----+
-Total line number = 2
-It costs 0.090s
-```
-
-### 3.5 Downsampling Query
-
-**Example**: Group data by day and calculate the average temperature using `date_bin_gapfill` function.
-
-```SQL
-IoTDB> SELECT device_id,date_bin(1d ,time) as day_time, AVG(temperature) as avg_temp
-         FROM table1
-         WHERE time >= 2024-11-26 00:00:00 AND time <= 2024-11-30 00:00:00
-         GROUP BY device_id,date_bin(1d ,time);
-```
-
-**Result**:
-
-```SQL
-+---------+-----------------------------+--------+
-|device_id|                     day_time|avg_temp|
-+---------+-----------------------------+--------+
-|      100|2024-11-29T08:00:00.000+08:00|    90.0|
-|      100|2024-11-28T08:00:00.000+08:00|    86.0|
-|      100|2024-11-26T08:00:00.000+08:00|    90.0|
-|      101|2024-11-29T08:00:00.000+08:00|    85.0|
-|      101|2024-11-27T08:00:00.000+08:00|    85.0|
-+---------+-----------------------------+--------+
-Total line number = 5
-It costs 0.066s
-```
-###  3.6 Multi device downsampling alignment query
-
-#### 3.6.1 Sampling Frequency is the Same, but Time is Different
-
-**Table 1: Sampling Frequency: 1s**                                                           
-
-| Time         | device_id | temperature |
-| ------------ | --------- | ----------- |
-| 00:00:00.001 | d1        | 90.0        |
-| 00:00:01.002 | d1        | 85.0        |
-| 00:00:02.101 | d1        | 85.0        |
-| 00:00:03.201 | d1        | null        |
-| 00:00:04.105 | d1        | 90.0        |
-| 00:00:05.023 | d1        | 85.0        |
-| 00:00:06.129 | d1        | 90.0        |
-
-**Table 2: Sampling Frequency: 1s** 
-
-| Time         | device_id | humidity |
-| ------------ | --------- | -------- |
-| 00:00:00.003 | d1        | 35.1     |
-| 00:00:01.012 | d1        | 37.2     |
-| 00:00:02.031 | d1        | null     |
-| 00:00:03.134 | d1        | 35.2     |
-| 00:00:04.201 | d1        | 38.2     |
-| 00:00:05.091 | d1        | 35.4     |
-| 00:00:06.231 | d1        | 35.1     |
-
-**Example: Querying the downsampled data of table1:**
-
-```SQL
-IoTDB> SELECT date_bin_gapfill(1s, TIME) AS a_time,
-              first(temperature) AS a_value
-       FROM table1
-       WHERE device_id = 'd1'
-         AND TIME >= 2025-05-13 00:00:00.000
-         AND TIME <= 2025-05-13 00:00:07.000
-       GROUP BY 1 FILL METHOD PREVIOUS
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+
-|                       a_time|a_value|
-+-----------------------------+-------+
-|2025-05-13T00:00:00.000+08:00|   90.0|
-|2025-05-13T00:00:01.000+08:00|   85.0|
-|2025-05-13T00:00:02.000+08:00|   85.0|
-|2025-05-13T00:00:03.000+08:00|   85.0|
-|2025-05-13T00:00:04.000+08:00|   90.0|
-|2025-05-13T00:00:05.000+08:00|   85.0|
-|2025-05-13T00:00:06.000+08:00|   90.0|
-+-----------------------------+-------+
-```
-
-**Example: Querying the downsampled data of table2:**
-
-```SQL
-IoTDB> SELECT date_bin_gapfill(1s, TIME) AS b_time,
-              first(humidity) AS b_value
-       FROM table2
-       WHERE device_id = 'd1'
-         AND TIME >= 2025-05-13 00:00:00.000
-         AND TIME <= 2025-05-13 00:00:07.000
-       GROUP BY 1 FILL METHOD PREVIOUS
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+
-|                       b_time|b_value|
-+-----------------------------+-------+
-|2025-05-13T00:00:00.000+08:00|   35.1|
-|2025-05-13T00:00:01.000+08:00|   37.2|
-|2025-05-13T00:00:02.000+08:00|   37.2|
-|2025-05-13T00:00:03.000+08:00|   35.2|
-|2025-05-13T00:00:04.000+08:00|   38.2|
-|2025-05-13T00:00:05.000+08:00|   35.4|
-|2025-05-13T00:00:06.000+08:00|   35.1|
-+-----------------------------+-------+
-```
-
-**Example: Aligning multiple sequences by integer time:**
-
-```SQL
-IoTDB> SELECT time,
-              a_value,
-              b_value
-       FROM
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(temperature) AS a_value
-          FROM table1
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1 FILL METHOD PREVIOUS) A
-       JOIN
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(humidity) AS b_value
-          FROM table2
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1 FILL METHOD PREVIOUS) B 
-       USING (time)
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+-------+
-|                         time|a_value|b_value|
-+-----------------------------+-------+-------+
-|2025-05-13T00:00:00.000+08:00|   90.0|   35.1|
-|2025-05-13T00:00:01.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:02.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:03.000+08:00|   85.0|   35.2|
-|2025-05-13T00:00:04.000+08:00|   90.0|   38.2|
-|2025-05-13T00:00:05.000+08:00|   85.0|   35.4|
-|2025-05-13T00:00:06.000+08:00|   90.0|   35.1|
-+-----------------------------+-------+-------+
-```
-
-- **Retaining NULL Values**: When NULL values have special significance or when you wish to preserve the null values in the data, you can choose to omit FILL METHOD PREVIOUS to avoid filling in the gaps.
-**Example:**
-
-```SQL
-IoTDB> SELECT time,
-              a_value,
-              b_value
-       FROM
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(temperature) AS a_value
-          FROM table1
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1) A
-       JOIN
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(humidity) AS b_value
-          FROM table2
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1) B 
-       USING (time)
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+-------+
-|                         time|a_value|b_value|
-+-----------------------------+-------+-------+
-|2025-05-13T00:00:00.000+08:00|   90.0|   35.1|
-|2025-05-13T00:00:01.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:02.000+08:00|   85.0|   null|
-|2025-05-13T00:00:03.000+08:00|   null|   35.2|
-|2025-05-13T00:00:04.000+08:00|   90.0|   38.2|
-|2025-05-13T00:00:05.000+08:00|   85.0|   35.4|
-|2025-05-13T00:00:06.000+08:00|   90.0|   35.1|
-+-----------------------------+-------+-------+
-```
-#### 3.6.2 Different Sampling Frequencies, Different Times
-
-**Table 1: Sampling Frequency: 1s**                                                            
-
-| Time         | device_id | temperature |
-| ------------ | --------- | ----------- |
-| 00:00:00.001 | d1        | 90.0        |
-| 00:00:01.002 | d1        | 85.0        |
-| 00:00:02.101 | d1        | 85.0        |
-| 00:00:03.201 | d1        | null        |
-| 00:00:04.105 | d1        | 90.0        |
-| 00:00:05.023 | d1        | 85.0        |
-| 00:00:06.129 | d1        | 90.0        |
-
-**Table 3: Sampling Frequency: 2s**   
-
-| Time         | device_id | humidity |
-| ------------ | --------- | -------- |
-| 00:00:00.005 | d1        | 35.1     |
-| 00:00:02.106 | d1        | 37.2     |
-| 00:00:04.187 | d1        | null     |
-| 00:00:06.156 | d1        | 35.1     |
-
-**Example: Querying the downsampled data of table1:**
-
-```SQL
-IoTDB> SELECT date_bin_gapfill(1s, TIME) AS a_time,
-              first(temperature) AS a_value
-       FROM table1
-       WHERE device_id = 'd1'
-         AND TIME >= 2025-05-13 00:00:00.000
-         AND TIME <= 2025-05-13 00:00:07.000
-       GROUP BY 1 FILL METHOD PREVIOUS
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+
-|                       a_time|a_value|
-+-----------------------------+-------+
-|2025-05-13T00:00:00.000+08:00|   90.0|
-|2025-05-13T00:00:01.000+08:00|   85.0|
-|2025-05-13T00:00:02.000+08:00|   85.0|
-|2025-05-13T00:00:03.000+08:00|   85.0|
-|2025-05-13T00:00:04.000+08:00|   90.0|
-|2025-05-13T00:00:05.000+08:00|   85.0|
-|2025-05-13T00:00:06.000+08:00|   90.0|
-+-----------------------------+-------+
-```
-**Example: Querying the downsampled data of table3:**
-
-```SQL
-IoTDB> SELECT date_bin_gapfill(1s, TIME) AS c_time,
-              first(humidity) AS c_value
-       FROM table3
-       WHERE device_id = 'd1'
-         AND TIME >= 2025-05-13 00:00:00.000
-         AND TIME <= 2025-05-13 00:00:07.000
-       GROUP BY 1 FILL METHOD PREVIOUS
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+
-|                       c_time|c_value|
-+-----------------------------+-------+
-|2025-05-13T00:00:00.000+08:00|   35.1|
-|2025-05-13T00:00:01.000+08:00|   35.1|
-|2025-05-13T00:00:02.000+08:00|   37.2|
-|2025-05-13T00:00:03.000+08:00|   37.2|
-|2025-05-13T00:00:04.000+08:00|   37.2|
-|2025-05-13T00:00:05.000+08:00|   37.2|
-|2025-05-13T00:00:06.000+08:00|   35.1|
-+-----------------------------+-------+
-```
-
-**Example: Aligning multiple sequences by the higher sampling frequency:**
-
-```SQL
-IoTDB> SELECT time,
-              a_value,
-              c_value
-       FROM
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(temperature) AS a_value
-          FROM table1
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1 FILL METHOD PREVIOUS) A
-       JOIN
-         (SELECT date_bin_gapfill(1s, TIME) AS time,
-                 first(humidity) AS c_value
-          FROM table3
-          WHERE device_id = 'd1'
-            AND TIME >= 2025-05-13 00:00:00.000
-            AND TIME <= 2025-05-13 00:00:07.000
-          GROUP BY 1 FILL METHOD PREVIOUS) C 
-       USING (time)
-```
-
-**Result:**
-
-```SQL
-+-----------------------------+-------+-------+
-|                         time|a_value|c_value|
-+-----------------------------+-------+-------+
-|2025-05-13T00:00:00.000+08:00|   90.0|   35.1|
-|2025-05-13T00:00:01.000+08:00|   85.0|   35.1|
-|2025-05-13T00:00:02.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:03.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:04.000+08:00|   90.0|   37.2|
-|2025-05-13T00:00:05.000+08:00|   85.0|   37.2|
-|2025-05-13T00:00:06.000+08:00|   90.0|   35.1|
-+-----------------------------+-------+-------+
-```
-
-### 3.7 Missing Data Filling
-
-**Example**: Query the records within a specified time range where `device_id` is '100'. If there are missing data points, fill them using the previous non-null value.
-
-```SQL
-IoTDB> SELECT time, temperature, humidity  
-         FROM table1 
-         WHERE time >= 2024-11-26 00:00:00  and time <= 2024-11-30 11:00:00
-         AND region='East' AND plant_id='1001' AND device_id='101'
-         FILL METHOD PREVIOUS;
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+-----------+--------+
-|                         time|temperature|humidity|
-+-----------------------------+-----------+--------+
-|2024-11-27T16:38:00.000+08:00|       null|    35.1|
-|2024-11-27T16:39:00.000+08:00|       85.0|    35.3|
-|2024-11-27T16:40:00.000+08:00|       85.0|    35.3|
-|2024-11-27T16:41:00.000+08:00|       85.0|    35.3|
-|2024-11-27T16:42:00.000+08:00|       85.0|    35.2|
-|2024-11-27T16:43:00.000+08:00|       85.0|    35.2|
-|2024-11-27T16:44:00.000+08:00|       85.0|    35.2|
-+-----------------------------+-----------+--------+
-Total line number = 7
-It costs 0.101s
-```
-
-### 3.8 Sorting & Pagination
-
-**Example**: Query records from the table, sorting by `humidity` in descending order and placing null values (NULL) at the end. Skip the first 2 rows and return the next 8 rows.
-
-```SQL
-IoTDB> SELECT time, temperature, humidity
-         FROM table1
-         ORDER BY humidity desc NULLS LAST
-         OFFSET 2
-         LIMIT 10;
-```
-
-**Result**:
-
-```SQL
-+-----------------------------+-----------+--------+
-|                         time|temperature|humidity|
-+-----------------------------+-----------+--------+
-|2024-11-28T09:00:00.000+08:00|       null|    40.9|
-|2024-11-29T18:30:00.000+08:00|       90.0|    35.4|
-|2024-11-27T16:39:00.000+08:00|       85.0|    35.3|
-|2024-11-28T10:00:00.000+08:00|       85.0|    35.2|
-|2024-11-30T09:30:00.000+08:00|       90.0|    35.2|
-|2024-11-27T16:42:00.000+08:00|       null|    35.2|
-|2024-11-26T13:38:00.000+08:00|       90.0|    35.1|
-|2024-11-26T13:37:00.000+08:00|       90.0|    35.1|
-|2024-11-27T16:38:00.000+08:00|       null|    35.1|
-|2024-11-30T14:30:00.000+08:00|       90.0|    34.8|
-+-----------------------------+-----------+--------+
-Total line number = 10
-It costs 0.093s
-```
diff --git a/src/UserGuide/Master/Table/Basic-Concept/TTL-Delete-Data_timecho.md b/src/UserGuide/Master/Table/Basic-Concept/TTL-Delete-Data_timecho.md
deleted file mode 100644
index de696fa1..00000000
--- a/src/UserGuide/Master/Table/Basic-Concept/TTL-Delete-Data_timecho.md
+++ /dev/null
@@ -1,145 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# TTL Delete Data
-
-## 1. Overview
-
-Time-to-Live (TTL) is a mechanism for defining the lifespan of data in a database. In IoTDB, TTL allows setting table-level expiration policies, enabling the system to automatically delete outdated data periodically. This helps manage disk space efficiently, maintain high query performance, and reduce memory usage.
-
-TTL values are specified in milliseconds, and once data exceeds its defined lifespan, it becomes unavailable for queries and cannot be written to. However, the physical deletion of expired data occurs later during the compaction process. Note that changes to TTL settings can briefly impact the accessibility of data.
-
-**Notes:**
-
-1. TTL defines the expiration time of data in milliseconds, independent of the time precision configuration file.
-2. Modifying TTL settings can cause temporary variations in data accessibility.
-3. The system eventually removes expired data, though this process may involve some delay.。
-4. The TTL expiration check is based on the data point timestamp, not the write time.
-
-## 2. Set TTL
-
-In the table model, IoTDB’s TTL operates at the granularity of individual tables. You can set TTL directly on a table or at the database level. When TTL is configured at the database level, it serves as the default for new tables created within the database. However, each table can still have its own independent TTL settings.
-
-**Note:** Modifying the database-level TTL does not retroactively affect the TTL settings of existing tables.
-
-### 2.1 Set TTL for Tables
-
-If TTL is specified when creating a table using SQL, the table’s TTL takes precedence. Refer to [Table-Management](../Basic-Concept/Table-Management_timecho.md)for details.
-
-Example 1: Setting TTL during table creation:
-
-```SQL
-CREATE TABLE test3 ("site" string id, "temperature" int32) with (TTL=3600);
-```
-
-Example 2: Changing TTL for an existing table:
-
-```SQL
-ALTER TABLE tableB SET PROPERTIES TTL=3600;
-```
-
-**Example 3:** If TTL is not specified or set to the default value, it will inherit the database's TTL. By default, the database TTL is `'INF'` (infinite):
-
-```SQL
-CREATE TABLE test3 ("site" string id, "temperature" int32) with (TTL=DEFAULT);
-CREATE TABLE test3 ("site" string id, "temperature" int32);
-ALTER TABLE tableB set properties TTL=DEFAULT;
-```
-
-### 2.2 Set TTL for Databases
-
-Tables without explicit TTL settings inherit the TTL of their database. Refer to [Database-Management](../Basic-Concept/Database-Management_timecho.md)for details.
-
-Example 4: A database with TTL=3600000 creates tables inheriting this TTL:
-
-```SQL
-CREATE DATABASE db WITH (ttl=3600000);
-use db;
-CREATE TABLE test3 ("site" string id, "temperature" int32);
-```
-
-Example 5: A database without a TTL setting creates tables without TTL:
-
-```SQL
-CREATE DATABASE db;
-use db;
-CREATE TABLE test3 ("site" string id, "temperature" int32);
-```
-
-Example 6: Setting a table with no TTL explicitly (TTL=INF) in a database with a configured TTL:
-
-```SQL
-CREATE DATABASE db WITH (ttl=3600000);
-use db;
-CREATE TABLE test3 ("site" string id, "temperature" int32) with (ttl='INF');
-```
-
-## 3. Remove TTL
-
-To cancel a TTL setting, modify the table's TTL to 'INF'. Note that IoTDB does not currently support modifying the TTL of a database.
-
-```SQL
-ALTER TABLE tableB set properties TTL='INF';
-```
-
-## 4. View TTL Information
-
-Use the SHOW DATABASES and SHOW TABLES commands to view TTL details for databases and tables. Refer to [Database-Management](../Basic-Concept/Database-Management_timecho.md)、 [Table-Management](../Basic-Concept/Table-Management_timecho.md)for details.
-
-> Note: TTL settings in tree-model will also be shown.
-
-Example Output:
-
-```SQL
-IoTDB> show databases;
-+---------+-------+-----------------------+---------------------+---------------------+
-| Database|TTL(ms)|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|
-+---------+-------+-----------------------+---------------------+---------------------+
-|test_prop|    300|                      1|                    3|               100000|
-|    test2|    300|                      1|                    1|            604800000|
-+---------+-------+-----------------------+---------------------+---------------------+
-
-IoTDB> show databases details;
-+---------+-------+-----------------------+---------------------+---------------------+-----+
-| Database|TTL(ms)|SchemaReplicationFactor|DataReplicationFactor|TimePartitionInterval|Model|
-+---------+-------+-----------------------+---------------------+---------------------+-----+
-|test_prop|    300|                      1|                    3|               100000|TABLE|
-|    test2|    300|                      1|                    1|            604800000| TREE|
-+---------+-------+-----------------------+---------------------+---------------------+-----+
-IoTDB> show tables;
-+---------+-------+
-|TableName|TTL(ms)|
-+---------+-------+
-|    grass|   1000|
-|   bamboo|    300|
-|   flower|    INF|
-+---------+-------+
-
-IoTDB> show tables details;
-+---------+-------+----------+
-|TableName|TTL(ms)|    Status|
-+---------+-------+----------+
-|     bean|    300|PRE_CREATE|
-|    grass|   1000|     USING|
-|   bamboo|    300|     USING|
-|   flower|    INF|     USING|
-+---------+-------+----------+
-```
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Basic-Concept/Table-Management_timecho.md b/src/UserGuide/Master/Table/Basic-Concept/Table-Management_timecho.md
deleted file mode 100644
index f2e1bb2c..00000000
--- a/src/UserGuide/Master/Table/Basic-Concept/Table-Management_timecho.md
+++ /dev/null
@@ -1,321 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Table Management
-
-Before starting to use the table management functionality, we recommend familiarizing yourself with the following related background knowledge for a better understanding and application of the table management features:
-* [Timeseries Data Model](../Background-knowledge/Navigating_Time_Series_Data_timecho.md): Understand the basic concepts and characteristics of time series data to establish a foundation for data modeling.
-* [Modeling Scheme Design](../Background-knowledge/Data-Model-and-Terminology_timecho.md): Master the IoTDB time series model and its applicable scenarios to provide a design basis for table management.
-
-## 1. Table Management
-
-### 1.1 Create a Table
-
-#### 1.1.1 Manually create a table with CREATE
-
-Manually create a table within the current or specified database.The format is "database name. table name".
-
-**Syntax:**
-
-```SQL
-createTableStatement
-    : CREATE TABLE (IF NOT EXISTS)? qualifiedName
-        '(' (columnDefinition (',' columnDefinition)*)? ')'
-        charsetDesc?
-        comment?
-        (WITH properties)?
-     ;
-
-charsetDesc
-    : DEFAULT? (CHAR SET | CHARSET | CHARACTER SET) EQ? identifierOrString
-    ;
-
-columnDefinition
-    : identifier columnCategory=(TAG | ATTRIBUTE | TIME) charsetName? comment?
-    | identifier type (columnCategory=(TAG | ATTRIBUTE | TIME | FIELD))? charsetName? comment?
-    ;
-
-charsetName
-    : CHAR SET identifier
-    | CHARSET identifier
-    | CHARACTER SET identifier
-    ;
-
-comment
-    : COMMENT string
-    ;
-```
-
-**Note:**
-
-1. When creating a table, you do not need to specify a time column. IoTDB automatically adds a column named "time" and places it as the first column. All other columns can be added by enabling the `enable_auto_create_schema` option in the database configuration, or through the session interface for automatic creation or by using table modification statements.
-2. Since version V2.0.8.2, tables support custom naming of the time column during creation. The order of the custom time column in the table is determined by the order in the creation SQL. The related constraints are as follows:
-
-   - When the column category is set to TIME, the data type must be TIMESTAMP.
-   - Each table allows at most one time column (columnCategory = TIME).
-   - If no time column is explicitly defined, no other column can use "time" as its name to avoid conflicts with the system's default time column naming.
-3. The column category can be omitted and defaults to FIELD. When the column category is TAG or ATTRIBUTE, the data type must be STRING (can be omitted).
-4. The TTL of a table defaults to the TTL of its database. If the default value is used, this attribute can be omitted or set to default.
-5. <TABLE_NAME> table name has the following characteristics:
-
-   - It is case-insensitive and, upon successful creation, is uniformly displayed in lowercase.
-   - The name can include special characters, such as `~!`"%`, etc.
-   - Table names containing special characters or Chinese characters must be enclosed in double quotation marks ("") during creation.
-
-      - Note: In SQL, special characters or Chinese table names must be enclosed in double quotes. In the native API, no additional quotes are needed; otherwise, the table name will include the quote characters.
-   - When naming a table, the outermost double quotation marks (`""`) will not appear in the actual table name.
-   - ```sql
-      -- In SQL
-      "a""b" --> a"b
-      """""" --> ""
-      -- In API
-      "a""b" --> "a""b"
-     ```
-6. columnDefinition column names have the same characteristics as table names and can include the special character `.`.
-7. COMMENT adds a comment to the table.
-
-**Examples:** 
-
-```SQL
-CREATE TABLE table1 (
-  time TIMESTAMP TIME,
-  region STRING TAG,
-  plant_id STRING TAG,
-  device_id STRING TAG,
-  model_id STRING ATTRIBUTE,
-  maintenance STRING ATTRIBUTE COMMENT 'maintenance',
-  temperature FLOAT FIELD COMMENT 'temperature',
-  humidity FLOAT FIELD COMMENT 'humidity',
-  status Boolean FIELD COMMENT 'status',
-  arrival_time TIMESTAMP FIELD COMMENT 'arrival_time'
-) COMMENT 'table1' WITH (TTL=31536000000);
-```
-
-Note: If your terminal does not support multi-line paste (e.g., Windows CMD), please reformat the SQL statement into a single line before execution.
-
-### 1.2 View Tables
-
-Used to view all tables and their properties in the current or a specified database.
-
-**Syntax:**
-
-```SQL
-SHOW TABLES (DETAILS)? ((FROM | IN) database_name)?
-```
-
-**Note:**
-
-1. If the `FROM` or `IN` clause is specified, the command lists all tables in the specified database.
-2. If neither `FROM` nor `IN` is specified, the command lists all tables in the currently selected database. If no database is selected (`USE` statement not executed), an error is returned.
-3. When the `DETAILS` option is used, the command shows the current state of each table:
-   1. `USING`: The table is available and operational.
-   2. `PRE_CREATE`: The table is in the process of being created or the creation has failed; the table is not available.
-   3. `PRE_DELETE`: The table is in the process of being deleted or the deletion has failed; the table will remain permanently unavailable.
-
-**Examples:**
-
-```sql
-show tables details from database1;
-```
-```shell
-+---------------+-----------+------+-------+
-|      TableName|    TTL(ms)|Status|Comment|
-+---------------+-----------+------+-------+
-|         table1|31536000000| USING| table1|
-+---------------+-----------+------+-------+
-```
-
-### 1.3 View Table Columns
-
-Used to view column names, data types, categories, and states of a table.
-
-**Syntax:**
-
-```SQL
-(DESC | DESCRIBE) <TABLE_NAME> (DETAILS)?
-```
-
-**Note:** If the `DETAILS` option is specified, detailed state information of the columns is displayed:
-
-- `USING`: The column is in normal use.
-- `PRE_DELETE`: The column is being deleted or the deletion has failed; it is permanently unavailable.
-
-
-
-**Examples:** 
-
-```sql
-desc table1 details;
-```
-```shell
-+------------+---------+---------+------+------------+
-|  ColumnName| DataType| Category|Status|     Comment|
-+------------+---------+---------+------+------------+
-|        time|TIMESTAMP|     TIME| USING|        null|
-|      region|   STRING|      TAG| USING|        null|
-|    plant_id|   STRING|      TAG| USING|        null|
-|   device_id|   STRING|      TAG| USING|        null|
-|    model_id|   STRING|ATTRIBUTE| USING|        null|
-| maintenance|   STRING|ATTRIBUTE| USING| maintenance|
-| temperature|    FLOAT|    FIELD| USING| temperature|
-|    humidity|    FLOAT|    FIELD| USING|    humidity|
-|      status|  BOOLEAN|    FIELD| USING|      status|
-|arrival_time|TIMESTAMP|    FIELD| USING|arrival_time|
-+------------+---------+---------+------+------------+
-```
-
-### 1.4 View Table Creation Statement
-
-Retrieves the complete definition statement of a table or view under the table model. This feature automatically fills in all default values that were omitted during creation, so the displayed statement may differ from the original CREATE statement.
-
-> This feature is supported starting from v2.0.5.
-
-**Syntax:**
-
-```SQL
-SHOW CREATE TABLE <TABLE_NAME>
-```
-
-**Note::**
-
-1. This statement does not support queries on system tables.
-
-**Example:**
-
-```SQL
-show create table table1;
-```
-```shell
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| Table|                                                                                                                                                                                                                                                                     Create Table|
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-|table1|CREATE TABLE "table1" ("region" STRING TAG,"plant_id" STRING TAG,"device_id" STRING TAG,"model_id" STRING ATTRIBUTE,"maintenance" STRING ATTRIBUTE,"temperature" FLOAT FIELD,"humidity" FLOAT FIELD,"status" BOOLEAN FIELD,"arrival_time" TIMESTAMP FIELD) WITH (ttl=31536000000)|
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-Total line number = 1
-```
-
-
-### 1.5 Update Tables
-
-Used to update a table, including adding or deleting columns, modify column type (V2.0.8.2) and configuring table properties.
-
-**Syntax:**
-
-```SQL
-#addColumn;
-ALTER TABLE (IF EXISTS)? tableName=qualifiedName ADD COLUMN (IF NOT EXISTS)? column=columnDefinition;  
-#dropColumn;              
-| ALTER TABLE (IF EXISTS)? tableName=qualifiedName DROP COLUMN (IF EXISTS)? column=identifier;   
-#setTableProperties;                  
-// set TTL can use this;
-| ALTER TABLE (IF EXISTS)? tableName=qualifiedName SET PROPERTIES propertyAssignments;                
-| COMMENT ON TABLE tableName=qualifiedName IS 'table_comment';
-| COMMENT ON COLUMN tableName.column IS 'column_comment';
-#changeColumndatatype;
-| ALTER TABLE (IF EXISTS)? tableName=qualifiedName ALTER COLUMN (IF EXISTS)? column=identifier SET DATA TYPE new_type=type;
-```
-
-**Note::**
-
-1. The `SET PROPERTIES` operation currently only supports configuring the `TTL` property of a table
-2. The delete column function only supports deleting the ATTRIBUTE and FILD columns, and the TAG column does not support deletion.
-3. The modified comment will overwrite the original comment. If null is specified, the previous comment will be erased.
-4. Since version V2.0.8.2, modifying the data type of a column is supported. Currently, only columns with Category type FIELD can be modified.
-
-   * If the time series is concurrently deleted during the modification process, an error will be reported.
-   * The new data type must be compatible with the original type. The specific compatibility is shown in the following table:
-
-**Example:** 
-
-add column
-```SQL
-ALTER TABLE table1 ADD COLUMN IF NOT EXISTS a TAG COMMENT 'a';
-ALTER TABLE table1 ADD COLUMN IF NOT EXISTS b FLOAT FIELD COMMENT 'b';
-```
-set TTL
-```SQL
-ALTER TABLE table1 set properties TTL=3600; 
-```
-set comment
-```SQL
-COMMENT ON TABLE table1 IS 'table1';
-COMMENT ON COLUMN table1.a IS null;
-```
-alter column datatype
-```SQL
-ALTER TABLE table1 ALTER COLUMN IF EXISTS b SET DATA TYPE DOUBLE;
-```
-
-### 1.6 Delete Tables
-
-Used to delete a table.
-
-**Syntax:**
-
-```SQL
-DROP TABLE (IF EXISTS)? <TABLE_NAME>
-```
-
-**Examples:**
-
-```SQL
-DROP TABLE table1;
-DROP TABLE database1.table1;
-```
-
-## 1.7 Metadata Query
-Under the table model, the **total number of measurement points** equals the sum of measurement points of all tables. Currently, the number of measurement points in a single table can be calculated with the formula:
-**Measurement points per single table = Number of devices × Number of field columns**.
-Support for directly querying measurement points under the table model via SQL statements will be available in future updates. Please stay tuned.
-
-Take `table1` in the [sample data](../Reference/Sample-Data.md) as an example.
-
-In the organizational structure of this sample, there are three tag columns (`region`, `plant_id`, `device_id`) and four field columns (`temperature`, `humidity`, `status`, `arrival_time`).
-
-A unique device is identified by the combination of all tag columns. Each unique combination of `region` + `plant_id` + `device_id` represents an independent device.
-
-The sample data defines 2 regions: Beijing and Shanghai. Details are as follows:
-- **Beijing**: 1 factory with ID 1001
-   - 2 devices under this factory: IDs 100 and 101
-- **Shanghai**: 2 factories with IDs 3001 and 3002
-   - Factory 3001: 2 devices (IDs 100, 101)
-   - Factory 3002: 2 devices (IDs 100, 101)
-
-In total, there are 6 unique tag combinations in the table, corresponding to 6 independent devices.
-
-### Complete Calculation Example for Single-Table Measurement Points
-1. Query the number of devices
-```sql
-IoTDB:database1> count devices from table1;
-+--------------+
-|count(devices)|
-+--------------+
-|             6|
-+--------------+
-Total line number = 1
-It costs 0.019s
-```
-
-2. Calculate the total measurement points of the single table
-- Number of devices: 6
-- Number of field columns: 4
-- Total measurement points of the table: **6 × 4 = 24**
-
diff --git a/src/UserGuide/Master/Table/Basic-Concept/Write-Updata-Data_timecho.md b/src/UserGuide/Master/Table/Basic-Concept/Write-Updata-Data_timecho.md
deleted file mode 100644
index 38436f17..00000000
--- a/src/UserGuide/Master/Table/Basic-Concept/Write-Updata-Data_timecho.md
+++ /dev/null
@@ -1,398 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Write & Update Data
-
-## 1. SQL Insertion
-
-### 1.1 Syntax
-
-In IoTDB, data insertion follows the general syntax:
-
-```SQL
-INSERT INTO <TABLE_NAME> [(COLUMN_NAME[, COLUMN_NAME]*)]? VALUES (COLUMN_VALUE[, COLUMN_VALUE]*)
-```
-
-**Basic Constraints**:
-
-1. Tables cannot be automatically created using `INSERT` statements.
-2. Columns not specified in the `INSERT` statement will automatically be filled with `null`.
-3. If no timestamp is provided, the system will use the current time (`now()`).
-4. If a column value does not exist for the identified device, the insertion will overwrite any existing `null` values with the new data.
-5. If a column value already exists for the identified device, a new insertion will update the column with the new value.
-6. Writing duplicate timestamps will update the values in the columns corresponding to the original timestamps.
-7. When an INSERT statement does not specify column names (e.g., INSERT INTO table VALUES (...)), the values in VALUES must strictly follow the physical order of columns in the table (this order can be checked via the DESC table command).
-
-Since attributes generally do not change over time, it is recommended to update attribute values using the `UPDATE` statement described below,Please refer to the following [Data Update](#2-data-updates).
-
-<div style="text-align: center;">
-  <img src="/img/%E6%95%B0%E6%8D%AE%E5%86%99%E5%85%A5%E8%8B%B1%E6%96%87.png" alt="" style="width: 70%;"/>
-</div>
-
-
-### 1.2 Specified Column Insertion
-
-It is possible to insert data for specific columns. Columns not specified will remain `null`.
-
-**Example:**
-
-```SQL
-INSERT INTO table1(region, plant_id, device_id, time, temperature, humidity) VALUES ('Hamburg', '1001', '100', '2025-11-26 13:37:00', 90.0, 35.1);
-
-INSERT INTO table1(region, plant_id, device_id, time, temperature) VALUES ('Hamburg', '1001', '100', '2025-11-26 13:38:00', 91.0);
-```
-
-### 1.3 Null Value Insertion
-
-You can explicitly set `null` values for tag columns, attribute columns, and field columns.
-
-**Example**:
-
-Equivalent to the above partial column insertion.
-
-```SQL
-# Equivalent to the example above;
-INSERT INTO table1(region, plant_id, device_id, model_id, maintenance, time, temperature, humidity) VALUES ('Hamburg', '1001', '100', null, null, '2025-11-26 13:37:00', 90.0, 35.1);
-
-INSERT INTO table1(region, plant_id, device_id, model_id, maintenance, time, temperature, humidity) VALUES ('Hamburg', '1001', '100', null, null, '2025-11-26 13:38:00', 91.0, null);
-```
-
-If no tag columns are included, the system will automatically create a device with all tag column values set to `null`.
-
-> **Note:** This operation will not only automatically populate existing tag columns in the table with `null` values but will also populate any newly added tag columns with `null` values in the future.
-
-### 1.4 Multi-Row Insertion
-
-IoTDB supports inserting multiple rows of data in a single statement to improve efficiency.
-
-**Example**:
-
-```SQL
-INSERT INTO table1
-VALUES 
-('2025-11-26 13:37:00', 'Frankfurt', '1001', '100', 'A', '180', 90.0, 35.1, true, '2025-11-26 13:37:34'),
-('2025-11-26 13:38:00', 'Frankfurt', '1001', '100', 'A', '180', 90.0, 35.1, true, '2025-11-26 13:38:25');
-
-INSERT INTO table1
-(region, plant_id, device_id, model_id, maintenance, time, temperature, humidity, status, arrival_time) 
-VALUES 
-('Frankfurt', '1001', '100', 'A', '180', '2025-11-26 13:37:00', 90.0, 35.1, true, '2025-11-26 13:37:34'),
-('Frankfurt', '1001', '100', 'A', '180', '2025-11-26 13:38:00', 90.0, 35.1, true, '2025-11-26 13:38:25');
-```
-
-#### Notes
-
-- Referencing non-existent columns in SQL will result in an error code `COLUMN_NOT_EXIST(616)`.
-- Data type mismatches between the insertion data and the column's data type will result in an error code `DATA_TYPE_MISMATCH(614)`.
-
-
-### 1.5 Query Write-back
-
-The IoTDB table model supports the **append-only query write-back** feature, implemented via the `INSERT INTO QUERY` statement. This feature allows writing the results of a query into an **existing** table.
-
-> ​**Note**​: This feature is available starting from version V2.0.6.
-
-#### 1.5.1 Syntax Definition
-
-sql
-
-```sql
-INSERT INTO table_name [ ( column [, ... ] ) ] query
-```
-
-The **query** component supports three formats, which are illustrated with examples below.
-
-Using the [sample data](../Reference/Sample-Data.md) as the data source, first create the target table:
-
-sql
-
-```sql
-CREATE TABLE target_table ( time TIMESTAMP TIME, region STRING TAG, device_id STRING TAG, temperature FLOAT FIELD );
-Msg: The statement is executed successfully.
-```
-
-1. Write-back via Standard Query Statement
-
-The `query` part is a direct `select ... from ...` query.
-
-​**Example**​: Use a standard query statement to write the `time`, `region`, `device_id`, and `temperature` data of the Beijing region from `table1` into `target_table`.
-
-sql
-
-```sql
-insert into target_table select time,region,device_id,temperature from table1 where region = 'Beijing';
-Msg: The statement is executed successfully.
-```
-```sql
-select * from target_table where region='Beijing';
-```
-```shell
-+-----------------------------+--------+-----------+-------------+
-|                         time|  region|  device_id|  temperature|
-+-----------------------------+--------+-----------+-------------+
-|2024-11-26T13:37:00.000+08:00| Beijing|        100|         90.0|
-|2024-11-26T13:38:00.000+08:00| Beijing|        100|         90.0|
-|2024-11-27T16:38:00.000+08:00| Beijing|        101|         null|
-|2024-11-27T16:39:00.000+08:00| Beijing|        101|         85.0|
-|2024-11-27T16:40:00.000+08:00| Beijing|        101|         85.0|
-|2024-11-27T16:41:00.000+08:00| Beijing|        101|         85.0|
-|2024-11-27T16:42:00.000+08:00| Beijing|        101|         null|
-|2024-11-27T16:43:00.000+08:00| Beijing|        101|         null|
-|2024-11-27T16:44:00.000+08:00| Beijing|        101|         null|
-+-----------------------------+--------+-----------+-------------+
-Total line number = 9
-It costs 0.029s
-```
-
-2. Write-back via Table Reference Query
-
-The `query` part uses the table reference syntax `table source_table`.
-
-​**Example**​: Use a table reference query to write data from `table3` into `target_table`.
-
-sql
-
-```sql
-insert into target_table(time,device_id,temperature) table table3;
-Msg: The statement is executed successfully.
-```
-```sql
-select * from target_table where region is null;
-```
-```shell 
-+-----------------------------+------+-----------+-------------+
-|                         time|region|  device_id|  temperature|
-+-----------------------------+------+-----------+-------------+
-|2025-05-13T00:00:00.001+08:00|  null|         d1|         90.0|
-|2025-05-13T00:00:01.002+08:00|  null|         d1|         85.0|
-|2025-05-13T00:00:02.101+08:00|  null|         d1|         85.0|
-|2025-05-13T00:00:03.201+08:00|  null|         d1|         null|
-|2025-05-13T00:00:04.105+08:00|  null|         d1|         90.0|
-|2025-05-13T00:00:05.023+08:00|  null|         d1|         85.0|
-|2025-05-13T00:00:06.129+08:00|  null|         d1|         90.0|
-+-----------------------------+------+-----------+-------------+
-Total line number = 7
-It costs 0.015s
-```
-
-3. Write-back via Subquery
-
-The `query` part is a parenthesized subquery.
-
-​**Example**​: Use a subquery to write the `time`, `region`, `device_id`, and `temperature` data from `table1` whose timestamps match the records of the Shanghai region in `table2` into `target_table`.
-
-sql
-
-```sql
-insert into target_table (select t1.time, t1.region as region, t1.device_id as device_id, t1.temperature as temperature from table1 t1 where t1.time in (select t2.time from table2 t2 where t2.region = 'Shanghai'));
-Msg: The statement is executed successfully.
-```
-```sql
-select * from target_table where region = 'Shanghai';
-```
-```shell
-+-----------------------------+---------+-----------+-------------+
-|                         time|   region|  device_id|  temperature|
-+-----------------------------+---------+-----------+-------------+
-|2024-11-28T08:00:00.000+08:00| Shanghai|        100|         85.0|
-|2024-11-29T11:00:00.000+08:00| Shanghai|        100|         null|
-+-----------------------------+---------+-----------+-------------+
-Total line number = 2
-It costs 0.014s
-```
-
-#### 1.5.2 Notes
-
-* The source table in the `query` and the target table `table_name` are allowed to be the same table, e.g., `INSERT INTO testtb SELECT * FROM testtb`.
-* The target table ​**must already exist**​; otherwise, the error message `550: Table 'xxx.xxx' does not exist` will be thrown.
-* The number and types of query result columns must exactly match those of the target table. Object type is currently not supported, and no implicit type conversion is supported. If types mismatch, the error `701: Insert query has mismatched column types` will be raised.
-* You can specify a subset of columns in the target table, provided the following rules are met:
-  * The timestamp column must be included; otherwise, the error message `701: time column can not be null` will be thrown.
-  * At least one **FIELD** column must be included; otherwise, the error message `701: No Field column present` will be thrown.
-  * **TAG** columns are optional.
-  * The number of specified columns can be less than that of the target table. Missing columns will be automatically filled with `NULL` values.
-* For Java applications, the `INSERT INTO QUERY` statement can be executed using the [executeNonQueryStatement](../API/Programming-Java-Native-API_timecho.md#_3-1-itablesession-interface) method.
-* For REST API access, the `INSERT INTO QUERY` statement can be executed via the [/rest/table/v1/nonQuery](../API/RestAPI-V1_timecho.md#_3-3-non-query-interface) endpoint.
-* `INSERT INTO QUERY` does **not** support the `EXPLAIN` and `EXPLAIN ANALYZE` commands.
-* To execute the query write-back statement successfully, users must have the following permissions:
-  * The `SELECT` permission on the source tables involved in the query.
-  * The `WRITE` permission on the target table.
-  * For more details about user permissions, refer to [Authority Management](../User-Manual/Authority-Management_timecho.md).
-
-  
-### 1.6 Writing Object Type
-
-To avoid oversized Object write requests, values of **Object** type can be split into segments and written sequentially. In SQL, the `to_object(isEOF, offset, content)` function must be used for value insertion.
-
-> Supported since V2.0.8
-
-**Syntax:**
-
-```SQL
-INSERT INTO tableName(time, columnName) VALUES(timeValue, TO_OBJECT(isEOF, offset, content));
-```  
-
-**Parameters:**
-
-| Name    | Data Type          | Description                                                                 |
-|---------|--------------------|-----------------------------------------------------------------------------|
-| isEOF   | BOOLEAN            | Whether the current write contains the last segment of the Object          |
-| offset  | INT64              | Starting offset of the current segment within the Object                   |
-| content | Hexadecimal (HEX)  | Content of the current segment                                             |
-
-**Examples:**
-
-Add an Object-type column `s1` to table `table1`:
-
-```SQL
-ALTER TABLE table1 ADD COLUMN IF NOT EXISTS s1 OBJECT FIELD COMMENT 'object type';
-```
-
-1. **Non-segmented write**
-
-```SQL
-INSERT INTO table1(time, device_id, s1) VALUES(NOW(), 'tag1', TO_OBJECT(TRUE, 0, X'696F746462'));
-```
-
-2. **Segmented write**
-
-```SQL
--- First write: TO_OBJECT(FALSE, 0, X'696F');
-INSERT INTO table1(time, device_id, s1) VALUES(1, 'tag1', TO_OBJECT(FALSE, 0, X'696F'));
-
--- Second write: TO_OBJECT(FALSE, 2, X'7464');
-INSERT INTO table1(time, device_id, s1) VALUES(1, 'tag1', TO_OBJECT(FALSE, 2, X'7464'));
-
--- Third write: TO_OBJECT(TRUE, 4, X'62');
-INSERT INTO table1(time, device_id, s1) VALUES(1, 'tag1', TO_OBJECT(TRUE, 4, X'62'));
-```
-
-**Notes:**
-
-1. If only partial segments of an Object are written, querying the column will return `NULL`. Data becomes accessible only after all segments are successfully written.
-2. During segmented writes, if the `offset` of the current write does not match the current size of the Object, the write operation will fail.
-3. If `offset=0` is used after partial writes, the existing content will be overwritten with new data.
-
-
-## 2. Schema-less Writing
-
-When performing data writing through Session, IoTDB supports schema-less writing: there is no need to manually create tables beforehand. The system automatically constructs the table structure based on the information in the write request, and then directly executes the data writing operation.
-
-**Example:**
-
-```Java
-try (ITableSession session =
-    new TableSessionBuilder()
-        .nodeUrls(Collections.singletonList("127.0.0.1:6667"))
-        .username("root")
-        .password("root")
-        .build()) {
-
-  session.executeNonQueryStatement("CREATE DATABASE db1");
-  session.executeNonQueryStatement("use db1");
-
-  // Insert data without manually creating the table
-  List<String> columnNameList =
-      Arrays.asList("region_id", "plant_id", "device_id", "model", "temperature", "humidity");
-  List<TSDataType> dataTypeList =
-      Arrays.asList(
-          TSDataType.STRING,
-          TSDataType.STRING,
-          TSDataType.STRING,
-          TSDataType.STRING,
-          TSDataType.FLOAT,
-          TSDataType.DOUBLE);
-  List<ColumnCategory> columnTypeList =
-      new ArrayList<>(
-          Arrays.asList(
-              ColumnCategory.TAG,
-              ColumnCategory.TAG,
-              ColumnCategory.TAG,
-              ColumnCategory.ATTRIBUTE,
-              ColumnCategory.FIELD,
-              ColumnCategory.FIELD));
-  Tablet tablet = new Tablet("table1", columnNameList, dataTypeList, columnTypeList, 100);
-  for (long timestamp = 0; timestamp < 100; timestamp++) {
-    int rowIndex = tablet.getRowSize();
-    tablet.addTimestamp(rowIndex, timestamp);
-    tablet.addValue("region_id", rowIndex, "1");
-    tablet.addValue("plant_id", rowIndex, "5");
-    tablet.addValue("device_id", rowIndex, "3");
-    tablet.addValue("model", rowIndex, "A");
-    tablet.addValue("temperature", rowIndex, 37.6F);
-    tablet.addValue("humidity", rowIndex, 111.1);
-    if (tablet.getRowSize() == tablet.getMaxRowNumber()) {
-      session.insert(tablet);
-      tablet.reset();
-    }
-  }
-  if (tablet.getRowSize() != 0) {
-    session.insert(tablet);
-    tablet.reset();
-  }
-}
-```
-
-After execution, you can verify the table creation using the following command:
-
-```SQL
-desc table1;
-```
-```shell
-+-----------+---------+-----------+
-| ColumnName| DataType|   Category|
-+-----------+---------+-----------+
-|       time|TIMESTAMP|       TIME|
-|  region_id|   STRING|        TAG|
-|   plant_id|   STRING|        TAG|
-|  device_id|   STRING|        TAG|
-|      model|   STRING|  ATTRIBUTE|
-|temperature|    FLOAT|      FIELD|
-|   humidity|   DOUBLE|      FIELD|
-+-----------+---------+-----------+
-```
-
-
-## 3. Data Updates
-
-### 3.1 Syntax
-
-```SQL
-UPDATE <TABLE_NAME> SET updateAssignment (',' updateAssignment)* (WHERE where=booleanExpression)?
-
-updateAssignment
-    : identifier EQ expression
-    ;
-```
-
-**Note:**
-
-- Updates are allowed only on `ATTRIBUTE` columns.
-- `WHERE` conditions:
-  - Can only include `TAG` and `ATTRIBUTE` columns; `FIELD` and `TIME` columns are not allowed.
-  - Aggregation functions are not supported.
-- The result of the `SET` assignment expression must be a `string` type and follow the same constraints as the `WHERE` clause.
-
-**Example**:
-
-```SQL
-update table1 set b = a where substring(a, 1, 1) like '%';
-```
diff --git a/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_Upgrade_timecho.md b/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_Upgrade_timecho.md
deleted file mode 100644
index 31a27cfb..00000000
--- a/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_Upgrade_timecho.md
+++ /dev/null
@@ -1,290 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# AINode Deployment
-
-## 1. AINode Introduction
-
-### 1.1 Capability Introduction
-
-AINode is the third type of endogenous node provided by TimechoDB after ConfigNode and DataNode. By interacting with the DataNodes and ConfigNodes of an TimechoDB cluster, this node extends the capability for machine learning analysis on time series. AINode integrates model management, training, and inference within the database engine. It supports performing time series analysis tasks on specified time series data using registered models through simple SQL statements and also supports r [...]
-
-### 1.2 Deployment Modes
-
-AINode is an additional component outside the TimechoDB cluster and is deployed using a separate installation package.
-
-<div >
-    <img src="/img/ainode-deployment-upgrade-timecho-1-en.png" alt="" style="width: 45%;"/>
-    <img src="/img/ainode-deployment-upgrade-timecho-2-en.png" alt="" style="width: 45%;"/>
-</div>
-
-## 2. Installation Preparation
-
-### 2.1 Installation Package Acquisition
-
-The key directory structure after extracting the AINode installation package (`timechodb-<version>-ainode-bin.zip`) is as follows:
-
-| Directory | Type | Description |
-| :--- | :--- | :--- |
-| lib | Folder | Executable programs and dependencies for AINode |
-| sbin | Folder | Operation scripts for AINode, used to start or stop AINode |
-| conf | Folder | Configuration files and version declaration file for AINode |
-
-### 2.2 Pre-installation Verification
-
-To ensure the AINode installation package you obtained is complete and correct, it is recommended to perform an SHA512 verification before installation and deployment.
-
-**Preparation:**
-
-- Obtain the official SHA512 checksum: Please contact Timecho staff.
-
-**Verification Steps (using Linux as an example):**
-
-1. Open a terminal, navigate to the directory containing the installation package (e.g., `/data/ainode`):
-
-```bash
-cd /data/ainode
-```
-
-2. Execute the following command to calculate the hash value:
-
-```bash
-sha512sum timechodb-{version}-ainode-bin.zip
-```
-   
-3. The terminal will output the result (left side is the SHA512 checksum, right side is the filename):
-
-```SQL
-(base) root@hadoop@1:/data/ainode (0.664s)
-sha512sum timechodb-2.0.6.1-ainode-bin.zip
-4d5a6a64935b4f0459bc9ed214c4563aa7a6a5941024336e9416212424707f27bdfdfc70f4c528b51b812687d660014adc1b8add699498ea67ff17c7e619a6f0 timechodb-2.0.6.1-ainode-bin.zip
-```
-
-4. Compare the output with the official SHA512 checksum. If they match, you can proceed with the AINode installation and deployment steps below.
-
-**Notes:**
-
-- If the verification results do not match, please contact Timecho staff to obtain a new installation package.
-- If you encounter a "file not found" prompt during verification, check if the file path is correct or if the installation package was downloaded completely.
-
-### 2.3 Environment Requirements
-
-- Recommended operating environment: Linux, macOS.
-- TimechoDB Version: >= V2.0.8.
-
-#### 2.3.1 Resource Configuration Recommendations
-
-> Note: The resource configuration recommendations in this section apply only to **model inference tasks**. Guidelines for model training tasks will be provided in subsequent releases.
-
-The following are baseline resource configurations for model inference running on a single NVIDIA RTX 4090 (24 GB VRAM). For model inference on AINode, overall throughput can be improved by horizontally scaling the number of GPUs. It is generally recommended to deploy servers with 1, 2, 4 or 8 GPUs.
-
-Specifications of inference tasks used in benchmark tests:
-- **Univariate inference**: Historical sequence length: 2880, prediction length: 720
-- **Covariate inference**: Historical sequence length: 2880, prediction length: 720, with 20 known covariates
-
-| Number of GPUs (NVIDIA 4090, 24 GB VRAM) | Recommended CPU Cores | Recommended Memory (GB) | Supported QPS for Univariate Inference | Supported QPS for Covariate Inference |
-|------------------------------------------|-----------------------|-------------------------|-----------------------------------------|---------------------------------------|
-| 1 GPU                                    | 16 cores              | 24 GB                   | 100                                     | 10                                    |
-| 2 GPUs                                   | 32 cores              | 48 GB                   | 200                                     | 20                                    |
-| 4 GPUs                                   | 64 cores              | 96 GB                   | 400                                     | 40                                    |
-| 8 GPUs                                   | 128 cores             | 192 GB                  | 800                                     | 80                                    |
-
-**Notes**:
-- The CPU and memory configurations above follow this general rule: allocate 16 CPU cores per GPU, and set system memory equal to GPU VRAM at a ratio of 1:1.
-- The throughput figures are benchmark references. Actual performance may vary depending on model type, data complexity and deployment environment.
-- The throughput of univariate and covariate inference shall be evaluated separately as required, and the two values cannot be summed directly.
-
-
-## 3. Installation, Deployment, and Usage
-
-### 3.1 Installing AINode
-
-Download the AINode installation package, import it into a dedicated folder, switch to that folder, and extract the package.
-
-```bash
-unzip timechodb-<version>-ainode-bin.zip
-```
-
-### 3.2 Modifying Configuration Items
-
-AINode supports modifying some necessary parameters. You can find the following parameters in the `/TIMECHODB_AINODE_HOME/conf/iotdb-ainode.properties` file and make persistent modifications:
-
-| Name | Description | Type | Default Value |
-| :--- | :--- | :--- | :--- |
-| `cluster_name` | The cluster identifier the AINode is to join | String | `defaultCluster` |
-| `ain_seed_config_node` | The ConfigNode address for AINode registration upon startup | String | `127.0.0.1:10710` |
-| `ain_cluster_ingress_address` | The rpc address of the DataNode from which AINode pulls data | String | `127.0.0.1` |
-| `ain_cluster_ingress_port` | The rpc port of the DataNode from which AINode pulls data | Integer | `6667` |
-| `ain_cluster_ingress_username` | The client username for the DataNode from which AINode pulls data | String | `root` |
-| `ain_cluster_ingress_password` | The client password for the DataNode from which AINode pulls data | String | `root` |
-| `ain_rpc_address` | The address for AINode service provision and communication (internal service communication interface) | String | `127.0.0.1` |
-| `ain_rpc_port` | The port for AINode service provision and communication | String | `10810` |
-| `ain_system_dir` | AINode metadata storage path. The starting directory for relative paths is OS-dependent; using an absolute path is recommended. | String | `data/AINode/system` |
-| `ain_models_dir` | AINode model file storage path. The starting directory for relative paths is OS-dependent; using an absolute path is recommended. | String | `data/AINode/models` |
-| `ain_thrift_compression_enabled` | Whether to enable Thrift compression mechanism for AINode. 0-disable, 1-enable. | Boolean | `0` |
-
-### 3.3 Importing Built-in Weight Files
-
-*If the deployment environment has network connectivity and can access HuggingFace, the system will automatically pull the built-in model weight files. This step can be skipped.*
-*For offline environments, contact Timecho staff to obtain the model weight folder and place it under the `/TIMECHODB_AINODE_HOME/data/ainode/models/builtin` directory.*
-**NOTE:** Pay attention to the directory hierarchy. The parent directory for all built-in model weights should be `builtin`.
-
-### 3.4 Starting AINode
-
-After completing the deployment of ConfigNodes, you can add an AINode to support time series model management and inference functionality. After specifying the TimechoDB cluster information in the configuration items, you can execute the corresponding command to start the AINode and join the TimechoDB cluster.
-
-```bash
-# Startup command
-# Linux and macOS systems
-bash sbin/start-ainode.sh
-
-# Windows system
-sbin\start-ainode.bat
-
-# Background startup command (recommended for long-term operation)
-# Linux and macOS systems
-bash sbin/start-ainode.sh -d
-
-# Windows system
-sbin\start-ainode.bat -d
-```
-
-### 3.5 Activating AINode
-
-1. Refer to TimechoDB Activation: [Activation Method](../Deployment-and-Maintenance/Stand-Alone-Deployment_timecho.md#_2-6-activate-database)
-
-2. You can verify AINode activation as follows. When the status shows `ACTIVATED`, it indicates successful activation.
-
-```SQL
-IoTDB> show cluster
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|       Version|  BuildInfo|ActivateStatus|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|     <version>|    xxxxxxx|     ACTIVATED|
-|     1|  DataNode|Running|      127.0.0.1|       10730|     <version>|    xxxxxxx|     ACTIVATED|
-|     2|    AINode|Running|      127.0.0.1|       10810|     <version>|    xxxxxxx|     ACTIVATED|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-Total line number = 3
-It costs 0.002s
-IoTDB> show activation
-+---------------+---------+-----------------------------+
-|    LicenseInfo|    Usage|                        Limit|
-+---------------+---------+-----------------------------+
-|         Status|ACTIVATED|                            -|
-|    ExpiredTime|        -|2025-07-16T00:00:00.000+08:00|
-|  DataNodeLimit|        1|                    Unlimited|
-|    AiNodeLimit|        1|                            1|
-|       CpuLimit|       11|                    Unlimited|
-|    DeviceLimit|        0|                    Unlimited|
-|TimeSeriesLimit|        0|                        9,999|
-+---------------+---------+-----------------------------+
-Total line number = 7
-It costs 0.013s
-```
-
-### 3.6 Checking AINode Node Status
-
-During startup, AINode automatically joins the TimechoDB cluster. After starting AINode, you can enter an SQL query in the command line. Seeing the AINode node in the cluster with a `Running` status (as shown below) indicates a successful join.
-
-```sql
-TimechoDB> show cluster
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|       Version|  BuildInfo|ActivateStatus|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|     <version>|    xxxxxxx|     ACTIVATED|
-|     1|  DataNode|Running|      127.0.0.1|       10730|     <version>|    xxxxxxx|     ACTIVATED|
-|     2|    AINode|Running|      127.0.0.1|       10810|     <version>|    xxxxxxx|     ACTIVATED|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-```
-
-Additionally, you can check the model status using the `show models` command. If the model status is incorrect, please verify the weight file path.
-
-```sql
-IoTDB> show models
-+---------------------+---------+--------+--------+
-|              ModelId|ModelType|Category|   State|
-+---------------------+---------+--------+--------+
-|                arima|   sktime| builtin|  active|
-|          holtwinters|   sktime| builtin|  active|
-|exponential_smoothing|   sktime| builtin|  active|
-|     naive_forecaster|   sktime| builtin|  active|
-|       stl_forecaster|   sktime| builtin|  active|
-|         gaussian_hmm|   sktime| builtin|  active|
-|              gmm_hmm|   sktime| builtin|  active|
-|                stray|   sktime| builtin|  active|
-|             timer_xl|    timer| builtin|  active|
-|              sundial|  sundial| builtin|  active|
-|             chronos2|       t5| builtin|  active|
-+---------------------+---------+--------+--------+
-```
-
-### 3.7 Stopping AINode
-
-If you need to stop a running AINode node, execute the corresponding shutdown script. It supports specifying the port via the `-p` parameter, which corresponds to the `ain_rpc_port` configuration item.
-
-```bash
-# Linux / macOS
-bash sbin/stop-ainode.sh
-bash sbin/stop-ainode.sh -p <port_id> # Specify port
-
-# Windows
-sbin\stop-ainode.bat
-sbin\stop-ainode.bat -p <port_id> # Specify port
-```
-
-After stopping AINode, you can still see the AINode node in the cluster, but its status will be `UNKNOWN` (as shown below). AINode functionality will be unavailable at this time.
-
-```sql
-IoTDB> show cluster
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|NodeID|  NodeType| Status|InternalAddress|InternalPort|       Version|  BuildInfo|ActivateStatus|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-|     0|ConfigNode|Running|      127.0.0.1|       10710|     <version>|    xxxxxxx|     ACTIVATED|
-|     1|  DataNode|Running|      127.0.0.1|       10730|     <version>|    xxxxxxx|     ACTIVATED|
-|     2|    AINode|UNKNOWN|      127.0.0.1|       10810|     <version>|    xxxxxxx|     ACTIVATED|
-+------+----------+-------+---------------+------------+--------------+-----------+--------------+
-```
-
-If you need to restart the node, re-execute the startup script.
-
-### 3.8 Upgrading AINode
-If you need to upgrade the version of the current AINode, follow these steps:
-
-1. Stop the current AINode service
-    - Run the stop command and ensure the service has completely exited before proceeding with subsequent operations.
-
-   ```bash
-   # Linux / MacOS
-   bash sbin/stop-ainode.sh
-   bash sbin/stop-ainode.sh -p <port_id> # Specify port
-   
-   # Windows
-   sbin\stop-ainode.bat  
-   sbin\stop-ainode.bat -p <port_id> # Specify port
-   ```
-
-2. Replace core files
-    - Delete the `lib` and `sbin` directories of the current version, then copy the `lib` and `sbin` directories from the new version to the corresponding locations.
-    - Back up the modified configuration files in the `conf` directory, then replace the `conf` folder and synchronize your modified configurations to the corresponding files.
-
-3. Update built-in model weights (optional)
-    - If the new version includes updates to built-in models, relevant information will be announced in the [Release History](../IoTDB-Introduction/Release-history_timecho.md). You may contact Timecho staff to obtain the latest weight package, and replace it in the `data/ainode/models/builtin` directory.
-
-4. After the upgrade is complete, start the AINode service and check the node status. For detailed commands, refer to Sections 3.4 and 3.6.
\ No newline at end of file
diff --git a/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_timecho.md b/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_timecho.md
deleted file mode 100644
index 08882b31..00000000
--- a/src/UserGuide/Master/Table/Deployment-and-Maintenance/AINode_Deployment_timecho.md
+++ /dev/null
@@ -1,319 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-# AINode Deployment
-
-## 1. AINode Introduction
-
-### 1.1 Capability Introduction
-
-AINode is the third type of endogenous node provided by IoTDB after the Configurable Node and DataNode. This node extends its ability to perform machine learning analysis on time series by interacting with the DataNode and Configurable Node of the IoTDB cluster. It supports the introduction of existing machine learning models from external sources for registration and the use of registered models to complete time series analysis tasks on specified time series data through simple SQL stat [...]
-
-### 1.2 Delivery Method
-AINode is an additional package outside the IoTDB cluster, with independent installation.
-
-### 1.3 Deployment mode
-<div >
-    <img src="/img/AINodeDeployment1.png" alt="" style="width: 45%;"/>
-    <img src="/img/AINodeDeployment2.png" alt="" style="width: 45%;"/>
-</div>
-
-## 2. Installation preparation
-
... 337352 lines suppressed ...