support new data types (#25)

diff --git a/Apache-IoTDB-Client-CSharp-UserCase/Program.cs b/Apache-IoTDB-Client-CSharp-UserCase/Program.cs
index 27b5ed0..345e9a7 100644
--- a/Apache-IoTDB-Client-CSharp-UserCase/Program.cs
+++ b/Apache-IoTDB-Client-CSharp-UserCase/Program.cs
@@ -53,7 +53,7 @@
             var session_pool = new SessionPool(host, port, pool_size);
             await session_pool.Open(false);
 
-            await session_pool.DeleteStorageGroupAsync("root.ln.wf01.wt01");
+            await session_pool.DeleteDatabaseAsync("root.ln.wf01.wt01");
             var status = await session_pool.CreateTimeSeries("root.ln.wf01.wt01.status", TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries("root.ln.wf01.wt01.temperature", TSDataType.DOUBLE, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries("root.ln.wf01.wt01.hardware", TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
diff --git a/docs/API.md b/docs/API.md
index ffd2b4d..13bcbc8 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -81,10 +81,10 @@
 
 | api name                   | parameters                                                   | notes                       | use example                                                  |
 | -------------------------- | ------------------------------------------------------------ | --------------------------- | ------------------------------------------------------------ |
-| SetStorageGroup            | string                                                       | set storage group           | session_pool.SetStorageGroup("root.97209_TEST_CSHARP_CLIENT_GROUP_01") |
+| SetStorageGroup            | string                                                       | set storage group           | session_pool.CreateDatabase("root.97209_TEST_CSHARP_CLIENT_GROUP_01") |
 | CreateTimeSeries           | string, TSDataType, TSEncoding, Compressor                   | create time series          | session_pool.InsertTabletsAsync(tablets)                     |
-| DeleteStorageGroupAsync    | string                                                       | delete single storage group | session_pool.DeleteStorageGroupAsync("root.97209_TEST_CSHARP_CLIENT_GROUP_01") |
-| DeleteStorageGroupsAsync   | List<string>                                                 | delete storage group        | session_pool.DeleteStorageGroupAsync("root.97209_TEST_CSHARP_CLIENT_GROUP") |
+| DeleteStorageGroupAsync    | string                                                       | delete single storage group | session_pool.DeleteDatabaseAsync("root.97209_TEST_CSHARP_CLIENT_GROUP_01") |
+| DeleteStorageGroupsAsync   | List<string>                                                 | delete storage group        | session_pool.DeleteDatabaseAsync("root.97209_TEST_CSHARP_CLIENT_GROUP") |
 | CreateMultiTimeSeriesAsync | List<string>, List<TSDataType> , List<TSEncoding> , List<Compressor> | create multi time series    | session_pool.CreateMultiTimeSeriesAsync(ts_path_lst, data_type_lst, encoding_lst, compressor_lst); |
 | DeleteTimeSeriesAsync      | List<string>                                                 | delete time series          |                                                              |
 | DeleteTimeSeriesAsync      | string                                                       | delete time series          |                                                              |
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedRecord.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedRecord.cs
index 24accc6..241a229 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedRecord.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedRecord.cs
@@ -34,9 +34,9 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            string prefixPath = string.Format("{0}.{1}", test_group_name, test_device);
+            string prefixPath = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements = new List<string> { test_measurements[1], test_measurements[2], test_measurements[3] };
             var types = new List<TSDataType> { TSDataType.TEXT, TSDataType.BOOLEAN, TSDataType.INT32 };
             var encodings = new List<TSEncoding> { TSEncoding.PLAIN, TSEncoding.PLAIN, TSEncoding.PLAIN };
@@ -53,13 +53,13 @@
             {
                 var rowRecord = new RowRecord(timestamp, values, measures);
                 var task = session_pool.InsertAlignedRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), rowRecord);
+                    string.Format("{0}.{1}", test_database_name, test_device), rowRecord);
                 tasks.Add(task);
             }
             Task.WaitAll(tasks.ToArray());
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total insert record time is {0}", end_ms - start_ms));
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedRecordAsync Passed");
         }
@@ -71,10 +71,10 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateAlignedTimeseriesAsync(
-                string.Format("{0}.{1}", test_group_name, test_device),
+                string.Format("{0}.{1}", test_database_name, test_device),
                 new List<string>() { test_measurements[0], test_measurements[1], test_measurements[2] },
                 new List<TSDataType>() { TSDataType.TEXT, TSDataType.TEXT, TSDataType.TEXT },
                 new List<TSEncoding>() { TSEncoding.PLAIN, TSEncoding.PLAIN, TSEncoding.PLAIN },
@@ -89,14 +89,14 @@
             for (var timestamp = 1; timestamp <= fetch_size * processed_size; timestamp++)
             {
                 var task = session_pool.InsertAlignedStringRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), measurements, values, timestamp);
+                    string.Format("{0}.{1}", test_database_name, test_device), measurements, values, timestamp);
                 tasks.Add(task);
             }
 
             Task.WaitAll(tasks.ToArray());
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total insert aligned string record time is {0}", end_ms - start_ms));
-            var res = await session_pool.ExecuteQueryStatementAsync("select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+            var res = await session_pool.ExecuteQueryStatementAsync("select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_cnt = 0;
             while (res.HasNext())
             {
@@ -105,7 +105,7 @@
             }
             Console.WriteLine(res_cnt + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_cnt == fetch_size * processed_size);
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedStringRecordAsync Passed");
         }
@@ -117,9 +117,9 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            string prefixPath = string.Format("{0}.{1}", test_group_name, test_device);
+            string prefixPath = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>()
             {
                 test_measurements[1],
@@ -149,7 +149,7 @@
             System.Diagnostics.Debug.Assert(status == 0);
 
             var device_id = new List<string>() { };
-            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
             measurements_lst.Add(new List<string>()
@@ -184,7 +184,7 @@
             status = await session_pool.InsertAlignedRecordsAsync(device_id, rowRecords);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -197,7 +197,7 @@
             var tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= fetch_size * processed_size; timestamp++)
             {
-                device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+                device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
                 rowRecords.Add(new RowRecord(timestamp, new List<object>() { true, (int)123 },
                     new List<string>() { test_measurements[1], test_measurements[2] }));
                 if (timestamp % fetch_size == 0)
@@ -210,7 +210,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var record_count = fetch_size * processed_size;
             var res_count = 0;
@@ -225,7 +225,7 @@
             System.Diagnostics.Debug.Assert(res_count == record_count);
             System.Diagnostics.Debug.Assert(status == 0);
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedRecords Passed!");
@@ -238,9 +238,9 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            string prefixPath = string.Format("{0}.{1}", test_group_name, test_device);
+            string prefixPath = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>() { test_measurements[1], test_measurements[2] };
             var data_type_lst = new List<TSDataType>() { TSDataType.TEXT, TSDataType.TEXT };
             var encoding_lst = new List<TSEncoding>() { TSEncoding.PLAIN, TSEncoding.PLAIN };
@@ -250,7 +250,7 @@
             System.Diagnostics.Debug.Assert(status == 0);
 
             var device_id = new List<string>() { };
-            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
@@ -264,7 +264,7 @@
             status = await session_pool.InsertAlignedStringRecordsAsync(device_id, measurements_lst, values_lst, timestamp_lst);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -278,7 +278,7 @@
             List<Task<int>> tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= fetch_size * processed_size; timestamp++)
             {
-                device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+                device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
                 measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
                 values_lst.Add(new List<string>() { "test1", "test2" });
                 timestamp_lst.Add(timestamp);
@@ -294,7 +294,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -306,7 +306,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedStringRecords Passed!");
@@ -319,9 +319,9 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            string prefixPath = string.Format("{0}.{1}", test_group_name, test_device);
+            string prefixPath = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>()
             {
                 test_measurements[1],
@@ -351,7 +351,7 @@
                 compressor_lst);
             System.Diagnostics.Debug.Assert(status == 0);
 
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
             measurements_lst.Add(new List<string>()
@@ -385,7 +385,7 @@
             status = await session_pool.InsertAlignedRecordsOfOneDeviceAsync(device_id, rowRecords);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -405,7 +405,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_count = 0;
             while (res.HasNext())
             {
@@ -416,7 +416,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedRecordsOfOneDevice Passed!");
@@ -429,8 +429,8 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements = new List<string>() { test_measurements[0], test_measurements[1], test_measurements[2] };
             var data_type_lst = new List<TSDataType>() { TSDataType.TEXT, TSDataType.TEXT, TSDataType.TEXT };
             var encoding_lst = new List<TSEncoding>() { TSEncoding.PLAIN, TSEncoding.PLAIN, TSEncoding.PLAIN };
@@ -453,7 +453,7 @@
             status = await session_pool.InsertAlignedStringRecordsOfOneDeviceAsync(device_id, timestamp_lst, measurements_lst, values_lst);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -479,7 +479,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_count = 0;
             while (res.HasNext())
             {
@@ -490,7 +490,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedStringRecordsOfOneDevice Passed!");
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedTablet.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedTablet.cs
index 18dba1f..1b6f044 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedTablet.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.AlignedTablet.cs
@@ -35,8 +35,8 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>
                 {   test_measurements[1],
                     test_measurements[2],
@@ -53,7 +53,7 @@
             status = await session_pool.InsertAlignedTabletAsync(tablet);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<15");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -81,7 +81,7 @@
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -93,7 +93,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedTablet Passed!");
@@ -107,11 +107,11 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             var device_id = new List<string>()
             {
-                string.Format("{0}.{1}", test_group_name, test_devices[1]),
-                string.Format("{0}.{1}", test_group_name, test_devices[2])
+                string.Format("{0}.{1}", test_database_name, test_devices[1]),
+                string.Format("{0}.{1}", test_database_name, test_devices[2])
             };
             var measurements_lst = new List<List<string>>()
             {
@@ -148,7 +148,7 @@
             status = await session_pool.InsertAlignedTabletsAsync(tablets);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]) + " where time<15");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -157,7 +157,7 @@
             // tablets = new List<Tablet>() { };
             for (var timestamp = 4; timestamp <= processed_size * fetch_size; timestamp++)
             {
-                var local_device_id = string.Format("{0}.{1}", test_group_name, test_devices[1]);
+                var local_device_id = string.Format("{0}.{1}", test_database_name, test_devices[1]);
                 var local_measurements = new List<string>()
                     {test_measurements[1], test_measurements[2], test_measurements[3]};
                 var local_value = new List<List<object>>() { new() { "iotdb", true, (int)timestamp } };
@@ -174,7 +174,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -186,7 +186,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertAlignedTablets Passed!");
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.Record.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.Record.cs
index a113480..a0b26e6 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.Record.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.Record.cs
@@ -36,19 +36,19 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
 
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             var measures = new List<string>
@@ -60,14 +60,14 @@
             {
                 var rowRecord = new RowRecord(timestamp, values, measures);
                 var task = session_pool.InsertRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), rowRecord);
+                    string.Format("{0}.{1}", test_database_name, test_device), rowRecord);
                 tasks.Add(task);
             }
 
             Task.WaitAll(tasks.ToArray());
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total insert aligned record time is {0}", end_ms - start_ms));
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestInsertRecordAsync Passed");
         }
@@ -79,19 +79,19 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[0]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[0]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
 
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             var measurements = new List<string>
@@ -102,14 +102,14 @@
             for (var timestamp = 1; timestamp <= fetch_size * processed_size; timestamp++)
             {
                 var task = session_pool.InsertStringRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), measurements, values, timestamp);
+                    string.Format("{0}.{1}", test_database_name, test_device), measurements, values, timestamp);
                 tasks.Add(task);
             }
 
             Task.WaitAll(tasks.ToArray());
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total insert string record time is {0}", end_ms - start_ms));
-            var res = await session_pool.ExecuteQueryStatementAsync("select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+            var res = await session_pool.ExecuteQueryStatementAsync("select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_cnt = 0;
             while (res.HasNext())
             {
@@ -118,7 +118,7 @@
             }
             Console.WriteLine(res_cnt + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_cnt == fetch_size * processed_size);
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestInsertStringRecordAsync Passed");
         }
@@ -130,14 +130,14 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
 
@@ -145,10 +145,10 @@
             var values = new List<object> { (int)1, (int)2 };
             var rowRecord = new RowRecord(1, values, measures);
             status = await session_pool.InsertRecordAsync(
-                string.Format("{0}.{1}", test_group_name, test_device), rowRecord);
+                string.Format("{0}.{1}", test_database_name, test_device), rowRecord);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<2");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<2");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -163,13 +163,13 @@
             for (var timestamp = 2; timestamp <= fetch_size * processed_size; timestamp++)
             {
                 var task = session_pool.InsertRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), rowRecords[timestamp - 2]);
+                    string.Format("{0}.{1}", test_database_name, test_device), rowRecords[timestamp - 2]);
                 tasks.Add(task);
             }
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_count = 0;
             while (res.HasNext())
             {
@@ -180,7 +180,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestInsertStrRecord Passed!");
         }
@@ -192,34 +192,34 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT64, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[4]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[4]),
                 TSDataType.DOUBLE, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[5]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[5]),
                 TSDataType.FLOAT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[6]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[6]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
 
             var device_id = new List<string>() { };
-            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
 
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
@@ -255,7 +255,7 @@
             status = await session_pool.InsertRecordsAsync(device_id, rowRecords);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -268,7 +268,7 @@
             var tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= fetch_size * processed_size; timestamp++)
             {
-                device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+                device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
                 rowRecords.Add(new RowRecord(timestamp, new List<object>() { true, (int)123 },
                     new List<string>() { test_measurements[1], test_measurements[2] }));
                 if (timestamp % fetch_size == 0)
@@ -281,7 +281,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var record_count = fetch_size * processed_size;
             var res_count = 0;
@@ -296,7 +296,7 @@
             System.Diagnostics.Debug.Assert(res_count == record_count);
             System.Diagnostics.Debug.Assert(status == 0);
 
-            string sql = string.Format("select {0}, {1}, {2} from ", test_measurements[3], test_measurements[1], test_measurements[2]) + string.Format("{0}.{1}", test_group_name, test_device);
+            string sql = string.Format("select {0}, {1}, {2} from ", test_measurements[3], test_measurements[1], test_measurements[2]) + string.Format("{0}.{1}", test_database_name, test_device);
             res = await session_pool.ExecuteQueryStatementAsync(sql);
             res.ShowTableNames();
             RowRecord row = null;
@@ -306,12 +306,12 @@
                 break;
             }
             
-            Console.WriteLine($"{test_group_name}.{test_device}.{row.Measurements[0]}  {test_measurements[3]}");
-            System.Diagnostics.Debug.Assert($"{test_group_name}.{test_device}.{test_measurements[3]}" == row.Measurements[0]);
-            System.Diagnostics.Debug.Assert($"{test_group_name}.{test_device}.{test_measurements[1]}" == row.Measurements[1]);
-            System.Diagnostics.Debug.Assert($"{test_group_name}.{test_device}.{test_measurements[2]}" == row.Measurements[2]);
+            Console.WriteLine($"{test_database_name}.{test_device}.{row.Measurements[0]}  {test_measurements[3]}");
+            System.Diagnostics.Debug.Assert($"{test_database_name}.{test_device}.{test_measurements[3]}" == row.Measurements[0]);
+            System.Diagnostics.Debug.Assert($"{test_database_name}.{test_device}.{test_measurements[1]}" == row.Measurements[1]);
+            System.Diagnostics.Debug.Assert($"{test_database_name}.{test_device}.{test_measurements[2]}" == row.Measurements[2]);
             
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertRecords Passed!");
@@ -324,18 +324,18 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
 
             var device_id = new List<string>() { };
-            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
 
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
@@ -350,7 +350,7 @@
             status = await session_pool.InsertStringRecordsAsync(device_id, measurements_lst, values_lst, timestamp_lst);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -364,7 +364,7 @@
             var tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= fetch_size * processed_size; timestamp++)
             {
-                device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+                device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
                 measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
                 values_lst.Add(new List<string>() { "test" + timestamp, "test" + timestamp });
                 timestamp_lst.Add(timestamp);
@@ -380,7 +380,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var record_count = fetch_size * processed_size;
             var res_count = 0;
@@ -394,7 +394,7 @@
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == record_count);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertStringRecords Passed!");
@@ -407,32 +407,32 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT64, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[4]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[4]),
                 TSDataType.DOUBLE, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[5]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[5]),
                 TSDataType.FLOAT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[6]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[6]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
             measurements_lst.Add(new List<string>()
@@ -467,7 +467,7 @@
             status = await session_pool.InsertRecordsOfOneDeviceAsync(device_id, rowRecords);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -488,7 +488,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_count = 0;
             while (res.HasNext())
             {
@@ -499,7 +499,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertRecordsOfOneDevice Passed!");
@@ -512,21 +512,21 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[0]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[0]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
 
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[0], test_measurements[1], test_measurements[2] });
             measurements_lst.Add(new List<string>() { test_measurements[0], test_measurements[1], test_measurements[2] });
@@ -542,7 +542,7 @@
             status = await session_pool.InsertStringRecordsOfOneDeviceAsync(device_id, timestamp_lst, measurements_lst, values_lst);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -568,7 +568,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             var res_count = 0;
             while (res.HasNext())
             {
@@ -579,10 +579,89 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertStringRecordsOfOneDevice Passed!");
         }
+
+        public async Task TestInsertRecordsWithAllType()
+        {
+            var session_pool = new SessionPool(host, port, pool_size);
+            var status = 0;
+            await session_pool.Open(false);
+            if (debug) session_pool.OpenDebugMode();
+
+            System.Diagnostics.Debug.Assert(session_pool.IsOpen());
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+
+            var measurements = new List<string>
+            {
+                "boolean_measurement",
+                "int32_measurement",
+                "int64_measurement",
+                "float_measurement",
+                "double_measurement",
+                "text_measurement",
+                "timestamp_measurement",
+                "date_measurement",
+                "blob_measurement",
+                "string_measurement"
+            };
+
+            var dataTypes = new List<string>
+            {
+                "BOOLEAN",
+                "INT32",
+                "INT64",
+                "FLOAT",
+                "DOUBLE",
+                "TEXT",
+                "TIMESTAMP",
+                "DATE",
+                "BLOB",
+                "STRING"
+            };
+
+
+            var values1 = new List<object>
+            {
+                true, 123, 123456789L, 1.23f, 1.23456789, "iotdb", ((DateTimeOffset)DateTime.Now).ToUnixTimeMilliseconds(), DateTime.Today, new byte[] {0x01, 0x02}, "string1"
+            };
+            var values2 = new List<object>
+            {
+                false, 456, 987654321L, 4.56f, 9.87654321, "iotdb2", ((DateTimeOffset)DateTime.Now.AddSeconds(1)).ToUnixTimeMilliseconds(), DateTime.Today.AddDays(1), new byte[] {0x03, 0x04}, "string2"
+            };
+            var values3 = new List<object>
+            {
+                true, 789, 123123123L, 7.89f, 7.89101112, "iotdb3", ((DateTimeOffset)DateTime.Now.AddSeconds(2)).ToUnixTimeMilliseconds(), DateTime.Today.AddDays(2), new byte[] {0x05, 0x06}, "string3"
+            };
+
+            var rowRecord1 = new RowRecord(1, values1, measurements, dataTypes);
+            var rowRecord2 = new RowRecord(2, values2, measurements, dataTypes);
+            var rowRecord3 = new RowRecord(3, values3, measurements, dataTypes);
+
+            var device_id = new List<string> { string.Format("{0}.{1}", test_database_name, test_device),string.Format("{0}.{1}", test_database_name, test_device),string.Format("{0}.{1}", test_database_name, test_device) };
+            var rowRecords = new List<RowRecord> { rowRecord1, rowRecord2, rowRecord3 };
+
+            status = await session_pool.InsertRecordsAsync(device_id, rowRecords);
+            System.Diagnostics.Debug.Assert(status == 0);
+
+            var res = await session_pool.ExecuteQueryStatementAsync(
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
+            res.ShowTableNames();
+            var res_count = 0;
+            while (res.HasNext())
+            {
+                Console.WriteLine(res.Next());
+                res_count += 1;
+            }
+
+            await res.Close();
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
+            System.Diagnostics.Debug.Assert(status == 0);
+            await session_pool.Close();
+            Console.WriteLine("TestInsertRecordsWithAllType Passed!");
+        }
     }
 }
\ No newline at end of file
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.Tablet.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.Tablet.cs
index e21ae62..e7c5f5b 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.Tablet.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.Tablet.cs
@@ -35,8 +35,8 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>
             {
                     test_measurements[1],
@@ -54,7 +54,7 @@
             status = await session_pool.InsertTabletAsync(tablet);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                 "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<15");
+                 "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -81,7 +81,7 @@
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -93,7 +93,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertTablet Passed!");
@@ -107,11 +107,11 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             var device_id = new List<string>()
             {
-                string.Format("{0}.{1}", test_group_name, test_devices[1]),
-                string.Format("{0}.{1}", test_group_name, test_devices[2])
+                string.Format("{0}.{1}", test_database_name, test_devices[1]),
+                string.Format("{0}.{1}", test_database_name, test_devices[2])
             };
             var measurements_lst = new List<List<string>>()
             {
@@ -148,7 +148,7 @@
             status = await session_pool.InsertTabletsAsync(tablets);
             // System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]) + " where time<15");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -158,7 +158,7 @@
             // tablets = new List<Tablet>();
             for (var timestamp = 4; timestamp <= processed_size * fetch_size; timestamp++)
             {
-                var local_device_id = string.Format("{0}.{1}", test_group_name, test_devices[1]);
+                var local_device_id = string.Format("{0}.{1}", test_database_name, test_devices[1]);
                 var local_measurements = new List<string>()
                     {test_measurements[1], test_measurements[2], test_measurements[3]};
                 var local_value = new List<List<object>>() { new() { "iotdb", true, (int)timestamp } };
@@ -175,7 +175,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -187,7 +187,7 @@
             await res.Close();
             Console.WriteLine(res_count + " " + fetch_size * processed_size);
             System.Diagnostics.Debug.Assert(res_count == fetch_size * processed_size);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertTablets Passed!");
@@ -200,8 +200,8 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements = new List<string>() { test_measurements[1], test_measurements[2], test_measurements[3] };
             var values = new List<List<object>>()
             {
@@ -214,7 +214,7 @@
             status = await session_pool.InsertTabletAsync(tablet);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -224,10 +224,73 @@
             }
 
             await res.Close();
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestInsertTabletsWithNullValue Passed!");
         }
+
+        public async Task TestInsertTabletWithAllType()
+        {
+            var session_pool = new SessionPool(host, port, pool_size);
+            var status = 0;
+            await session_pool.Open(false);
+            if (debug) session_pool.OpenDebugMode();
+
+            System.Diagnostics.Debug.Assert(session_pool.IsOpen());
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
+            var measurements = new List<string>
+            {
+                "boolean_measurement",
+                "int32_measurement",
+                "int64_measurement",
+                "float_measurement",
+                "double_measurement",
+                "text_measurement",
+                "timestamp_measurement",
+                "date_measurement",
+                "blob_measurement",
+                "string_measurement"
+            };
+            var values = new List<List<object>>
+            {
+                new() {true, 123, 123456789L, 1.23f, 1.23456789, "iotdb", ((DateTimeOffset)DateTime.Now).ToUnixTimeMilliseconds(), DateTime.Today, new byte[] {0x01, 0x02}, "string1"},
+                new() {false, 456, 987654321L, 4.56f, 9.87654321, "iotdb2", ((DateTimeOffset)DateTime.Now.AddSeconds(1)).ToUnixTimeMilliseconds(), DateTime.Today.AddDays(1), new byte[] {0x03, 0x04}, "string2"}
+            };
+            var datatypes = new List<TSDataType>
+            {
+                TSDataType.BOOLEAN,
+                TSDataType.INT32,
+                TSDataType.INT64,
+                TSDataType.FLOAT,
+                TSDataType.DOUBLE,
+                TSDataType.TEXT,
+                TSDataType.TIMESTAMP,
+                TSDataType.DATE,
+                TSDataType.BLOB,
+                TSDataType.STRING
+            };
+            var timestamps = new List<long> {1, 2};
+            var tablet = new Tablet(device_id, measurements, datatypes, values, timestamps);
+            status = await session_pool.InsertTabletAsync(tablet);
+            System.Diagnostics.Debug.Assert(status == 0);
+
+            var res = await session_pool.ExecuteQueryStatementAsync(
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
+            res.ShowTableNames();
+            var res_count = 0;
+            while (res.HasNext())
+            {
+                Console.WriteLine(res.Next());
+                res_count += 1;
+            }
+
+            await res.Close();
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
+            System.Diagnostics.Debug.Assert(status == 0);
+            await session_pool.Close();
+            Console.WriteLine("TestInsertTabletWithAllType Passed!");
+        }
     }
 }
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.Template.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.Template.cs
index 3e80100..5e0af66 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.Template.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.Template.cs
@@ -56,7 +56,7 @@
             }
             status = await session_pool.DropSchemaTemplateAsync(test_template_name);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestCreateAndDropSchemaTemplate Passed!");
         }
@@ -69,8 +69,8 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            await session_pool.UnsetSchemaTemplateAsync(string.Format("{0}.{1}", test_group_name, test_device), "template");
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            await session_pool.UnsetSchemaTemplateAsync(string.Format("{0}.{1}", test_database_name, test_device), "template");
             await session_pool.DropSchemaTemplateAsync(test_template_name);
 
             MeasurementNode node1 = new MeasurementNode(test_measurements[1], TSDataType.INT32, TSEncoding.PLAIN, Compressor.SNAPPY);
@@ -86,16 +86,16 @@
 
             status = await session_pool.CreateSchemaTemplateAsync(template);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.SetSchemaTemplateAsync(test_template_name, string.Format("{0}.{1}", test_group_name, test_device));
+            status = await session_pool.SetSchemaTemplateAsync(test_template_name, string.Format("{0}.{1}", test_database_name, test_device));
             var paths = await session_pool.ShowPathsTemplateSetOnAsync(test_template_name);
             foreach (var p in paths)
             {
                 Console.WriteLine("path :\t{0}", p);
             }
-            status = await session_pool.UnsetSchemaTemplateAsync(string.Format("{0}.{1}", test_group_name, test_device), test_template_name);
+            status = await session_pool.UnsetSchemaTemplateAsync(string.Format("{0}.{1}", test_database_name, test_device), test_template_name);
             status = await session_pool.DropSchemaTemplateAsync(test_template_name);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestSetAndUnsetSchemaTemplate Passed!");
         }
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.TestNetwork.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.TestNetwork.cs
index 5a1de0e..a0bc278 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.TestNetwork.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.TestNetwork.cs
@@ -34,19 +34,19 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
 
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             var measures = new List<string>
@@ -60,14 +60,14 @@
             {
                 var rowRecord = new RowRecord(timestamp, values, measures);
                 var task = session_pool.TestInsertRecordAsync(
-                    string.Format("{0}.{1}", test_group_name, test_device), rowRecord);
+                    string.Format("{0}.{1}", test_database_name, test_device), rowRecord);
                 tasks.Add(task);
             }
 
             Task.WaitAll(tasks.ToArray());
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total insert record time is {0}", end_ms - start_ms));
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestTestInsertRecordAsync Passed");
         }
@@ -80,34 +80,34 @@
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var status = 0;
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT64, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[4]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[4]),
                 TSDataType.DOUBLE, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[5]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[5]),
                 TSDataType.FLOAT, TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[6]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[6]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.SNAPPY);
             System.Diagnostics.Debug.Assert(status == 0);
 
             var device_id = new List<string>() { };
-            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+            for (var i = 0; i < 3; i++) device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
 
             var measurements_lst = new List<List<string>>() { };
             measurements_lst.Add(new List<string>() { test_measurements[1], test_measurements[2] });
@@ -143,7 +143,7 @@
             status = await session_pool.TestInsertRecordsAsync(device_id, rowRecords);
             // System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -155,7 +155,7 @@
             var tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= fetch_size * processed_size; timestamp++)
             {
-                device_id.Add(string.Format("{0}.{1}", test_group_name, test_device));
+                device_id.Add(string.Format("{0}.{1}", test_database_name, test_device));
                 rowRecords.Add(new RowRecord(timestamp, new List<object>() { true, (int)123 },
                     new List<string>() { test_measurements[1], test_measurements[2] }));
                 if (timestamp % fetch_size == 0)
@@ -168,7 +168,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var record_count = fetch_size * processed_size;
             var res_count = 0;
@@ -181,7 +181,7 @@
             await res.Close();
             System.Diagnostics.Debug.Assert(res_count == 0);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestTestInsertRecords Passed!");
@@ -195,8 +195,8 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>
                 {   test_measurements[1],
                     test_measurements[2],
@@ -213,7 +213,7 @@
             status = await session_pool.TestInsertTabletAsync(tablet);
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<15");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
@@ -240,7 +240,7 @@
             var end_ms = DateTime.Now.Ticks / 10000;
             Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -251,7 +251,7 @@
 
             await res.Close();
             System.Diagnostics.Debug.Assert(res_count == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestTestInsertTablet Passed!");
@@ -265,11 +265,11 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             var device_id = new List<string>()
             {
-                string.Format("{0}.{1}", test_group_name, test_devices[1]),
-                string.Format("{0}.{1}", test_group_name, test_devices[2])
+                string.Format("{0}.{1}", test_database_name, test_devices[1]),
+                string.Format("{0}.{1}", test_database_name, test_devices[2])
             };
             var measurements_lst = new List<List<string>>()
             {
@@ -306,7 +306,7 @@
             status = await session_pool.TestInsertTabletsAsync(tablets);
             // System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]) + " where time<15");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]) + " where time<15");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
             await res.Close();
@@ -316,7 +316,7 @@
             var tasks = new List<Task<int>>();
             for (var timestamp = 4; timestamp <= processed_size * fetch_size; timestamp++)
             {
-                var local_device_id = string.Format("{0}.{1}", test_group_name, test_devices[1]);
+                var local_device_id = string.Format("{0}.{1}", test_database_name, test_devices[1]);
                 var local_measurements = new List<string>()
                     {test_measurements[1], test_measurements[2], test_measurements[3]};
                 var local_value = new List<List<object>>() { new() { "iotdb", true, (int)timestamp } };
@@ -333,7 +333,7 @@
 
             Task.WaitAll(tasks.ToArray());
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_devices[1]));
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_devices[1]));
             res.ShowTableNames();
             var res_count = 0;
             while (res.HasNext())
@@ -344,7 +344,7 @@
 
             await res.Close();
             System.Diagnostics.Debug.Assert(res_count == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestTestInsertTablets Passed!");
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.TimeSeries.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.TimeSeries.cs
index 73e2fb6..92ba363 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.TimeSeries.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.TimeSeries.cs
@@ -35,10 +35,10 @@
             var status = 0;
             if (debug) session_pool.OpenDebugMode();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             var measurement_lst = new List<int> { 1, 2, 3, 4, 5, 6 };
             var ts_path_lst = new List<string>(measurement_lst.ConvertAll(
-                (measurement) => string.Format("{0}.{1}.{2}{3}", test_group_name, test_device, test_measurement, measurement)));
+                (measurement) => string.Format("{0}.{1}.{2}{3}", test_database_name, test_device, test_measurement, measurement)));
             var data_type_lst = new List<TSDataType>()
             {
                 TSDataType.BOOLEAN, TSDataType.INT32, TSDataType.INT64, TSDataType.FLOAT, TSDataType.DOUBLE,
@@ -57,7 +57,7 @@
             status = await session_pool.CreateMultiTimeSeriesAsync(ts_path_lst, data_type_lst, encoding_lst,
                 compressor_lst);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestCreateMultiTimeSeries Passed!");
@@ -70,10 +70,10 @@
             var status = 0;
             if (debug) session_pool.OpenDebugMode();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             var measurement_lst = new List<int> { 1, 2, 3, 4, 5, 6 };
             var ts_path_lst = new List<string>(measurement_lst.ConvertAll(
-                (measurement) => string.Format("{0}.{1}.{2}{3}", test_group_name, test_device, test_measurement, measurement)));
+                (measurement) => string.Format("{0}.{1}.{2}{3}", test_database_name, test_device, test_measurement, measurement)));
             var data_type_lst = new List<TSDataType>()
             {
                 TSDataType.BOOLEAN, TSDataType.INT32, TSDataType.INT64, TSDataType.FLOAT, TSDataType.DOUBLE,
@@ -95,7 +95,7 @@
             status = await session_pool.DeleteTimeSeriesAsync(ts_path_lst);
             System.Diagnostics.Debug.Assert(status == 0);
             Console.WriteLine("TestDeleteTimeSeries Passed!");
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
         }
         public async Task TestCreateTimeSeries()
@@ -104,26 +104,26 @@
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
 
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT64, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[4]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[4]),
                 TSDataType.FLOAT, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[5]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[5]),
                 TSDataType.DOUBLE, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
             System.Diagnostics.Debug.Assert(await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[6]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[6]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY) == 0);
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.Close();
             Console.WriteLine("TestCreateTimeSeries Passed!");
         }
@@ -135,9 +135,9 @@
             var status = 0;
             if (debug) session_pool.OpenDebugMode();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            string prefixPath = string.Format("{0}.{1}", test_group_name, test_device);
+            string prefixPath = string.Format("{0}.{1}", test_database_name, test_device);
             var measurement_lst = new List<string>()
             {
                 test_measurements[1],
@@ -165,7 +165,7 @@
             status = await session_pool.CreateAlignedTimeseriesAsync(prefixPath, measurement_lst, data_type_lst, encoding_lst,
                 compressor_lst);
             System.Diagnostics.Debug.Assert(status == 0);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestCreateAlignedTimeSeries Passed!");
@@ -178,16 +178,16 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.SNAPPY);
             var ifExist_1 = await session_pool.CheckTimeSeriesExistsAsync(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]));
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]));
             var ifExist_2 = await session_pool.CheckTimeSeriesExistsAsync(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]));
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]));
             System.Diagnostics.Debug.Assert(ifExist_1 == true && ifExist_2 == false);
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestCheckTimeSeriesExists Passed!");
diff --git a/samples/Apache.IoTDB.Samples/SessionPoolTest.cs b/samples/Apache.IoTDB.Samples/SessionPoolTest.cs
index 54e3898..754c632 100644
--- a/samples/Apache.IoTDB.Samples/SessionPoolTest.cs
+++ b/samples/Apache.IoTDB.Samples/SessionPoolTest.cs
@@ -41,7 +41,7 @@
         public bool debug = false;
         private int pool_size = 2;
         public static string test_template_name = "TEST_CSHARP_CLIENT_TEMPLATE_97209";
-        public static string test_group_name = "root.TEST_CSHARP_CLIENT_GROUP_97209";
+        public static string test_database_name = "root.TEST_CSHARP_CLIENT_GROUP_97209";
         public static string test_device = "TEST_CSHARP_CLIENT_DEVICE";
         public static string test_measurement = "TEST_CSHARP_CLIENT_TS";
         public static List<int> device_count = new List<int>() { 0, 1, 2, 3 };
@@ -100,10 +100,14 @@
 
             await TestInsertRecords();
 
+            await TestInsertRecordsWithAllType();
+
             await TestInsertRecordsOfOneDevice();
 
             await TestInsertTablet();
 
+            await TestInsertTabletWithAllType();
+
             await TestInsertTabletWithNullValue();
 
             await TestInsertTablets();
@@ -116,13 +120,13 @@
 
             await TestGetTimeZone();
 
-            await TestSetAndDeleteStorageGroup();
+            await TestCreateAndDeleteDatabase();
 
             await TestCreateTimeSeries();
 
             await TestDeleteTimeSeries();
 
-            await TestDeleteStorageGroups();
+            await TestDeleteDatabase();
 
             await TestCheckTimeSeriesExists();
 
@@ -169,18 +173,18 @@
             var session_pool = new SessionPool(node_urls, 8);
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             var status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[0]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[0]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             var rowRecord = new RowRecord(1668404120807, new() { "1111111", "22222", "333333" }, new() { test_measurements[0], test_measurements[1], test_measurements[2] });
-            status = await session_pool.InsertRecordsAsync(new List<string>() { string.Format("{0}.{1}", test_group_name, test_device) }, new List<RowRecord>() { rowRecord });
+            status = await session_pool.InsertRecordsAsync(new List<string>() { string.Format("{0}.{1}", test_database_name, test_device) }, new List<RowRecord>() { rowRecord });
             Debug.Assert(status == 0);
             Console.WriteLine("TestOpenWithNodeUrlsAndInsertOneRecord Passed!");
         }
@@ -189,18 +193,18 @@
             var session_pool = new SessionPool(host, port, 1);
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             var status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[0]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[0]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.TEXT, TSEncoding.PLAIN, Compressor.SNAPPY);
             var rowRecord = new RowRecord(1668404120807, new() { "1111111", "22222", "333333" }, new() { test_measurements[0], test_measurements[1], test_measurements[2] });
-            status = await session_pool.InsertRecordsAsync(new List<string>() { string.Format("{0}.{1}", test_group_name, test_device) }, new List<RowRecord>() { rowRecord });
+            status = await session_pool.InsertRecordsAsync(new List<string>() { string.Format("{0}.{1}", test_database_name, test_device) }, new List<RowRecord>() { rowRecord });
         }
         public async Task TestGetTimeZone()
         {
@@ -208,7 +212,7 @@
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
 
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             var time_zone = await session_pool.GetTimeZone();
             System.Diagnostics.Debug.Assert(time_zone == "UTC+08:00");
@@ -218,38 +222,38 @@
 
 
 
-        public async Task TestSetAndDeleteStorageGroup()
+        public async Task TestCreateAndDeleteDatabase()
         {
             var session_pool = new SessionPool(host, port, pool_size);
             var status = 0;
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(
-                await session_pool.SetStorageGroup(test_group_name) == 0);
+                await session_pool.CreateDatabase(test_database_name) == 0);
             System.Diagnostics.Debug.Assert(
-                await session_pool.DeleteStorageGroupAsync(test_group_name) == 0);
+                await session_pool.DeleteDatabaseAsync(test_database_name) == 0);
             await session_pool.Close();
             Console.WriteLine("TestSetAndDeleteStorageGroup Passed!");
         }
 
-        public async Task TestDeleteStorageGroups()
+        public async Task TestDeleteDatabase()
         {
             var session_pool = new SessionPool(host, port, pool_size);
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
 
-            await session_pool.SetStorageGroup(string.Format("{0}{1}", test_group_name, "_01"));
-            await session_pool.SetStorageGroup(string.Format("{0}{1}", test_group_name, "_02"));
-            await session_pool.SetStorageGroup(string.Format("{0}{1}", test_group_name, "_03"));
-            await session_pool.SetStorageGroup(string.Format("{0}{1}", test_group_name, "_04"));
-            var group_names = new List<string>() { };
-            group_names.Add(string.Format("{0}{1}", test_group_name, "_01"));
-            group_names.Add(string.Format("{0}{1}", test_group_name, "_02"));
-            group_names.Add(string.Format("{0}{1}", test_group_name, "_03"));
-            group_names.Add(string.Format("{0}{1}", test_group_name, "_04"));
-            System.Diagnostics.Debug.Assert(await session_pool.DeleteStorageGroupsAsync(group_names) == 0);
+            await session_pool.CreateDatabase(string.Format("{0}{1}", test_database_name, "_01"));
+            await session_pool.CreateDatabase(string.Format("{0}{1}", test_database_name, "_02"));
+            await session_pool.CreateDatabase(string.Format("{0}{1}", test_database_name, "_03"));
+            await session_pool.CreateDatabase(string.Format("{0}{1}", test_database_name, "_04"));
+            var database_names = new List<string>() { };
+            database_names.Add(string.Format("{0}{1}", test_database_name, "_01"));
+            database_names.Add(string.Format("{0}{1}", test_database_name, "_02"));
+            database_names.Add(string.Format("{0}{1}", test_database_name, "_03"));
+            database_names.Add(string.Format("{0}{1}", test_database_name, "_04"));
+            System.Diagnostics.Debug.Assert(await session_pool.DeleteDatabasesAsync(database_names) == 0);
             await session_pool.Close();
             Console.WriteLine("TestDeleteStorageGroups Passed!");
         }
@@ -261,7 +265,7 @@
             await session_pool.Open(false);
             if (debug) session_pool.OpenDebugMode();
 
-            await session_pool.DeleteStorageGroupAsync(test_group_name);
+            await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
             await session_pool.SetTimeZone("GMT+8:00");
             System.Diagnostics.Debug.Assert(await session_pool.GetTimeZone() == "GMT+8:00");
@@ -277,18 +281,18 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]), TSDataType.TEXT,
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]), TSDataType.TEXT,
                 TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
                 TSDataType.BOOLEAN, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.CreateTimeSeries(
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[3]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[3]),
                 TSDataType.INT32, TSEncoding.PLAIN, Compressor.UNCOMPRESSED);
             System.Diagnostics.Debug.Assert(status == 0);
 
@@ -298,36 +302,36 @@
             };
             var values = new List<object> { "test_text", true, (int)123 };
             status = await session_pool.InsertRecordAsync(
-                string.Format("{0}.{1}", test_group_name, test_device), new RowRecord(1, values, measures));
+                string.Format("{0}.{1}", test_database_name, test_device), new RowRecord(1, values, measures));
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.InsertRecordAsync(
-                string.Format("{0}.{1}", test_group_name, test_device), new RowRecord(2, values, measures));
+                string.Format("{0}.{1}", test_database_name, test_device), new RowRecord(2, values, measures));
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.InsertRecordAsync(
-                string.Format("{0}.{1}", test_group_name, test_device), new RowRecord(3, values, measures));
+                string.Format("{0}.{1}", test_database_name, test_device), new RowRecord(3, values, measures));
             System.Diagnostics.Debug.Assert(status == 0);
             status = await session_pool.InsertRecordAsync(
-                string.Format("{0}.{1}", test_group_name, test_device), new RowRecord(4, values, measures));
+                string.Format("{0}.{1}", test_database_name, test_device), new RowRecord(4, values, measures));
             System.Diagnostics.Debug.Assert(status == 0);
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
             await res.Close();
             var ts_path_lst = new List<string>()
             {
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[1]),
-                string.Format("{0}.{1}.{2}", test_group_name, test_device, test_measurements[2]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[1]),
+                string.Format("{0}.{1}.{2}", test_database_name, test_device, test_measurements[2]),
             };
             await session_pool.DeleteDataAsync(ts_path_lst, 2, 3);
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
             await res.Close();
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestDeleteData Passed!");
@@ -341,31 +345,31 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN");
             status = await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')");
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
             var res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
             await res.Close();
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("TestNonSql Passed");
@@ -380,31 +384,31 @@
             await cnt.OpenAsync();
             var session_pool = cnt.SessionPool;
             System.Diagnostics.Debug.Assert(cnt.State == System.Data.ConnectionState.Open);
-            var status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            var status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await cnt.CreateCommand(
-                 "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN").ExecuteNonQueryAsync();
+                 "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN").ExecuteNonQueryAsync();
             await cnt.CreateCommand(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN").ExecuteNonQueryAsync();
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN").ExecuteNonQueryAsync();
             await cnt.CreateCommand(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN").ExecuteNonQueryAsync();
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN").ExecuteNonQueryAsync();
 
             status = await cnt.CreateCommand(
-    "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (3, false, 20, '1yxl')").ExecuteNonQueryAsync();
+    "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (3, false, 20, '1yxl')").ExecuteNonQueryAsync();
             status = await cnt.CreateCommand(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')").ExecuteNonQueryAsync();
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')").ExecuteNonQueryAsync();
             System.Diagnostics.Debug.Assert(status == 0);
             await cnt.CreateCommand(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')").ExecuteNonQueryAsync();
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')").ExecuteNonQueryAsync();
             await cnt.CreateCommand(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')").ExecuteNonQueryAsync();
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')").ExecuteNonQueryAsync();
             await cnt.CreateCommand(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')").ExecuteNonQueryAsync();
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')").ExecuteNonQueryAsync();
             await cnt.CreateCommand(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')").ExecuteNonQueryAsync();
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')").ExecuteNonQueryAsync();
             var reader = await cnt.CreateCommand(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10").ExecuteReaderAsync();
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10").ExecuteReaderAsync();
             ConsoleTableBuilder.From(reader.ToDataTable()).WithFormatter(0, fc => $"{fc:yyyy-MM-dd HH:mm:ss.fff}").WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await cnt.CloseAsync();
 
             System.Diagnostics.Debug.Assert(status == 0);
@@ -420,23 +424,23 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".status with datatype=BOOLEAN,encoding=PLAIN");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".temperature with datatype=FLOAT,encoding=PLAIN");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "create timeseries " + string.Format("{0}.{1}", test_group_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN");
+                "create timeseries " + string.Format("{0}.{1}", test_database_name, test_device) + ".hardware with datatype=TEXT,encoding=PLAIN");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (4, false, 20, 'yxl')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (5, true, 12, 'myy')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, temperature, hardware) VALUES (6, true, 21, 'lz')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
             await session_pool.ExecuteNonQueryStatementAsync(
-                "insert into " + string.Format("{0}.{1}", test_group_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
+                "insert into " + string.Format("{0}.{1}", test_database_name, test_device) + "(timestamp, status, hardware) VALUES (7, true,'lz')");
 
             var res = await session_pool.ExecuteQueryStatementAsync("show timeseries root");
             res.ShowTableNames();
@@ -463,12 +467,12 @@
             await res.Close();
             Console.WriteLine("SELECT sql Passed");
             res = await session_pool.ExecuteQueryStatementAsync(
-                "select * from " + string.Format("{0}.{1}", test_group_name, test_device) + " where time<10");
+                "select * from " + string.Format("{0}.{1}", test_database_name, test_device) + " where time<10");
             res.ShowTableNames();
             while (res.HasNext()) Console.WriteLine(res.Next());
 
             await res.Close();
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("SELECT sql Passed");
@@ -481,9 +485,9 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements = new List<string> { test_measurements[0], test_measurements[1] };
             var data_type_lst = new List<TSDataType> { TSDataType.BOOLEAN, TSDataType.FLOAT };
             var encoding_lst = new List<TSEncoding> { TSEncoding.PLAIN, TSEncoding.PLAIN };
@@ -515,7 +519,7 @@
             System.Diagnostics.Debug.Assert(count == fetch_size * processed_size - 10);
             await res.Close();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("RawDataQuery Passed");
@@ -528,9 +532,9 @@
             if (debug) session_pool.OpenDebugMode();
 
             System.Diagnostics.Debug.Assert(session_pool.IsOpen());
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
 
-            var device_id = string.Format("{0}.{1}", test_group_name, test_device);
+            var device_id = string.Format("{0}.{1}", test_database_name, test_device);
             var measurements = new List<string> { test_measurements[0], test_measurements[1] };
             var data_type_lst = new List<TSDataType> { TSDataType.BOOLEAN, TSDataType.FLOAT };
             var encoding_lst = new List<TSEncoding> { TSEncoding.PLAIN, TSEncoding.PLAIN };
@@ -563,7 +567,7 @@
             System.Diagnostics.Debug.Assert(count == 2);
             await res.Close();
 
-            status = await session_pool.DeleteStorageGroupAsync(test_group_name);
+            status = await session_pool.DeleteDatabaseAsync(test_database_name);
             System.Diagnostics.Debug.Assert(status == 0);
             await session_pool.Close();
             Console.WriteLine("LastDataQuery Passed");
diff --git a/src/Apache.IoTDB/DataStructure/ByteBuffer.cs b/src/Apache.IoTDB/DataStructure/ByteBuffer.cs
index 664d4ba..b97583f 100644
--- a/src/Apache.IoTDB/DataStructure/ByteBuffer.cs
+++ b/src/Apache.IoTDB/DataStructure/ByteBuffer.cs
@@ -133,6 +133,14 @@
             return strValue;
         }
 
+        public byte[] GetBinary()
+        {
+          var length = GetInt();
+          var buff = _buffer[_readPos..(_readPos + length)];
+          _readPos += length;
+          return buff;
+        }
+
         public byte[] GetBuffer()
         {
             return _buffer[.._writePos];
@@ -217,6 +225,15 @@
             _writePos += strBuf.Length;
         }
 
+         public void AddBinary(byte[] value)
+        {
+            AddInt(value.Length);
+
+            ExtendBuffer(value.Length);
+            value.CopyTo(_buffer, _writePos);
+            _writePos += value.Length;
+        }
+
         public void AddChar(char value)
         {
             var charBuf = BitConverter.GetBytes(value);
diff --git a/src/Apache.IoTDB/DataStructure/RowRecord.cs b/src/Apache.IoTDB/DataStructure/RowRecord.cs
index dd0ce37..9674f49 100644
--- a/src/Apache.IoTDB/DataStructure/RowRecord.cs
+++ b/src/Apache.IoTDB/DataStructure/RowRecord.cs
@@ -29,22 +29,87 @@
         public long Timestamps { get; }
         public List<object> Values { get; }
         public List<string> Measurements { get; }
+        public List<TSDataType> DataTypes { get; }
 
+        public RowRecord(DateTime timestamp, List<object> values, List<string> measurements, List<string> dataTypes)
+            :this(new DateTimeOffset(timestamp.ToUniversalTime()).ToUnixTimeMilliseconds(), values,measurements, dataTypes)
+        {
+        }
+
+        public RowRecord(DateTime timestamp, List<object> values, List<string> measurements, List<TSDataType> dataTypes)
+            :this(new DateTimeOffset(timestamp.ToUniversalTime()).ToUnixTimeMilliseconds(), values,measurements, dataTypes)
+        {
+        }
+
+        [Obsolete("Use the constructor with List<TSDataType> instead")]
         public RowRecord(DateTime timestamp, List<object> values, List<string> measurements)
             :this(new DateTimeOffset(timestamp.ToUniversalTime()).ToUnixTimeMilliseconds(), values,measurements)
         {
         }
+        [Obsolete("Use the constructor with List<TSDataType> instead")]
         public RowRecord(long timestamps, List<object> values, List<string> measurements)
         {
             Timestamps = timestamps;
             Values = values;
             Measurements = measurements;
         }
+        public RowRecord(long timestamps, List<object> values, List<string> measurements, List<string> dataTypes){
+            Timestamps = timestamps;
+            Values = values;
+            Measurements = measurements;
+            DataTypes = new List<TSDataType>();
+            foreach (var dataType in dataTypes)
+            {
+                switch (dataType)
+                {
+                    case "BOOLEAN":
+                        DataTypes.Add(TSDataType.BOOLEAN);
+                        break;
+                    case "INT32":
+                        DataTypes.Add(TSDataType.INT32);
+                        break;
+                    case "INT64":
+                        DataTypes.Add(TSDataType.INT64);
+                        break;
+                    case "FLOAT":
+                        DataTypes.Add(TSDataType.FLOAT);
+                        break;
+                    case "DOUBLE":
+                        DataTypes.Add(TSDataType.DOUBLE);
+                        break;
+                    case "TEXT":
+                        DataTypes.Add(TSDataType.TEXT);
+                        break;
+                    case "TIMESTAMP":
+                        DataTypes.Add(TSDataType.TIMESTAMP);
+                        break;
+                    case "BLOB":
+                        DataTypes.Add(TSDataType.BLOB);
+                        break;
+                    case "DATE":
+                        DataTypes.Add(TSDataType.DATE);
+                        break;
+                    case "STRING":
+                        DataTypes.Add(TSDataType.STRING);
+                        break;
+                    default:
+                        throw new TException($"Unsupported data type:{dataType}", null);
+                }
+            }
+        }
+        public RowRecord(long timestamps, List<object> values, List<string> measurements, List<TSDataType> dataTypes)
+        {
+            Timestamps = timestamps;
+            Values = values;
+            Measurements = measurements;
+            DataTypes = dataTypes;
+        }
 
-        public void Append(string measurement, object value)
+        public void Append(string measurement, object value, TSDataType dataType)
         {
             Values.Add(value);
             Measurements.Add(measurement);
+            DataTypes.Add(dataType);
         }
 
         public DateTime GetDateTime()
@@ -67,70 +132,19 @@
             foreach (var rowValue in Values)
             {
                 str += "\t\t";
-                str += rowValue.ToString();
+                if(rowValue is byte[] bytes)
+                {
+                  str += Utils.ByteArrayToHexString(bytes);
+                }
+                else
+                {
+                  str += rowValue.ToString();
+                }
             }
 
             return str;
         }
-
-        public List<int> GetDataTypes()
-        {
-            var dataTypeValues = new List<int>();
-            
-            foreach (var valueType in Values.Select(value => value))
-            {
-                switch (valueType)
-                {
-                    case bool _:
-                        dataTypeValues.Add((int) TSDataType.BOOLEAN);
-                        break;
-                    case int _:
-                        dataTypeValues.Add((int) TSDataType.INT32);
-                        break;
-                    case long _:
-                        dataTypeValues.Add((int) TSDataType.INT64);
-                        break;
-                    case float _:
-                        dataTypeValues.Add((int) TSDataType.FLOAT);
-                        break;
-                    case double _:
-                        dataTypeValues.Add((int) TSDataType.DOUBLE);
-                        break;
-                    case string _:
-                        dataTypeValues.Add((int) TSDataType.TEXT);
-                        break;
-                }
-            }
-
-            return dataTypeValues;
-        }
-        public TypeCode GetTypeCode(int index)
-        {
-            TypeCode tSDataType = TypeCode.Empty;
-            var valueType = Values[index];
-            switch (valueType)
-            {
-                case bool _:
-                    tSDataType = TypeCode.Boolean;
-                    break;
-                case int _:
-                    tSDataType = TypeCode.Int32;
-                    break;
-                case long _:
-                    tSDataType = TypeCode.Int64;
-                    break;
-                case float _:
-                    tSDataType = TypeCode.Single;
-                    break;
-                case double _:
-                    tSDataType = TypeCode.Double;
-                    break;
-                case string _:
-                    tSDataType = TypeCode.String;
-                    break;
-            }
-            return tSDataType;
-        }
+        
         public Type GetCrlType(int index)
         {
             Type tSDataType =  typeof(object);
@@ -155,77 +169,97 @@
                 case string _:
                     tSDataType = typeof(string);
                     break;
-            }
-            return tSDataType;
-        }
-
-        public TSDataType GetDataType(int index)
-        {
-            TSDataType tSDataType = TSDataType.NONE;
-            var valueType = Values[index];
-            switch (valueType)
-            {
-                case bool _:
-                    tSDataType = TSDataType.BOOLEAN;
+                case byte[] _:
+                    tSDataType = typeof(byte[]);
                     break;
-                case int _:
-                    tSDataType = TSDataType.INT32;
-                    break;
-                case long _:
-                    tSDataType = TSDataType.INT64;
-                    break;
-                case float _:
-                    tSDataType = TSDataType.FLOAT;
-                    break;
-                case double _:
-                    tSDataType = TSDataType.DOUBLE;
-                    break;
-                case string _:
-                    tSDataType = TSDataType.TEXT;
+                case DateTime _:
+                    tSDataType = typeof(DateTime);
                     break;
             }
             return tSDataType;
         }
-
-
         public byte[] ToBytes()
         {
             var buffer = new ByteBuffer(Values.Count * 8);
-            
-            foreach (var value in Values)
+
+            for (int i = 0; i < Values.Count; i++)
             {
-                switch (value)
+                var value = Values[i];
+                var dataType = DataTypes != null && DataTypes.Count == Values.Count ? DataTypes[i] : GetTSDataType(value);
+
+                switch (dataType)
                 {
-                    case bool b:
+                    case TSDataType.BOOLEAN:
                         buffer.AddByte((byte) TSDataType.BOOLEAN);
-                        buffer.AddBool(b);
+                        buffer.AddBool((bool)value);
                         break;
-                    case int i:
+                    case TSDataType.INT32:
                         buffer.AddByte((byte) TSDataType.INT32);
-                        buffer.AddInt(i);
+                        buffer.AddInt((int)value);
                         break;
-                    case long l:
+                    case TSDataType.INT64:
                         buffer.AddByte((byte) TSDataType.INT64);
-                        buffer.AddLong(l);
+                        buffer.AddLong((long)value);
                         break;
-                    case double d:
-                        buffer.AddByte((byte) TSDataType.DOUBLE);
-                        buffer.AddDouble(d);
-                        break;
-                    case float f:
+                    case TSDataType.FLOAT:
                         buffer.AddByte((byte) TSDataType.FLOAT);
-                        buffer.AddFloat(f);
+                        buffer.AddFloat((float)value);
                         break;
-                    case string s:
+                    case TSDataType.DOUBLE:
+                        buffer.AddByte((byte) TSDataType.DOUBLE);
+                        buffer.AddDouble((double)value);
+                        break;
+                    case TSDataType.TEXT:
                         buffer.AddByte((byte) TSDataType.TEXT);
-                        buffer.AddStr(s);
+                        buffer.AddStr((string)value);
+                        break;
+                    case TSDataType.TIMESTAMP:
+                        buffer.AddByte((byte) TSDataType.TIMESTAMP);
+                        buffer.AddLong((long)value);
+                        break;
+                    case TSDataType.BLOB:
+                        buffer.AddByte((byte) TSDataType.BLOB);
+                        buffer.AddBinary((byte[])value);
+                        break;
+                    case TSDataType.DATE:
+                        buffer.AddByte((byte) TSDataType.DATE);
+                        buffer.AddInt(Utils.ParseDateToInt((DateTime)value));
+                        break;
+                    case TSDataType.STRING:
+                        buffer.AddByte((byte) TSDataType.STRING);
+                        buffer.AddStr((string)value);
                         break;
                     default:
-                        throw new TException($"Unsupported data type:{value.GetType()}", null);
+                        throw new TException($"Unsupported data type:{dataType}", null);
                 }
             }
 
-            return buffer.GetBuffer();;
+            return buffer.GetBuffer();
+        }
+
+        private TSDataType GetTSDataType(object value)
+        {
+            switch (value)
+            {
+                case bool _:
+                    return TSDataType.BOOLEAN;
+                case int _:
+                    return TSDataType.INT32;
+                case long _:
+                    return TSDataType.INT64;
+                case float _:
+                    return TSDataType.FLOAT;
+                case double _:
+                    return TSDataType.DOUBLE;
+                case string _:
+                    return TSDataType.TEXT;
+                case byte[] _:
+                    return TSDataType.BLOB;
+                case DateTime _:
+                    return TSDataType.DATE;
+                default:
+                    throw new TException($"Unsupported data type:{value.GetType()}", null);
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/src/Apache.IoTDB/DataStructure/SessionDataSet.cs b/src/Apache.IoTDB/DataStructure/SessionDataSet.cs
index fcdf265..32191a2 100644
--- a/src/Apache.IoTDB/DataStructure/SessionDataSet.cs
+++ b/src/Apache.IoTDB/DataStructure/SessionDataSet.cs
@@ -170,7 +170,11 @@
                 "DOUBLE" => TSDataType.DOUBLE,
                 "TEXT" => TSDataType.TEXT,
                 "NULLTYPE" => TSDataType.NONE,
-                _ => TSDataType.TEXT
+                "TIMESTAMP" => TSDataType.TIMESTAMP,
+                "DATE" => TSDataType.DATE,
+                "BLOB" => TSDataType.BLOB,
+                "STRING" => TSDataType.STRING,
+                _ => TSDataType.STRING
             };
         }
 
@@ -207,9 +211,14 @@
                                 localField = columnValueBuffer.GetBool();
                                 break;
                             case TSDataType.INT32:
+                            // case TSDataType.DATE:
                                 localField = columnValueBuffer.GetInt();
                                 break;
+                            case TSDataType.DATE:
+                                localField = Utils.ParseIntToDate(columnValueBuffer.GetInt());
+                                break;
                             case TSDataType.INT64:
+                            case TSDataType.TIMESTAMP:
                                 localField = columnValueBuffer.GetLong();
                                 break;
                             case TSDataType.FLOAT:
@@ -219,8 +228,14 @@
                                 localField = columnValueBuffer.GetDouble();
                                 break;
                             case TSDataType.TEXT:
+                            case TSDataType.STRING:
+                            // case TSDataType.BLOB:
                                 localField = columnValueBuffer.GetStr();
                                 break;
+                            case TSDataType.BLOB:
+                                localField = columnValueBuffer.GetBinary();
+                                break;
+                            // TODO
                             default:
                                 string err_msg = "value format not supported";
                                 throw new TException(err_msg, null);
diff --git a/src/Apache.IoTDB/DataStructure/Tablet.cs b/src/Apache.IoTDB/DataStructure/Tablet.cs
index e2b4a03..3a19a94 100644
--- a/src/Apache.IoTDB/DataStructure/Tablet.cs
+++ b/src/Apache.IoTDB/DataStructure/Tablet.cs
@@ -169,6 +169,12 @@
                             case string _:
                                 DataTypes.Add(TSDataType.TEXT);
                                 break;
+                            case byte[] _:
+                                DataTypes.Add(TSDataType.BLOB);
+                                break;
+                            case DateTime _:
+                                DataTypes.Add(TSDataType.DATE);
+                                break;
                             default:
                                 throw new Exception(
                                     $"Input error. Data type {_values[j][i].GetType().Name} is not supported.",
@@ -229,9 +235,11 @@
                         estimateSize += 1;
                         break;
                     case TSDataType.INT32:
+                    case TSDataType.DATE:
                         estimateSize += 4;
                         break;
                     case TSDataType.INT64:
+                    case TSDataType.TIMESTAMP:
                         estimateSize += 8;
                         break;
                     case TSDataType.FLOAT:
@@ -241,6 +249,8 @@
                         estimateSize += 8;
                         break;
                     case TSDataType.TEXT:
+                    case TSDataType.BLOB:
+                    case TSDataType.STRING:
                         estimateSize += 8;
                         break;
                     default:
@@ -305,6 +315,7 @@
                             break;
                         }
                     case TSDataType.INT64:
+                    case TSDataType.TIMESTAMP:
                         {
                             for (int j = 0; j < RowNumber; j++)
                             {
@@ -335,6 +346,7 @@
                             break;
                         }
                     case TSDataType.TEXT:
+                    case TSDataType.STRING:
                         {
                             for (int j = 0; j < RowNumber; j++)
                             {
@@ -344,6 +356,24 @@
 
                             break;
                         }
+                    case TSDataType.DATE:
+                        {
+                            for (int j = 0; j < RowNumber; j++)
+                            {
+                                var value = _values[j][i];
+                                buffer.AddInt(value != null ? Utils.ParseDateToInt((DateTime)value) : int.MinValue);
+                            }
+                            break;
+                        }
+                    case TSDataType.BLOB:
+                        {
+                            for (int j = 0; j < RowNumber; j++)
+                            {
+                                var value = _values[j][i];
+                                buffer.AddBinary(value != null ? (byte[])value : new byte[] { });
+                            }
+                            break;
+                        }
                     default:
                         throw new Exception($"Unsupported data type {dataType}", null);
                 }
diff --git a/src/Apache.IoTDB/IoTDBConstants.cs b/src/Apache.IoTDB/IoTDBConstants.cs
index bf3f5e5..5faac76 100644
--- a/src/Apache.IoTDB/IoTDBConstants.cs
+++ b/src/Apache.IoTDB/IoTDBConstants.cs
@@ -21,21 +21,24 @@
 {
     public enum TSDataType
     {
-        BOOLEAN,
-        INT32,
-        INT64,
-        FLOAT,
-        DOUBLE,
-        TEXT,
-
-        // default value must be 0
-        NONE
+        BOOLEAN = 0,
+        INT32 = 1,
+        INT64 = 2,
+        FLOAT = 3,
+        DOUBLE = 4,
+        TEXT = 5,
+        // unused
+        NONE = 7,
+        TIMESTAMP = 8,
+        DATE = 9,
+        BLOB = 10,
+        STRING = 11,
     }
 
     public enum TSEncoding
     {
         PLAIN,
-        PLAIN_DICTIONARY,
+        DICTIONARY,
         RLE,
         DIFF,
         TS_2DIFF,
@@ -43,21 +46,21 @@
         GORILLA_V1,
         REGULAR,
         GORILLA,
-
-        // default value must be 0
-        NONE
+        ZIGZAG,
+        FREQ,
+        CHIMP,
+        SPRINTZ,
+        RLBE
     }
 
     public enum Compressor
     {
-        UNCOMPRESSED,
-        SNAPPY,
-        GZIP,
-        LZO,
-        SDT,
-        PAA,
-        PLA,
-        LZ4
+        UNCOMPRESSED = 0,
+        SNAPPY = 1,
+        GZIP = 2,
+        LZ4 = 7,
+        ZSTD = 8,
+        LZMA2 = 9
     }
     public enum TemplateQueryType
     {
diff --git a/src/Apache.IoTDB/Rpc/Generated/IClientRPCService.cs b/src/Apache.IoTDB/Rpc/Generated/IClientRPCService.cs
index b90d345..d2771fc 100644
--- a/src/Apache.IoTDB/Rpc/Generated/IClientRPCService.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/IClientRPCService.cs
@@ -4354,6 +4354,17 @@
       {
       }
 
+      public executeQueryStatementV2Args DeepCopy()
+      {
+        var tmp471 = new executeQueryStatementV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp471.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp471.__isset.req = this.__isset.req;
+        return tmp471;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -4445,10 +4456,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeQueryStatementV2_args(");
-        int tmp417 = 0;
+        int tmp472 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp417++) { sb.Append(", "); }
+          if(0 < tmp472++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -4486,6 +4497,17 @@
       {
       }
 
+      public executeQueryStatementV2Result DeepCopy()
+      {
+        var tmp473 = new executeQueryStatementV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp473.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp473.__isset.success = this.__isset.success;
+        return tmp473;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -4581,10 +4603,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeQueryStatementV2_result(");
-        int tmp418 = 0;
+        int tmp474 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp418++) { sb.Append(", "); }
+          if(0 < tmp474++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -4622,6 +4644,17 @@
       {
       }
 
+      public executeUpdateStatementV2Args DeepCopy()
+      {
+        var tmp475 = new executeUpdateStatementV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp475.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp475.__isset.req = this.__isset.req;
+        return tmp475;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -4713,10 +4746,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeUpdateStatementV2_args(");
-        int tmp419 = 0;
+        int tmp476 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp419++) { sb.Append(", "); }
+          if(0 < tmp476++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -4754,6 +4787,17 @@
       {
       }
 
+      public executeUpdateStatementV2Result DeepCopy()
+      {
+        var tmp477 = new executeUpdateStatementV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp477.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp477.__isset.success = this.__isset.success;
+        return tmp477;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -4849,10 +4893,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeUpdateStatementV2_result(");
-        int tmp420 = 0;
+        int tmp478 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp420++) { sb.Append(", "); }
+          if(0 < tmp478++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -4890,6 +4934,17 @@
       {
       }
 
+      public executeStatementV2Args DeepCopy()
+      {
+        var tmp479 = new executeStatementV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp479.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp479.__isset.req = this.__isset.req;
+        return tmp479;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -4981,10 +5036,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeStatementV2_args(");
-        int tmp421 = 0;
+        int tmp480 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp421++) { sb.Append(", "); }
+          if(0 < tmp480++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -5022,6 +5077,17 @@
       {
       }
 
+      public executeStatementV2Result DeepCopy()
+      {
+        var tmp481 = new executeStatementV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp481.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp481.__isset.success = this.__isset.success;
+        return tmp481;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5117,10 +5183,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeStatementV2_result(");
-        int tmp422 = 0;
+        int tmp482 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp422++) { sb.Append(", "); }
+          if(0 < tmp482++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -5158,6 +5224,17 @@
       {
       }
 
+      public executeRawDataQueryV2Args DeepCopy()
+      {
+        var tmp483 = new executeRawDataQueryV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp483.Req = (TSRawDataQueryReq)this.Req.DeepCopy();
+        }
+        tmp483.__isset.req = this.__isset.req;
+        return tmp483;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5249,10 +5326,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeRawDataQueryV2_args(");
-        int tmp423 = 0;
+        int tmp484 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp423++) { sb.Append(", "); }
+          if(0 < tmp484++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -5290,6 +5367,17 @@
       {
       }
 
+      public executeRawDataQueryV2Result DeepCopy()
+      {
+        var tmp485 = new executeRawDataQueryV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp485.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp485.__isset.success = this.__isset.success;
+        return tmp485;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5385,10 +5473,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeRawDataQueryV2_result(");
-        int tmp424 = 0;
+        int tmp486 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp424++) { sb.Append(", "); }
+          if(0 < tmp486++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -5426,6 +5514,17 @@
       {
       }
 
+      public executeLastDataQueryV2Args DeepCopy()
+      {
+        var tmp487 = new executeLastDataQueryV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp487.Req = (TSLastDataQueryReq)this.Req.DeepCopy();
+        }
+        tmp487.__isset.req = this.__isset.req;
+        return tmp487;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5517,10 +5616,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeLastDataQueryV2_args(");
-        int tmp425 = 0;
+        int tmp488 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp425++) { sb.Append(", "); }
+          if(0 < tmp488++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -5558,6 +5657,17 @@
       {
       }
 
+      public executeLastDataQueryV2Result DeepCopy()
+      {
+        var tmp489 = new executeLastDataQueryV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp489.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp489.__isset.success = this.__isset.success;
+        return tmp489;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5653,10 +5763,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeLastDataQueryV2_result(");
-        int tmp426 = 0;
+        int tmp490 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp426++) { sb.Append(", "); }
+          if(0 < tmp490++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -5694,6 +5804,17 @@
       {
       }
 
+      public executeFastLastDataQueryForOneDeviceV2Args DeepCopy()
+      {
+        var tmp491 = new executeFastLastDataQueryForOneDeviceV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp491.Req = (TSFastLastDataQueryForOneDeviceReq)this.Req.DeepCopy();
+        }
+        tmp491.__isset.req = this.__isset.req;
+        return tmp491;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5785,10 +5906,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeFastLastDataQueryForOneDeviceV2_args(");
-        int tmp427 = 0;
+        int tmp492 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp427++) { sb.Append(", "); }
+          if(0 < tmp492++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -5826,6 +5947,17 @@
       {
       }
 
+      public executeFastLastDataQueryForOneDeviceV2Result DeepCopy()
+      {
+        var tmp493 = new executeFastLastDataQueryForOneDeviceV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp493.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp493.__isset.success = this.__isset.success;
+        return tmp493;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -5921,10 +6053,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeFastLastDataQueryForOneDeviceV2_result(");
-        int tmp428 = 0;
+        int tmp494 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp428++) { sb.Append(", "); }
+          if(0 < tmp494++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -5962,6 +6094,17 @@
       {
       }
 
+      public executeAggregationQueryV2Args DeepCopy()
+      {
+        var tmp495 = new executeAggregationQueryV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp495.Req = (TSAggregationQueryReq)this.Req.DeepCopy();
+        }
+        tmp495.__isset.req = this.__isset.req;
+        return tmp495;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6053,10 +6196,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeAggregationQueryV2_args(");
-        int tmp429 = 0;
+        int tmp496 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp429++) { sb.Append(", "); }
+          if(0 < tmp496++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -6094,6 +6237,17 @@
       {
       }
 
+      public executeAggregationQueryV2Result DeepCopy()
+      {
+        var tmp497 = new executeAggregationQueryV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp497.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp497.__isset.success = this.__isset.success;
+        return tmp497;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6189,10 +6343,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeAggregationQueryV2_result(");
-        int tmp430 = 0;
+        int tmp498 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp430++) { sb.Append(", "); }
+          if(0 < tmp498++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -6230,6 +6384,17 @@
       {
       }
 
+      public executeGroupByQueryIntervalQueryArgs DeepCopy()
+      {
+        var tmp499 = new executeGroupByQueryIntervalQueryArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp499.Req = (TSGroupByQueryIntervalReq)this.Req.DeepCopy();
+        }
+        tmp499.__isset.req = this.__isset.req;
+        return tmp499;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6321,10 +6486,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeGroupByQueryIntervalQuery_args(");
-        int tmp431 = 0;
+        int tmp500 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp431++) { sb.Append(", "); }
+          if(0 < tmp500++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -6362,6 +6527,17 @@
       {
       }
 
+      public executeGroupByQueryIntervalQueryResult DeepCopy()
+      {
+        var tmp501 = new executeGroupByQueryIntervalQueryResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp501.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp501.__isset.success = this.__isset.success;
+        return tmp501;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6457,10 +6633,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeGroupByQueryIntervalQuery_result(");
-        int tmp432 = 0;
+        int tmp502 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp432++) { sb.Append(", "); }
+          if(0 < tmp502++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -6498,6 +6674,17 @@
       {
       }
 
+      public fetchResultsV2Args DeepCopy()
+      {
+        var tmp503 = new fetchResultsV2Args();
+        if((Req != null) && __isset.req)
+        {
+          tmp503.Req = (TSFetchResultsReq)this.Req.DeepCopy();
+        }
+        tmp503.__isset.req = this.__isset.req;
+        return tmp503;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6589,10 +6776,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchResultsV2_args(");
-        int tmp433 = 0;
+        int tmp504 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp433++) { sb.Append(", "); }
+          if(0 < tmp504++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -6630,6 +6817,17 @@
       {
       }
 
+      public fetchResultsV2Result DeepCopy()
+      {
+        var tmp505 = new fetchResultsV2Result();
+        if((Success != null) && __isset.success)
+        {
+          tmp505.Success = (TSFetchResultsResp)this.Success.DeepCopy();
+        }
+        tmp505.__isset.success = this.__isset.success;
+        return tmp505;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6725,10 +6923,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchResultsV2_result(");
-        int tmp434 = 0;
+        int tmp506 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp434++) { sb.Append(", "); }
+          if(0 < tmp506++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -6766,6 +6964,17 @@
       {
       }
 
+      public openSessionArgs DeepCopy()
+      {
+        var tmp507 = new openSessionArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp507.Req = (TSOpenSessionReq)this.Req.DeepCopy();
+        }
+        tmp507.__isset.req = this.__isset.req;
+        return tmp507;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6857,10 +7066,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("openSession_args(");
-        int tmp435 = 0;
+        int tmp508 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp435++) { sb.Append(", "); }
+          if(0 < tmp508++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -6898,6 +7107,17 @@
       {
       }
 
+      public openSessionResult DeepCopy()
+      {
+        var tmp509 = new openSessionResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp509.Success = (TSOpenSessionResp)this.Success.DeepCopy();
+        }
+        tmp509.__isset.success = this.__isset.success;
+        return tmp509;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -6993,10 +7213,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("openSession_result(");
-        int tmp436 = 0;
+        int tmp510 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp436++) { sb.Append(", "); }
+          if(0 < tmp510++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -7034,6 +7254,17 @@
       {
       }
 
+      public closeSessionArgs DeepCopy()
+      {
+        var tmp511 = new closeSessionArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp511.Req = (TSCloseSessionReq)this.Req.DeepCopy();
+        }
+        tmp511.__isset.req = this.__isset.req;
+        return tmp511;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7125,10 +7356,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("closeSession_args(");
-        int tmp437 = 0;
+        int tmp512 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp437++) { sb.Append(", "); }
+          if(0 < tmp512++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -7166,6 +7397,17 @@
       {
       }
 
+      public closeSessionResult DeepCopy()
+      {
+        var tmp513 = new closeSessionResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp513.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp513.__isset.success = this.__isset.success;
+        return tmp513;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7261,10 +7503,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("closeSession_result(");
-        int tmp438 = 0;
+        int tmp514 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp438++) { sb.Append(", "); }
+          if(0 < tmp514++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -7302,6 +7544,17 @@
       {
       }
 
+      public executeStatementArgs DeepCopy()
+      {
+        var tmp515 = new executeStatementArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp515.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp515.__isset.req = this.__isset.req;
+        return tmp515;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7393,10 +7646,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeStatement_args(");
-        int tmp439 = 0;
+        int tmp516 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp439++) { sb.Append(", "); }
+          if(0 < tmp516++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -7434,6 +7687,17 @@
       {
       }
 
+      public executeStatementResult DeepCopy()
+      {
+        var tmp517 = new executeStatementResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp517.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp517.__isset.success = this.__isset.success;
+        return tmp517;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7529,10 +7793,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeStatement_result(");
-        int tmp440 = 0;
+        int tmp518 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp440++) { sb.Append(", "); }
+          if(0 < tmp518++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -7570,6 +7834,17 @@
       {
       }
 
+      public executeBatchStatementArgs DeepCopy()
+      {
+        var tmp519 = new executeBatchStatementArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp519.Req = (TSExecuteBatchStatementReq)this.Req.DeepCopy();
+        }
+        tmp519.__isset.req = this.__isset.req;
+        return tmp519;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7661,10 +7936,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeBatchStatement_args(");
-        int tmp441 = 0;
+        int tmp520 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp441++) { sb.Append(", "); }
+          if(0 < tmp520++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -7702,6 +7977,17 @@
       {
       }
 
+      public executeBatchStatementResult DeepCopy()
+      {
+        var tmp521 = new executeBatchStatementResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp521.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp521.__isset.success = this.__isset.success;
+        return tmp521;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7797,10 +8083,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeBatchStatement_result(");
-        int tmp442 = 0;
+        int tmp522 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp442++) { sb.Append(", "); }
+          if(0 < tmp522++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -7838,6 +8124,17 @@
       {
       }
 
+      public executeQueryStatementArgs DeepCopy()
+      {
+        var tmp523 = new executeQueryStatementArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp523.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp523.__isset.req = this.__isset.req;
+        return tmp523;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -7929,10 +8226,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeQueryStatement_args(");
-        int tmp443 = 0;
+        int tmp524 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp443++) { sb.Append(", "); }
+          if(0 < tmp524++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -7970,6 +8267,17 @@
       {
       }
 
+      public executeQueryStatementResult DeepCopy()
+      {
+        var tmp525 = new executeQueryStatementResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp525.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp525.__isset.success = this.__isset.success;
+        return tmp525;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8065,10 +8373,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeQueryStatement_result(");
-        int tmp444 = 0;
+        int tmp526 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp444++) { sb.Append(", "); }
+          if(0 < tmp526++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -8106,6 +8414,17 @@
       {
       }
 
+      public executeUpdateStatementArgs DeepCopy()
+      {
+        var tmp527 = new executeUpdateStatementArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp527.Req = (TSExecuteStatementReq)this.Req.DeepCopy();
+        }
+        tmp527.__isset.req = this.__isset.req;
+        return tmp527;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8197,10 +8516,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeUpdateStatement_args(");
-        int tmp445 = 0;
+        int tmp528 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp445++) { sb.Append(", "); }
+          if(0 < tmp528++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -8238,6 +8557,17 @@
       {
       }
 
+      public executeUpdateStatementResult DeepCopy()
+      {
+        var tmp529 = new executeUpdateStatementResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp529.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp529.__isset.success = this.__isset.success;
+        return tmp529;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8333,10 +8663,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeUpdateStatement_result(");
-        int tmp446 = 0;
+        int tmp530 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp446++) { sb.Append(", "); }
+          if(0 < tmp530++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -8374,6 +8704,17 @@
       {
       }
 
+      public fetchResultsArgs DeepCopy()
+      {
+        var tmp531 = new fetchResultsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp531.Req = (TSFetchResultsReq)this.Req.DeepCopy();
+        }
+        tmp531.__isset.req = this.__isset.req;
+        return tmp531;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8465,10 +8806,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchResults_args(");
-        int tmp447 = 0;
+        int tmp532 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp447++) { sb.Append(", "); }
+          if(0 < tmp532++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -8506,6 +8847,17 @@
       {
       }
 
+      public fetchResultsResult DeepCopy()
+      {
+        var tmp533 = new fetchResultsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp533.Success = (TSFetchResultsResp)this.Success.DeepCopy();
+        }
+        tmp533.__isset.success = this.__isset.success;
+        return tmp533;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8601,10 +8953,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchResults_result(");
-        int tmp448 = 0;
+        int tmp534 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp448++) { sb.Append(", "); }
+          if(0 < tmp534++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -8642,6 +8994,17 @@
       {
       }
 
+      public fetchMetadataArgs DeepCopy()
+      {
+        var tmp535 = new fetchMetadataArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp535.Req = (TSFetchMetadataReq)this.Req.DeepCopy();
+        }
+        tmp535.__isset.req = this.__isset.req;
+        return tmp535;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8733,10 +9096,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchMetadata_args(");
-        int tmp449 = 0;
+        int tmp536 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp449++) { sb.Append(", "); }
+          if(0 < tmp536++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -8774,6 +9137,17 @@
       {
       }
 
+      public fetchMetadataResult DeepCopy()
+      {
+        var tmp537 = new fetchMetadataResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp537.Success = (TSFetchMetadataResp)this.Success.DeepCopy();
+        }
+        tmp537.__isset.success = this.__isset.success;
+        return tmp537;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -8869,10 +9243,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchMetadata_result(");
-        int tmp450 = 0;
+        int tmp538 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp450++) { sb.Append(", "); }
+          if(0 < tmp538++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -8910,6 +9284,17 @@
       {
       }
 
+      public cancelOperationArgs DeepCopy()
+      {
+        var tmp539 = new cancelOperationArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp539.Req = (TSCancelOperationReq)this.Req.DeepCopy();
+        }
+        tmp539.__isset.req = this.__isset.req;
+        return tmp539;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9001,10 +9386,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("cancelOperation_args(");
-        int tmp451 = 0;
+        int tmp540 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp451++) { sb.Append(", "); }
+          if(0 < tmp540++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -9042,6 +9427,17 @@
       {
       }
 
+      public cancelOperationResult DeepCopy()
+      {
+        var tmp541 = new cancelOperationResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp541.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp541.__isset.success = this.__isset.success;
+        return tmp541;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9137,10 +9533,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("cancelOperation_result(");
-        int tmp452 = 0;
+        int tmp542 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp452++) { sb.Append(", "); }
+          if(0 < tmp542++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -9178,6 +9574,17 @@
       {
       }
 
+      public closeOperationArgs DeepCopy()
+      {
+        var tmp543 = new closeOperationArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp543.Req = (TSCloseOperationReq)this.Req.DeepCopy();
+        }
+        tmp543.__isset.req = this.__isset.req;
+        return tmp543;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9269,10 +9676,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("closeOperation_args(");
-        int tmp453 = 0;
+        int tmp544 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp453++) { sb.Append(", "); }
+          if(0 < tmp544++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -9310,6 +9717,17 @@
       {
       }
 
+      public closeOperationResult DeepCopy()
+      {
+        var tmp545 = new closeOperationResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp545.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp545.__isset.success = this.__isset.success;
+        return tmp545;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9405,10 +9823,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("closeOperation_result(");
-        int tmp454 = 0;
+        int tmp546 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp454++) { sb.Append(", "); }
+          if(0 < tmp546++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -9446,6 +9864,17 @@
       {
       }
 
+      public getTimeZoneArgs DeepCopy()
+      {
+        var tmp547 = new getTimeZoneArgs();
+        if(__isset.sessionId)
+        {
+          tmp547.SessionId = this.SessionId;
+        }
+        tmp547.__isset.sessionId = this.__isset.sessionId;
+        return tmp547;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9536,10 +9965,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("getTimeZone_args(");
-        int tmp455 = 0;
+        int tmp548 = 0;
         if(__isset.sessionId)
         {
-          if(0 < tmp455++) { sb.Append(", "); }
+          if(0 < tmp548++) { sb.Append(", "); }
           sb.Append("SessionId: ");
           SessionId.ToString(sb);
         }
@@ -9577,6 +10006,17 @@
       {
       }
 
+      public getTimeZoneResult DeepCopy()
+      {
+        var tmp549 = new getTimeZoneResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp549.Success = (TSGetTimeZoneResp)this.Success.DeepCopy();
+        }
+        tmp549.__isset.success = this.__isset.success;
+        return tmp549;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9672,10 +10112,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("getTimeZone_result(");
-        int tmp456 = 0;
+        int tmp550 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp456++) { sb.Append(", "); }
+          if(0 < tmp550++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -9713,6 +10153,17 @@
       {
       }
 
+      public setTimeZoneArgs DeepCopy()
+      {
+        var tmp551 = new setTimeZoneArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp551.Req = (TSSetTimeZoneReq)this.Req.DeepCopy();
+        }
+        tmp551.__isset.req = this.__isset.req;
+        return tmp551;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9804,10 +10255,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setTimeZone_args(");
-        int tmp457 = 0;
+        int tmp552 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp457++) { sb.Append(", "); }
+          if(0 < tmp552++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -9845,6 +10296,17 @@
       {
       }
 
+      public setTimeZoneResult DeepCopy()
+      {
+        var tmp553 = new setTimeZoneResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp553.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp553.__isset.success = this.__isset.success;
+        return tmp553;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -9940,10 +10402,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setTimeZone_result(");
-        int tmp458 = 0;
+        int tmp554 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp458++) { sb.Append(", "); }
+          if(0 < tmp554++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -9960,6 +10422,12 @@
       {
       }
 
+      public getPropertiesArgs DeepCopy()
+      {
+        var tmp555 = new getPropertiesArgs();
+        return tmp555;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10060,6 +10528,17 @@
       {
       }
 
+      public getPropertiesResult DeepCopy()
+      {
+        var tmp557 = new getPropertiesResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp557.Success = (ServerProperties)this.Success.DeepCopy();
+        }
+        tmp557.__isset.success = this.__isset.success;
+        return tmp557;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10155,10 +10634,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("getProperties_result(");
-        int tmp460 = 0;
+        int tmp558 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp460++) { sb.Append(", "); }
+          if(0 < tmp558++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -10211,6 +10690,22 @@
       {
       }
 
+      public setStorageGroupArgs DeepCopy()
+      {
+        var tmp559 = new setStorageGroupArgs();
+        if(__isset.sessionId)
+        {
+          tmp559.SessionId = this.SessionId;
+        }
+        tmp559.__isset.sessionId = this.__isset.sessionId;
+        if((StorageGroup != null) && __isset.storageGroup)
+        {
+          tmp559.StorageGroup = this.StorageGroup;
+        }
+        tmp559.__isset.storageGroup = this.__isset.storageGroup;
+        return tmp559;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10325,16 +10820,16 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setStorageGroup_args(");
-        int tmp461 = 0;
+        int tmp560 = 0;
         if(__isset.sessionId)
         {
-          if(0 < tmp461++) { sb.Append(", "); }
+          if(0 < tmp560++) { sb.Append(", "); }
           sb.Append("SessionId: ");
           SessionId.ToString(sb);
         }
         if((StorageGroup != null) && __isset.storageGroup)
         {
-          if(0 < tmp461++) { sb.Append(", "); }
+          if(0 < tmp560++) { sb.Append(", "); }
           sb.Append("StorageGroup: ");
           StorageGroup.ToString(sb);
         }
@@ -10372,6 +10867,17 @@
       {
       }
 
+      public setStorageGroupResult DeepCopy()
+      {
+        var tmp561 = new setStorageGroupResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp561.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp561.__isset.success = this.__isset.success;
+        return tmp561;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10467,10 +10973,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setStorageGroup_result(");
-        int tmp462 = 0;
+        int tmp562 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp462++) { sb.Append(", "); }
+          if(0 < tmp562++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -10508,6 +11014,17 @@
       {
       }
 
+      public createTimeseriesArgs DeepCopy()
+      {
+        var tmp563 = new createTimeseriesArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp563.Req = (TSCreateTimeseriesReq)this.Req.DeepCopy();
+        }
+        tmp563.__isset.req = this.__isset.req;
+        return tmp563;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10599,10 +11116,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createTimeseries_args(");
-        int tmp463 = 0;
+        int tmp564 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp463++) { sb.Append(", "); }
+          if(0 < tmp564++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -10640,6 +11157,17 @@
       {
       }
 
+      public createTimeseriesResult DeepCopy()
+      {
+        var tmp565 = new createTimeseriesResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp565.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp565.__isset.success = this.__isset.success;
+        return tmp565;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10735,10 +11263,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createTimeseries_result(");
-        int tmp464 = 0;
+        int tmp566 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp464++) { sb.Append(", "); }
+          if(0 < tmp566++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -10776,6 +11304,17 @@
       {
       }
 
+      public createAlignedTimeseriesArgs DeepCopy()
+      {
+        var tmp567 = new createAlignedTimeseriesArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp567.Req = (TSCreateAlignedTimeseriesReq)this.Req.DeepCopy();
+        }
+        tmp567.__isset.req = this.__isset.req;
+        return tmp567;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -10867,10 +11406,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createAlignedTimeseries_args(");
-        int tmp465 = 0;
+        int tmp568 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp465++) { sb.Append(", "); }
+          if(0 < tmp568++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -10908,6 +11447,17 @@
       {
       }
 
+      public createAlignedTimeseriesResult DeepCopy()
+      {
+        var tmp569 = new createAlignedTimeseriesResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp569.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp569.__isset.success = this.__isset.success;
+        return tmp569;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11003,10 +11553,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createAlignedTimeseries_result(");
-        int tmp466 = 0;
+        int tmp570 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp466++) { sb.Append(", "); }
+          if(0 < tmp570++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -11044,6 +11594,17 @@
       {
       }
 
+      public createMultiTimeseriesArgs DeepCopy()
+      {
+        var tmp571 = new createMultiTimeseriesArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp571.Req = (TSCreateMultiTimeseriesReq)this.Req.DeepCopy();
+        }
+        tmp571.__isset.req = this.__isset.req;
+        return tmp571;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11135,10 +11696,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createMultiTimeseries_args(");
-        int tmp467 = 0;
+        int tmp572 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp467++) { sb.Append(", "); }
+          if(0 < tmp572++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -11176,6 +11737,17 @@
       {
       }
 
+      public createMultiTimeseriesResult DeepCopy()
+      {
+        var tmp573 = new createMultiTimeseriesResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp573.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp573.__isset.success = this.__isset.success;
+        return tmp573;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11271,10 +11843,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createMultiTimeseries_result(");
-        int tmp468 = 0;
+        int tmp574 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp468++) { sb.Append(", "); }
+          if(0 < tmp574++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -11327,6 +11899,22 @@
       {
       }
 
+      public deleteTimeseriesArgs DeepCopy()
+      {
+        var tmp575 = new deleteTimeseriesArgs();
+        if(__isset.sessionId)
+        {
+          tmp575.SessionId = this.SessionId;
+        }
+        tmp575.__isset.sessionId = this.__isset.sessionId;
+        if((Path != null) && __isset.path)
+        {
+          tmp575.Path = this.Path.DeepCopy();
+        }
+        tmp575.__isset.path = this.__isset.path;
+        return tmp575;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11358,13 +11946,13 @@
                 if (field.Type == TType.List)
                 {
                   {
-                    TList _list469 = await iprot.ReadListBeginAsync(cancellationToken);
-                    Path = new List<string>(_list469.Count);
-                    for(int _i470 = 0; _i470 < _list469.Count; ++_i470)
+                    TList _list576 = await iprot.ReadListBeginAsync(cancellationToken);
+                    Path = new List<string>(_list576.Count);
+                    for(int _i577 = 0; _i577 < _list576.Count; ++_i577)
                     {
-                      string _elem471;
-                      _elem471 = await iprot.ReadStringAsync(cancellationToken);
-                      Path.Add(_elem471);
+                      string _elem578;
+                      _elem578 = await iprot.ReadStringAsync(cancellationToken);
+                      Path.Add(_elem578);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
@@ -11415,9 +12003,9 @@
             await oprot.WriteFieldBeginAsync(field, cancellationToken);
             {
               await oprot.WriteListBeginAsync(new TList(TType.String, Path.Count), cancellationToken);
-              foreach (string _iter472 in Path)
+              foreach (string _iter579 in Path)
               {
-                await oprot.WriteStringAsync(_iter472, cancellationToken);
+                await oprot.WriteStringAsync(_iter579, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -11458,16 +12046,16 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteTimeseries_args(");
-        int tmp473 = 0;
+        int tmp580 = 0;
         if(__isset.sessionId)
         {
-          if(0 < tmp473++) { sb.Append(", "); }
+          if(0 < tmp580++) { sb.Append(", "); }
           sb.Append("SessionId: ");
           SessionId.ToString(sb);
         }
         if((Path != null) && __isset.path)
         {
-          if(0 < tmp473++) { sb.Append(", "); }
+          if(0 < tmp580++) { sb.Append(", "); }
           sb.Append("Path: ");
           Path.ToString(sb);
         }
@@ -11505,6 +12093,17 @@
       {
       }
 
+      public deleteTimeseriesResult DeepCopy()
+      {
+        var tmp581 = new deleteTimeseriesResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp581.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp581.__isset.success = this.__isset.success;
+        return tmp581;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11600,10 +12199,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteTimeseries_result(");
-        int tmp474 = 0;
+        int tmp582 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp474++) { sb.Append(", "); }
+          if(0 < tmp582++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -11656,6 +12255,22 @@
       {
       }
 
+      public deleteStorageGroupsArgs DeepCopy()
+      {
+        var tmp583 = new deleteStorageGroupsArgs();
+        if(__isset.sessionId)
+        {
+          tmp583.SessionId = this.SessionId;
+        }
+        tmp583.__isset.sessionId = this.__isset.sessionId;
+        if((StorageGroup != null) && __isset.storageGroup)
+        {
+          tmp583.StorageGroup = this.StorageGroup.DeepCopy();
+        }
+        tmp583.__isset.storageGroup = this.__isset.storageGroup;
+        return tmp583;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11687,13 +12302,13 @@
                 if (field.Type == TType.List)
                 {
                   {
-                    TList _list475 = await iprot.ReadListBeginAsync(cancellationToken);
-                    StorageGroup = new List<string>(_list475.Count);
-                    for(int _i476 = 0; _i476 < _list475.Count; ++_i476)
+                    TList _list584 = await iprot.ReadListBeginAsync(cancellationToken);
+                    StorageGroup = new List<string>(_list584.Count);
+                    for(int _i585 = 0; _i585 < _list584.Count; ++_i585)
                     {
-                      string _elem477;
-                      _elem477 = await iprot.ReadStringAsync(cancellationToken);
-                      StorageGroup.Add(_elem477);
+                      string _elem586;
+                      _elem586 = await iprot.ReadStringAsync(cancellationToken);
+                      StorageGroup.Add(_elem586);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
@@ -11744,9 +12359,9 @@
             await oprot.WriteFieldBeginAsync(field, cancellationToken);
             {
               await oprot.WriteListBeginAsync(new TList(TType.String, StorageGroup.Count), cancellationToken);
-              foreach (string _iter478 in StorageGroup)
+              foreach (string _iter587 in StorageGroup)
               {
-                await oprot.WriteStringAsync(_iter478, cancellationToken);
+                await oprot.WriteStringAsync(_iter587, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -11787,16 +12402,16 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteStorageGroups_args(");
-        int tmp479 = 0;
+        int tmp588 = 0;
         if(__isset.sessionId)
         {
-          if(0 < tmp479++) { sb.Append(", "); }
+          if(0 < tmp588++) { sb.Append(", "); }
           sb.Append("SessionId: ");
           SessionId.ToString(sb);
         }
         if((StorageGroup != null) && __isset.storageGroup)
         {
-          if(0 < tmp479++) { sb.Append(", "); }
+          if(0 < tmp588++) { sb.Append(", "); }
           sb.Append("StorageGroup: ");
           StorageGroup.ToString(sb);
         }
@@ -11834,6 +12449,17 @@
       {
       }
 
+      public deleteStorageGroupsResult DeepCopy()
+      {
+        var tmp589 = new deleteStorageGroupsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp589.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp589.__isset.success = this.__isset.success;
+        return tmp589;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -11929,10 +12555,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteStorageGroups_result(");
-        int tmp480 = 0;
+        int tmp590 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp480++) { sb.Append(", "); }
+          if(0 < tmp590++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -11970,6 +12596,17 @@
       {
       }
 
+      public insertRecordArgs DeepCopy()
+      {
+        var tmp591 = new insertRecordArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp591.Req = (TSInsertRecordReq)this.Req.DeepCopy();
+        }
+        tmp591.__isset.req = this.__isset.req;
+        return tmp591;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12061,10 +12698,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecord_args(");
-        int tmp481 = 0;
+        int tmp592 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp481++) { sb.Append(", "); }
+          if(0 < tmp592++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -12102,6 +12739,17 @@
       {
       }
 
+      public insertRecordResult DeepCopy()
+      {
+        var tmp593 = new insertRecordResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp593.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp593.__isset.success = this.__isset.success;
+        return tmp593;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12197,10 +12845,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecord_result(");
-        int tmp482 = 0;
+        int tmp594 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp482++) { sb.Append(", "); }
+          if(0 < tmp594++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -12238,6 +12886,17 @@
       {
       }
 
+      public insertStringRecordArgs DeepCopy()
+      {
+        var tmp595 = new insertStringRecordArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp595.Req = (TSInsertStringRecordReq)this.Req.DeepCopy();
+        }
+        tmp595.__isset.req = this.__isset.req;
+        return tmp595;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12329,10 +12988,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecord_args(");
-        int tmp483 = 0;
+        int tmp596 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp483++) { sb.Append(", "); }
+          if(0 < tmp596++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -12370,6 +13029,17 @@
       {
       }
 
+      public insertStringRecordResult DeepCopy()
+      {
+        var tmp597 = new insertStringRecordResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp597.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp597.__isset.success = this.__isset.success;
+        return tmp597;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12465,10 +13135,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecord_result(");
-        int tmp484 = 0;
+        int tmp598 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp484++) { sb.Append(", "); }
+          if(0 < tmp598++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -12506,6 +13176,17 @@
       {
       }
 
+      public insertTabletArgs DeepCopy()
+      {
+        var tmp599 = new insertTabletArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp599.Req = (TSInsertTabletReq)this.Req.DeepCopy();
+        }
+        tmp599.__isset.req = this.__isset.req;
+        return tmp599;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12597,10 +13278,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertTablet_args(");
-        int tmp485 = 0;
+        int tmp600 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp485++) { sb.Append(", "); }
+          if(0 < tmp600++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -12638,6 +13319,17 @@
       {
       }
 
+      public insertTabletResult DeepCopy()
+      {
+        var tmp601 = new insertTabletResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp601.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp601.__isset.success = this.__isset.success;
+        return tmp601;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12733,10 +13425,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertTablet_result(");
-        int tmp486 = 0;
+        int tmp602 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp486++) { sb.Append(", "); }
+          if(0 < tmp602++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -12774,6 +13466,17 @@
       {
       }
 
+      public insertTabletsArgs DeepCopy()
+      {
+        var tmp603 = new insertTabletsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp603.Req = (TSInsertTabletsReq)this.Req.DeepCopy();
+        }
+        tmp603.__isset.req = this.__isset.req;
+        return tmp603;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -12865,10 +13568,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertTablets_args(");
-        int tmp487 = 0;
+        int tmp604 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp487++) { sb.Append(", "); }
+          if(0 < tmp604++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -12906,6 +13609,17 @@
       {
       }
 
+      public insertTabletsResult DeepCopy()
+      {
+        var tmp605 = new insertTabletsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp605.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp605.__isset.success = this.__isset.success;
+        return tmp605;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13001,10 +13715,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertTablets_result(");
-        int tmp488 = 0;
+        int tmp606 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp488++) { sb.Append(", "); }
+          if(0 < tmp606++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -13042,6 +13756,17 @@
       {
       }
 
+      public insertRecordsArgs DeepCopy()
+      {
+        var tmp607 = new insertRecordsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp607.Req = (TSInsertRecordsReq)this.Req.DeepCopy();
+        }
+        tmp607.__isset.req = this.__isset.req;
+        return tmp607;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13133,10 +13858,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecords_args(");
-        int tmp489 = 0;
+        int tmp608 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp489++) { sb.Append(", "); }
+          if(0 < tmp608++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -13174,6 +13899,17 @@
       {
       }
 
+      public insertRecordsResult DeepCopy()
+      {
+        var tmp609 = new insertRecordsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp609.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp609.__isset.success = this.__isset.success;
+        return tmp609;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13269,10 +14005,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecords_result(");
-        int tmp490 = 0;
+        int tmp610 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp490++) { sb.Append(", "); }
+          if(0 < tmp610++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -13310,6 +14046,17 @@
       {
       }
 
+      public insertRecordsOfOneDeviceArgs DeepCopy()
+      {
+        var tmp611 = new insertRecordsOfOneDeviceArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp611.Req = (TSInsertRecordsOfOneDeviceReq)this.Req.DeepCopy();
+        }
+        tmp611.__isset.req = this.__isset.req;
+        return tmp611;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13401,10 +14148,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecordsOfOneDevice_args(");
-        int tmp491 = 0;
+        int tmp612 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp491++) { sb.Append(", "); }
+          if(0 < tmp612++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -13442,6 +14189,17 @@
       {
       }
 
+      public insertRecordsOfOneDeviceResult DeepCopy()
+      {
+        var tmp613 = new insertRecordsOfOneDeviceResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp613.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp613.__isset.success = this.__isset.success;
+        return tmp613;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13537,10 +14295,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertRecordsOfOneDevice_result(");
-        int tmp492 = 0;
+        int tmp614 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp492++) { sb.Append(", "); }
+          if(0 < tmp614++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -13578,6 +14336,17 @@
       {
       }
 
+      public insertStringRecordsOfOneDeviceArgs DeepCopy()
+      {
+        var tmp615 = new insertStringRecordsOfOneDeviceArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp615.Req = (TSInsertStringRecordsOfOneDeviceReq)this.Req.DeepCopy();
+        }
+        tmp615.__isset.req = this.__isset.req;
+        return tmp615;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13669,10 +14438,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecordsOfOneDevice_args(");
-        int tmp493 = 0;
+        int tmp616 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp493++) { sb.Append(", "); }
+          if(0 < tmp616++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -13710,6 +14479,17 @@
       {
       }
 
+      public insertStringRecordsOfOneDeviceResult DeepCopy()
+      {
+        var tmp617 = new insertStringRecordsOfOneDeviceResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp617.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp617.__isset.success = this.__isset.success;
+        return tmp617;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13805,10 +14585,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecordsOfOneDevice_result(");
-        int tmp494 = 0;
+        int tmp618 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp494++) { sb.Append(", "); }
+          if(0 < tmp618++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -13846,6 +14626,17 @@
       {
       }
 
+      public insertStringRecordsArgs DeepCopy()
+      {
+        var tmp619 = new insertStringRecordsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp619.Req = (TSInsertStringRecordsReq)this.Req.DeepCopy();
+        }
+        tmp619.__isset.req = this.__isset.req;
+        return tmp619;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -13937,10 +14728,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecords_args(");
-        int tmp495 = 0;
+        int tmp620 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp495++) { sb.Append(", "); }
+          if(0 < tmp620++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -13978,6 +14769,17 @@
       {
       }
 
+      public insertStringRecordsResult DeepCopy()
+      {
+        var tmp621 = new insertStringRecordsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp621.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp621.__isset.success = this.__isset.success;
+        return tmp621;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14073,10 +14875,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("insertStringRecords_result(");
-        int tmp496 = 0;
+        int tmp622 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp496++) { sb.Append(", "); }
+          if(0 < tmp622++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -14114,6 +14916,17 @@
       {
       }
 
+      public testInsertTabletArgs DeepCopy()
+      {
+        var tmp623 = new testInsertTabletArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp623.Req = (TSInsertTabletReq)this.Req.DeepCopy();
+        }
+        tmp623.__isset.req = this.__isset.req;
+        return tmp623;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14205,10 +15018,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertTablet_args(");
-        int tmp497 = 0;
+        int tmp624 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp497++) { sb.Append(", "); }
+          if(0 < tmp624++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -14246,6 +15059,17 @@
       {
       }
 
+      public testInsertTabletResult DeepCopy()
+      {
+        var tmp625 = new testInsertTabletResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp625.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp625.__isset.success = this.__isset.success;
+        return tmp625;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14341,10 +15165,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertTablet_result(");
-        int tmp498 = 0;
+        int tmp626 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp498++) { sb.Append(", "); }
+          if(0 < tmp626++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -14382,6 +15206,17 @@
       {
       }
 
+      public testInsertTabletsArgs DeepCopy()
+      {
+        var tmp627 = new testInsertTabletsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp627.Req = (TSInsertTabletsReq)this.Req.DeepCopy();
+        }
+        tmp627.__isset.req = this.__isset.req;
+        return tmp627;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14473,10 +15308,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertTablets_args(");
-        int tmp499 = 0;
+        int tmp628 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp499++) { sb.Append(", "); }
+          if(0 < tmp628++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -14514,6 +15349,17 @@
       {
       }
 
+      public testInsertTabletsResult DeepCopy()
+      {
+        var tmp629 = new testInsertTabletsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp629.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp629.__isset.success = this.__isset.success;
+        return tmp629;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14609,10 +15455,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertTablets_result(");
-        int tmp500 = 0;
+        int tmp630 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp500++) { sb.Append(", "); }
+          if(0 < tmp630++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -14650,6 +15496,17 @@
       {
       }
 
+      public testInsertRecordArgs DeepCopy()
+      {
+        var tmp631 = new testInsertRecordArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp631.Req = (TSInsertRecordReq)this.Req.DeepCopy();
+        }
+        tmp631.__isset.req = this.__isset.req;
+        return tmp631;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14741,10 +15598,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecord_args(");
-        int tmp501 = 0;
+        int tmp632 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp501++) { sb.Append(", "); }
+          if(0 < tmp632++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -14782,6 +15639,17 @@
       {
       }
 
+      public testInsertRecordResult DeepCopy()
+      {
+        var tmp633 = new testInsertRecordResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp633.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp633.__isset.success = this.__isset.success;
+        return tmp633;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -14877,10 +15745,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecord_result(");
-        int tmp502 = 0;
+        int tmp634 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp502++) { sb.Append(", "); }
+          if(0 < tmp634++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -14918,6 +15786,17 @@
       {
       }
 
+      public testInsertStringRecordArgs DeepCopy()
+      {
+        var tmp635 = new testInsertStringRecordArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp635.Req = (TSInsertStringRecordReq)this.Req.DeepCopy();
+        }
+        tmp635.__isset.req = this.__isset.req;
+        return tmp635;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15009,10 +15888,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertStringRecord_args(");
-        int tmp503 = 0;
+        int tmp636 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp503++) { sb.Append(", "); }
+          if(0 < tmp636++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -15050,6 +15929,17 @@
       {
       }
 
+      public testInsertStringRecordResult DeepCopy()
+      {
+        var tmp637 = new testInsertStringRecordResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp637.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp637.__isset.success = this.__isset.success;
+        return tmp637;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15145,10 +16035,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertStringRecord_result(");
-        int tmp504 = 0;
+        int tmp638 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp504++) { sb.Append(", "); }
+          if(0 < tmp638++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -15186,6 +16076,17 @@
       {
       }
 
+      public testInsertRecordsArgs DeepCopy()
+      {
+        var tmp639 = new testInsertRecordsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp639.Req = (TSInsertRecordsReq)this.Req.DeepCopy();
+        }
+        tmp639.__isset.req = this.__isset.req;
+        return tmp639;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15277,10 +16178,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecords_args(");
-        int tmp505 = 0;
+        int tmp640 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp505++) { sb.Append(", "); }
+          if(0 < tmp640++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -15318,6 +16219,17 @@
       {
       }
 
+      public testInsertRecordsResult DeepCopy()
+      {
+        var tmp641 = new testInsertRecordsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp641.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp641.__isset.success = this.__isset.success;
+        return tmp641;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15413,10 +16325,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecords_result(");
-        int tmp506 = 0;
+        int tmp642 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp506++) { sb.Append(", "); }
+          if(0 < tmp642++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -15454,6 +16366,17 @@
       {
       }
 
+      public testInsertRecordsOfOneDeviceArgs DeepCopy()
+      {
+        var tmp643 = new testInsertRecordsOfOneDeviceArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp643.Req = (TSInsertRecordsOfOneDeviceReq)this.Req.DeepCopy();
+        }
+        tmp643.__isset.req = this.__isset.req;
+        return tmp643;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15545,10 +16468,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecordsOfOneDevice_args(");
-        int tmp507 = 0;
+        int tmp644 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp507++) { sb.Append(", "); }
+          if(0 < tmp644++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -15586,6 +16509,17 @@
       {
       }
 
+      public testInsertRecordsOfOneDeviceResult DeepCopy()
+      {
+        var tmp645 = new testInsertRecordsOfOneDeviceResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp645.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp645.__isset.success = this.__isset.success;
+        return tmp645;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15681,10 +16615,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertRecordsOfOneDevice_result(");
-        int tmp508 = 0;
+        int tmp646 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp508++) { sb.Append(", "); }
+          if(0 < tmp646++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -15722,6 +16656,17 @@
       {
       }
 
+      public testInsertStringRecordsArgs DeepCopy()
+      {
+        var tmp647 = new testInsertStringRecordsArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp647.Req = (TSInsertStringRecordsReq)this.Req.DeepCopy();
+        }
+        tmp647.__isset.req = this.__isset.req;
+        return tmp647;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15813,10 +16758,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertStringRecords_args(");
-        int tmp509 = 0;
+        int tmp648 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp509++) { sb.Append(", "); }
+          if(0 < tmp648++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -15854,6 +16799,17 @@
       {
       }
 
+      public testInsertStringRecordsResult DeepCopy()
+      {
+        var tmp649 = new testInsertStringRecordsResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp649.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp649.__isset.success = this.__isset.success;
+        return tmp649;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -15949,10 +16905,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testInsertStringRecords_result(");
-        int tmp510 = 0;
+        int tmp650 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp510++) { sb.Append(", "); }
+          if(0 < tmp650++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -15990,6 +16946,17 @@
       {
       }
 
+      public deleteDataArgs DeepCopy()
+      {
+        var tmp651 = new deleteDataArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp651.Req = (TSDeleteDataReq)this.Req.DeepCopy();
+        }
+        tmp651.__isset.req = this.__isset.req;
+        return tmp651;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16081,10 +17048,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteData_args(");
-        int tmp511 = 0;
+        int tmp652 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp511++) { sb.Append(", "); }
+          if(0 < tmp652++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -16122,6 +17089,17 @@
       {
       }
 
+      public deleteDataResult DeepCopy()
+      {
+        var tmp653 = new deleteDataResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp653.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp653.__isset.success = this.__isset.success;
+        return tmp653;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16217,10 +17195,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("deleteData_result(");
-        int tmp512 = 0;
+        int tmp654 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp512++) { sb.Append(", "); }
+          if(0 < tmp654++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -16258,6 +17236,17 @@
       {
       }
 
+      public executeRawDataQueryArgs DeepCopy()
+      {
+        var tmp655 = new executeRawDataQueryArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp655.Req = (TSRawDataQueryReq)this.Req.DeepCopy();
+        }
+        tmp655.__isset.req = this.__isset.req;
+        return tmp655;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16349,10 +17338,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeRawDataQuery_args(");
-        int tmp513 = 0;
+        int tmp656 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp513++) { sb.Append(", "); }
+          if(0 < tmp656++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -16390,6 +17379,17 @@
       {
       }
 
+      public executeRawDataQueryResult DeepCopy()
+      {
+        var tmp657 = new executeRawDataQueryResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp657.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp657.__isset.success = this.__isset.success;
+        return tmp657;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16485,10 +17485,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeRawDataQuery_result(");
-        int tmp514 = 0;
+        int tmp658 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp514++) { sb.Append(", "); }
+          if(0 < tmp658++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -16526,6 +17526,17 @@
       {
       }
 
+      public executeLastDataQueryArgs DeepCopy()
+      {
+        var tmp659 = new executeLastDataQueryArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp659.Req = (TSLastDataQueryReq)this.Req.DeepCopy();
+        }
+        tmp659.__isset.req = this.__isset.req;
+        return tmp659;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16617,10 +17628,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeLastDataQuery_args(");
-        int tmp515 = 0;
+        int tmp660 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp515++) { sb.Append(", "); }
+          if(0 < tmp660++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -16658,6 +17669,17 @@
       {
       }
 
+      public executeLastDataQueryResult DeepCopy()
+      {
+        var tmp661 = new executeLastDataQueryResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp661.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp661.__isset.success = this.__isset.success;
+        return tmp661;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16753,10 +17775,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeLastDataQuery_result(");
-        int tmp516 = 0;
+        int tmp662 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp516++) { sb.Append(", "); }
+          if(0 < tmp662++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -16794,6 +17816,17 @@
       {
       }
 
+      public executeAggregationQueryArgs DeepCopy()
+      {
+        var tmp663 = new executeAggregationQueryArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp663.Req = (TSAggregationQueryReq)this.Req.DeepCopy();
+        }
+        tmp663.__isset.req = this.__isset.req;
+        return tmp663;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -16885,10 +17918,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeAggregationQuery_args(");
-        int tmp517 = 0;
+        int tmp664 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp517++) { sb.Append(", "); }
+          if(0 < tmp664++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -16926,6 +17959,17 @@
       {
       }
 
+      public executeAggregationQueryResult DeepCopy()
+      {
+        var tmp665 = new executeAggregationQueryResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp665.Success = (TSExecuteStatementResp)this.Success.DeepCopy();
+        }
+        tmp665.__isset.success = this.__isset.success;
+        return tmp665;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17021,10 +18065,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("executeAggregationQuery_result(");
-        int tmp518 = 0;
+        int tmp666 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp518++) { sb.Append(", "); }
+          if(0 < tmp666++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -17062,6 +18106,17 @@
       {
       }
 
+      public requestStatementIdArgs DeepCopy()
+      {
+        var tmp667 = new requestStatementIdArgs();
+        if(__isset.sessionId)
+        {
+          tmp667.SessionId = this.SessionId;
+        }
+        tmp667.__isset.sessionId = this.__isset.sessionId;
+        return tmp667;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17152,10 +18207,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("requestStatementId_args(");
-        int tmp519 = 0;
+        int tmp668 = 0;
         if(__isset.sessionId)
         {
-          if(0 < tmp519++) { sb.Append(", "); }
+          if(0 < tmp668++) { sb.Append(", "); }
           sb.Append("SessionId: ");
           SessionId.ToString(sb);
         }
@@ -17193,6 +18248,17 @@
       {
       }
 
+      public requestStatementIdResult DeepCopy()
+      {
+        var tmp669 = new requestStatementIdResult();
+        if(__isset.success)
+        {
+          tmp669.Success = this.Success;
+        }
+        tmp669.__isset.success = this.__isset.success;
+        return tmp669;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17284,10 +18350,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("requestStatementId_result(");
-        int tmp520 = 0;
+        int tmp670 = 0;
         if(__isset.success)
         {
-          if(0 < tmp520++) { sb.Append(", "); }
+          if(0 < tmp670++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -17325,6 +18391,17 @@
       {
       }
 
+      public createSchemaTemplateArgs DeepCopy()
+      {
+        var tmp671 = new createSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp671.Req = (TSCreateSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp671.__isset.req = this.__isset.req;
+        return tmp671;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17416,10 +18493,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createSchemaTemplate_args(");
-        int tmp521 = 0;
+        int tmp672 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp521++) { sb.Append(", "); }
+          if(0 < tmp672++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -17457,6 +18534,17 @@
       {
       }
 
+      public createSchemaTemplateResult DeepCopy()
+      {
+        var tmp673 = new createSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp673.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp673.__isset.success = this.__isset.success;
+        return tmp673;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17552,10 +18640,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createSchemaTemplate_result(");
-        int tmp522 = 0;
+        int tmp674 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp522++) { sb.Append(", "); }
+          if(0 < tmp674++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -17593,6 +18681,17 @@
       {
       }
 
+      public appendSchemaTemplateArgs DeepCopy()
+      {
+        var tmp675 = new appendSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp675.Req = (TSAppendSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp675.__isset.req = this.__isset.req;
+        return tmp675;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17684,10 +18783,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("appendSchemaTemplate_args(");
-        int tmp523 = 0;
+        int tmp676 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp523++) { sb.Append(", "); }
+          if(0 < tmp676++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -17725,6 +18824,17 @@
       {
       }
 
+      public appendSchemaTemplateResult DeepCopy()
+      {
+        var tmp677 = new appendSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp677.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp677.__isset.success = this.__isset.success;
+        return tmp677;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17820,10 +18930,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("appendSchemaTemplate_result(");
-        int tmp524 = 0;
+        int tmp678 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp524++) { sb.Append(", "); }
+          if(0 < tmp678++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -17861,6 +18971,17 @@
       {
       }
 
+      public pruneSchemaTemplateArgs DeepCopy()
+      {
+        var tmp679 = new pruneSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp679.Req = (TSPruneSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp679.__isset.req = this.__isset.req;
+        return tmp679;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -17952,10 +19073,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pruneSchemaTemplate_args(");
-        int tmp525 = 0;
+        int tmp680 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp525++) { sb.Append(", "); }
+          if(0 < tmp680++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -17993,6 +19114,17 @@
       {
       }
 
+      public pruneSchemaTemplateResult DeepCopy()
+      {
+        var tmp681 = new pruneSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp681.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp681.__isset.success = this.__isset.success;
+        return tmp681;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18088,10 +19220,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pruneSchemaTemplate_result(");
-        int tmp526 = 0;
+        int tmp682 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp526++) { sb.Append(", "); }
+          if(0 < tmp682++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -18129,6 +19261,17 @@
       {
       }
 
+      public querySchemaTemplateArgs DeepCopy()
+      {
+        var tmp683 = new querySchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp683.Req = (TSQueryTemplateReq)this.Req.DeepCopy();
+        }
+        tmp683.__isset.req = this.__isset.req;
+        return tmp683;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18220,10 +19363,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("querySchemaTemplate_args(");
-        int tmp527 = 0;
+        int tmp684 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp527++) { sb.Append(", "); }
+          if(0 < tmp684++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -18261,6 +19404,17 @@
       {
       }
 
+      public querySchemaTemplateResult DeepCopy()
+      {
+        var tmp685 = new querySchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp685.Success = (TSQueryTemplateResp)this.Success.DeepCopy();
+        }
+        tmp685.__isset.success = this.__isset.success;
+        return tmp685;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18356,10 +19510,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("querySchemaTemplate_result(");
-        int tmp528 = 0;
+        int tmp686 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp528++) { sb.Append(", "); }
+          if(0 < tmp686++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -18376,6 +19530,12 @@
       {
       }
 
+      public showConfigurationTemplateArgs DeepCopy()
+      {
+        var tmp687 = new showConfigurationTemplateArgs();
+        return tmp687;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18476,6 +19636,17 @@
       {
       }
 
+      public showConfigurationTemplateResult DeepCopy()
+      {
+        var tmp689 = new showConfigurationTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp689.Success = (TShowConfigurationTemplateResp)this.Success.DeepCopy();
+        }
+        tmp689.__isset.success = this.__isset.success;
+        return tmp689;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18571,10 +19742,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("showConfigurationTemplate_result(");
-        int tmp530 = 0;
+        int tmp690 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp530++) { sb.Append(", "); }
+          if(0 < tmp690++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -18612,6 +19783,17 @@
       {
       }
 
+      public showConfigurationArgs DeepCopy()
+      {
+        var tmp691 = new showConfigurationArgs();
+        if(__isset.nodeId)
+        {
+          tmp691.NodeId = this.NodeId;
+        }
+        tmp691.__isset.nodeId = this.__isset.nodeId;
+        return tmp691;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18702,10 +19884,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("showConfiguration_args(");
-        int tmp531 = 0;
+        int tmp692 = 0;
         if(__isset.nodeId)
         {
-          if(0 < tmp531++) { sb.Append(", "); }
+          if(0 < tmp692++) { sb.Append(", "); }
           sb.Append("NodeId: ");
           NodeId.ToString(sb);
         }
@@ -18743,6 +19925,17 @@
       {
       }
 
+      public showConfigurationResult DeepCopy()
+      {
+        var tmp693 = new showConfigurationResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp693.Success = (TShowConfigurationResp)this.Success.DeepCopy();
+        }
+        tmp693.__isset.success = this.__isset.success;
+        return tmp693;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18838,10 +20031,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("showConfiguration_result(");
-        int tmp532 = 0;
+        int tmp694 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp532++) { sb.Append(", "); }
+          if(0 < tmp694++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -18879,6 +20072,17 @@
       {
       }
 
+      public setSchemaTemplateArgs DeepCopy()
+      {
+        var tmp695 = new setSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp695.Req = (TSSetSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp695.__isset.req = this.__isset.req;
+        return tmp695;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -18970,10 +20174,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setSchemaTemplate_args(");
-        int tmp533 = 0;
+        int tmp696 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp533++) { sb.Append(", "); }
+          if(0 < tmp696++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -19011,6 +20215,17 @@
       {
       }
 
+      public setSchemaTemplateResult DeepCopy()
+      {
+        var tmp697 = new setSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp697.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp697.__isset.success = this.__isset.success;
+        return tmp697;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19106,10 +20321,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("setSchemaTemplate_result(");
-        int tmp534 = 0;
+        int tmp698 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp534++) { sb.Append(", "); }
+          if(0 < tmp698++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -19147,6 +20362,17 @@
       {
       }
 
+      public unsetSchemaTemplateArgs DeepCopy()
+      {
+        var tmp699 = new unsetSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp699.Req = (TSUnsetSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp699.__isset.req = this.__isset.req;
+        return tmp699;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19238,10 +20464,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("unsetSchemaTemplate_args(");
-        int tmp535 = 0;
+        int tmp700 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp535++) { sb.Append(", "); }
+          if(0 < tmp700++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -19279,6 +20505,17 @@
       {
       }
 
+      public unsetSchemaTemplateResult DeepCopy()
+      {
+        var tmp701 = new unsetSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp701.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp701.__isset.success = this.__isset.success;
+        return tmp701;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19374,10 +20611,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("unsetSchemaTemplate_result(");
-        int tmp536 = 0;
+        int tmp702 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp536++) { sb.Append(", "); }
+          if(0 < tmp702++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -19415,6 +20652,17 @@
       {
       }
 
+      public dropSchemaTemplateArgs DeepCopy()
+      {
+        var tmp703 = new dropSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp703.Req = (TSDropSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp703.__isset.req = this.__isset.req;
+        return tmp703;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19506,10 +20754,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("dropSchemaTemplate_args(");
-        int tmp537 = 0;
+        int tmp704 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp537++) { sb.Append(", "); }
+          if(0 < tmp704++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -19547,6 +20795,17 @@
       {
       }
 
+      public dropSchemaTemplateResult DeepCopy()
+      {
+        var tmp705 = new dropSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp705.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp705.__isset.success = this.__isset.success;
+        return tmp705;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19642,10 +20901,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("dropSchemaTemplate_result(");
-        int tmp538 = 0;
+        int tmp706 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp538++) { sb.Append(", "); }
+          if(0 < tmp706++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -19683,6 +20942,17 @@
       {
       }
 
+      public createTimeseriesUsingSchemaTemplateArgs DeepCopy()
+      {
+        var tmp707 = new createTimeseriesUsingSchemaTemplateArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp707.Req = (TCreateTimeseriesUsingSchemaTemplateReq)this.Req.DeepCopy();
+        }
+        tmp707.__isset.req = this.__isset.req;
+        return tmp707;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19774,10 +21044,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createTimeseriesUsingSchemaTemplate_args(");
-        int tmp539 = 0;
+        int tmp708 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp539++) { sb.Append(", "); }
+          if(0 < tmp708++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -19815,6 +21085,17 @@
       {
       }
 
+      public createTimeseriesUsingSchemaTemplateResult DeepCopy()
+      {
+        var tmp709 = new createTimeseriesUsingSchemaTemplateResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp709.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp709.__isset.success = this.__isset.success;
+        return tmp709;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -19910,10 +21191,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("createTimeseriesUsingSchemaTemplate_result(");
-        int tmp540 = 0;
+        int tmp710 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp540++) { sb.Append(", "); }
+          if(0 < tmp710++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -19951,6 +21232,17 @@
       {
       }
 
+      public handshakeArgs DeepCopy()
+      {
+        var tmp711 = new handshakeArgs();
+        if((Info != null) && __isset.info)
+        {
+          tmp711.Info = (TSyncIdentityInfo)this.Info.DeepCopy();
+        }
+        tmp711.__isset.info = this.__isset.info;
+        return tmp711;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20042,10 +21334,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("handshake_args(");
-        int tmp541 = 0;
+        int tmp712 = 0;
         if((Info != null) && __isset.info)
         {
-          if(0 < tmp541++) { sb.Append(", "); }
+          if(0 < tmp712++) { sb.Append(", "); }
           sb.Append("Info: ");
           Info.ToString(sb);
         }
@@ -20083,6 +21375,17 @@
       {
       }
 
+      public handshakeResult DeepCopy()
+      {
+        var tmp713 = new handshakeResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp713.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp713.__isset.success = this.__isset.success;
+        return tmp713;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20178,10 +21481,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("handshake_result(");
-        int tmp542 = 0;
+        int tmp714 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp542++) { sb.Append(", "); }
+          if(0 < tmp714++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -20219,6 +21522,17 @@
       {
       }
 
+      public sendPipeDataArgs DeepCopy()
+      {
+        var tmp715 = new sendPipeDataArgs();
+        if((Buff != null) && __isset.buff)
+        {
+          tmp715.Buff = this.Buff.ToArray();
+        }
+        tmp715.__isset.buff = this.__isset.buff;
+        return tmp715;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20309,10 +21623,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("sendPipeData_args(");
-        int tmp543 = 0;
+        int tmp716 = 0;
         if((Buff != null) && __isset.buff)
         {
-          if(0 < tmp543++) { sb.Append(", "); }
+          if(0 < tmp716++) { sb.Append(", "); }
           sb.Append("Buff: ");
           Buff.ToString(sb);
         }
@@ -20350,6 +21664,17 @@
       {
       }
 
+      public sendPipeDataResult DeepCopy()
+      {
+        var tmp717 = new sendPipeDataResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp717.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp717.__isset.success = this.__isset.success;
+        return tmp717;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20445,10 +21770,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("sendPipeData_result(");
-        int tmp544 = 0;
+        int tmp718 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp544++) { sb.Append(", "); }
+          if(0 < tmp718++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -20501,6 +21826,22 @@
       {
       }
 
+      public sendFileArgs DeepCopy()
+      {
+        var tmp719 = new sendFileArgs();
+        if((MetaInfo != null) && __isset.metaInfo)
+        {
+          tmp719.MetaInfo = (TSyncTransportMetaInfo)this.MetaInfo.DeepCopy();
+        }
+        tmp719.__isset.metaInfo = this.__isset.metaInfo;
+        if((Buff != null) && __isset.buff)
+        {
+          tmp719.Buff = this.Buff.ToArray();
+        }
+        tmp719.__isset.buff = this.__isset.buff;
+        return tmp719;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20616,16 +21957,16 @@
       public override string ToString()
       {
         var sb = new StringBuilder("sendFile_args(");
-        int tmp545 = 0;
+        int tmp720 = 0;
         if((MetaInfo != null) && __isset.metaInfo)
         {
-          if(0 < tmp545++) { sb.Append(", "); }
+          if(0 < tmp720++) { sb.Append(", "); }
           sb.Append("MetaInfo: ");
           MetaInfo.ToString(sb);
         }
         if((Buff != null) && __isset.buff)
         {
-          if(0 < tmp545++) { sb.Append(", "); }
+          if(0 < tmp720++) { sb.Append(", "); }
           sb.Append("Buff: ");
           Buff.ToString(sb);
         }
@@ -20663,6 +22004,17 @@
       {
       }
 
+      public sendFileResult DeepCopy()
+      {
+        var tmp721 = new sendFileResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp721.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp721.__isset.success = this.__isset.success;
+        return tmp721;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20758,10 +22110,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("sendFile_result(");
-        int tmp546 = 0;
+        int tmp722 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp546++) { sb.Append(", "); }
+          if(0 < tmp722++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -20799,6 +22151,17 @@
       {
       }
 
+      public pipeTransferArgs DeepCopy()
+      {
+        var tmp723 = new pipeTransferArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp723.Req = (TPipeTransferReq)this.Req.DeepCopy();
+        }
+        tmp723.__isset.req = this.__isset.req;
+        return tmp723;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -20890,10 +22253,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pipeTransfer_args(");
-        int tmp547 = 0;
+        int tmp724 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp547++) { sb.Append(", "); }
+          if(0 < tmp724++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -20931,6 +22294,17 @@
       {
       }
 
+      public pipeTransferResult DeepCopy()
+      {
+        var tmp725 = new pipeTransferResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp725.Success = (TPipeTransferResp)this.Success.DeepCopy();
+        }
+        tmp725.__isset.success = this.__isset.success;
+        return tmp725;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21026,10 +22400,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pipeTransfer_result(");
-        int tmp548 = 0;
+        int tmp726 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp548++) { sb.Append(", "); }
+          if(0 < tmp726++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -21067,6 +22441,17 @@
       {
       }
 
+      public pipeSubscribeArgs DeepCopy()
+      {
+        var tmp727 = new pipeSubscribeArgs();
+        if((Req != null) && __isset.req)
+        {
+          tmp727.Req = (TPipeSubscribeReq)this.Req.DeepCopy();
+        }
+        tmp727.__isset.req = this.__isset.req;
+        return tmp727;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21158,10 +22543,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pipeSubscribe_args(");
-        int tmp549 = 0;
+        int tmp728 = 0;
         if((Req != null) && __isset.req)
         {
-          if(0 < tmp549++) { sb.Append(", "); }
+          if(0 < tmp728++) { sb.Append(", "); }
           sb.Append("Req: ");
           Req.ToString(sb);
         }
@@ -21199,6 +22584,17 @@
       {
       }
 
+      public pipeSubscribeResult DeepCopy()
+      {
+        var tmp729 = new pipeSubscribeResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp729.Success = (TPipeSubscribeResp)this.Success.DeepCopy();
+        }
+        tmp729.__isset.success = this.__isset.success;
+        return tmp729;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21294,10 +22690,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("pipeSubscribe_result(");
-        int tmp550 = 0;
+        int tmp730 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp550++) { sb.Append(", "); }
+          if(0 < tmp730++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -21314,6 +22710,12 @@
       {
       }
 
+      public getBackupConfigurationArgs DeepCopy()
+      {
+        var tmp731 = new getBackupConfigurationArgs();
+        return tmp731;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21414,6 +22816,17 @@
       {
       }
 
+      public getBackupConfigurationResult DeepCopy()
+      {
+        var tmp733 = new getBackupConfigurationResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp733.Success = (TSBackupConfigurationResp)this.Success.DeepCopy();
+        }
+        tmp733.__isset.success = this.__isset.success;
+        return tmp733;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21509,10 +22922,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("getBackupConfiguration_result(");
-        int tmp552 = 0;
+        int tmp734 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp552++) { sb.Append(", "); }
+          if(0 < tmp734++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -21529,6 +22942,12 @@
       {
       }
 
+      public fetchAllConnectionsInfoArgs DeepCopy()
+      {
+        var tmp735 = new fetchAllConnectionsInfoArgs();
+        return tmp735;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21629,6 +23048,17 @@
       {
       }
 
+      public fetchAllConnectionsInfoResult DeepCopy()
+      {
+        var tmp737 = new fetchAllConnectionsInfoResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp737.Success = (TSConnectionInfoResp)this.Success.DeepCopy();
+        }
+        tmp737.__isset.success = this.__isset.success;
+        return tmp737;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21724,10 +23154,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("fetchAllConnectionsInfo_result(");
-        int tmp554 = 0;
+        int tmp738 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp554++) { sb.Append(", "); }
+          if(0 < tmp738++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
@@ -21744,6 +23174,12 @@
       {
       }
 
+      public testConnectionEmptyRPCArgs DeepCopy()
+      {
+        var tmp739 = new testConnectionEmptyRPCArgs();
+        return tmp739;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21844,6 +23280,17 @@
       {
       }
 
+      public testConnectionEmptyRPCResult DeepCopy()
+      {
+        var tmp741 = new testConnectionEmptyRPCResult();
+        if((Success != null) && __isset.success)
+        {
+          tmp741.Success = (TSStatus)this.Success.DeepCopy();
+        }
+        tmp741.__isset.success = this.__isset.success;
+        return tmp741;
+      }
+
       public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
       {
         iprot.IncrementRecursionDepth();
@@ -21939,10 +23386,10 @@
       public override string ToString()
       {
         var sb = new StringBuilder("testConnectionEmptyRPC_result(");
-        int tmp556 = 0;
+        int tmp742 = 0;
         if((Success != null) && __isset.success)
         {
-          if(0 < tmp556++) { sb.Append(", "); }
+          if(0 < tmp742++) { sb.Append(", "); }
           sb.Append("Success: ");
           Success.ToString(sb);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/ServerProperties.cs b/src/Apache.IoTDB/Rpc/Generated/ServerProperties.cs
index f6d9f2f..f94b7e0 100644
--- a/src/Apache.IoTDB/Rpc/Generated/ServerProperties.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/ServerProperties.cs
@@ -130,6 +130,49 @@
     this.TimestampPrecision = timestampPrecision;
   }
 
+  public ServerProperties DeepCopy()
+  {
+    var tmp397 = new ServerProperties();
+    if((Version != null))
+    {
+      tmp397.Version = this.Version;
+    }
+    if((SupportedTimeAggregationOperations != null))
+    {
+      tmp397.SupportedTimeAggregationOperations = this.SupportedTimeAggregationOperations.DeepCopy();
+    }
+    if((TimestampPrecision != null))
+    {
+      tmp397.TimestampPrecision = this.TimestampPrecision;
+    }
+    if(__isset.maxConcurrentClientNum)
+    {
+      tmp397.MaxConcurrentClientNum = this.MaxConcurrentClientNum;
+    }
+    tmp397.__isset.maxConcurrentClientNum = this.__isset.maxConcurrentClientNum;
+    if(__isset.thriftMaxFrameSize)
+    {
+      tmp397.ThriftMaxFrameSize = this.ThriftMaxFrameSize;
+    }
+    tmp397.__isset.thriftMaxFrameSize = this.__isset.thriftMaxFrameSize;
+    if(__isset.isReadOnly)
+    {
+      tmp397.IsReadOnly = this.IsReadOnly;
+    }
+    tmp397.__isset.isReadOnly = this.__isset.isReadOnly;
+    if((BuildInfo != null) && __isset.buildInfo)
+    {
+      tmp397.BuildInfo = this.BuildInfo;
+    }
+    tmp397.__isset.buildInfo = this.__isset.buildInfo;
+    if((Logo != null) && __isset.logo)
+    {
+      tmp397.Logo = this.Logo;
+    }
+    tmp397.__isset.logo = this.__isset.logo;
+    return tmp397;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -165,13 +208,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list362 = await iprot.ReadListBeginAsync(cancellationToken);
-                SupportedTimeAggregationOperations = new List<string>(_list362.Count);
-                for(int _i363 = 0; _i363 < _list362.Count; ++_i363)
+                TList _list398 = await iprot.ReadListBeginAsync(cancellationToken);
+                SupportedTimeAggregationOperations = new List<string>(_list398.Count);
+                for(int _i399 = 0; _i399 < _list398.Count; ++_i399)
                 {
-                  string _elem364;
-                  _elem364 = await iprot.ReadStringAsync(cancellationToken);
-                  SupportedTimeAggregationOperations.Add(_elem364);
+                  string _elem400;
+                  _elem400 = await iprot.ReadStringAsync(cancellationToken);
+                  SupportedTimeAggregationOperations.Add(_elem400);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -296,9 +339,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, SupportedTimeAggregationOperations.Count), cancellationToken);
-          foreach (string _iter365 in SupportedTimeAggregationOperations)
+          foreach (string _iter401 in SupportedTimeAggregationOperations)
           {
-            await oprot.WriteStringAsync(_iter365, cancellationToken);
+            await oprot.WriteStringAsync(_iter401, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TAINodeConfiguration.cs b/src/Apache.IoTDB/Rpc/Generated/TAINodeConfiguration.cs
new file mode 100644
index 0000000..29f1fa8
--- /dev/null
+++ b/src/Apache.IoTDB/Rpc/Generated/TAINodeConfiguration.cs
@@ -0,0 +1,205 @@
+/**
+ * Autogenerated by Thrift Compiler (0.14.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Logging;
+using Thrift;
+using Thrift.Collections;
+
+using Thrift.Protocol;
+using Thrift.Protocol.Entities;
+using Thrift.Protocol.Utilities;
+using Thrift.Transport;
+using Thrift.Transport.Client;
+using Thrift.Transport.Server;
+using Thrift.Processor;
+
+
+#pragma warning disable IDE0079  // remove unnecessary pragmas
+#pragma warning disable IDE1006  // parts of the code use IDL spelling
+
+
+public partial class TAINodeConfiguration : TBase
+{
+
+  public TAINodeLocation Location { get; set; }
+
+  public TNodeResource Resource { get; set; }
+
+  public TAINodeConfiguration()
+  {
+  }
+
+  public TAINodeConfiguration(TAINodeLocation location, TNodeResource resource) : this()
+  {
+    this.Location = location;
+    this.Resource = resource;
+  }
+
+  public TAINodeConfiguration DeepCopy()
+  {
+    var tmp30 = new TAINodeConfiguration();
+    if((Location != null))
+    {
+      tmp30.Location = (TAINodeLocation)this.Location.DeepCopy();
+    }
+    if((Resource != null))
+    {
+      tmp30.Resource = (TNodeResource)this.Resource.DeepCopy();
+    }
+    return tmp30;
+  }
+
+  public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
+  {
+    iprot.IncrementRecursionDepth();
+    try
+    {
+      bool isset_location = false;
+      bool isset_resource = false;
+      TField field;
+      await iprot.ReadStructBeginAsync(cancellationToken);
+      while (true)
+      {
+        field = await iprot.ReadFieldBeginAsync(cancellationToken);
+        if (field.Type == TType.Stop)
+        {
+          break;
+        }
+
+        switch (field.ID)
+        {
+          case 1:
+            if (field.Type == TType.Struct)
+            {
+              Location = new TAINodeLocation();
+              await Location.ReadAsync(iprot, cancellationToken);
+              isset_location = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          case 2:
+            if (field.Type == TType.Struct)
+            {
+              Resource = new TNodeResource();
+              await Resource.ReadAsync(iprot, cancellationToken);
+              isset_resource = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          default: 
+            await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            break;
+        }
+
+        await iprot.ReadFieldEndAsync(cancellationToken);
+      }
+
+      await iprot.ReadStructEndAsync(cancellationToken);
+      if (!isset_location)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+      if (!isset_resource)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+    }
+    finally
+    {
+      iprot.DecrementRecursionDepth();
+    }
+  }
+
+  public async global::System.Threading.Tasks.Task WriteAsync(TProtocol oprot, CancellationToken cancellationToken)
+  {
+    oprot.IncrementRecursionDepth();
+    try
+    {
+      var struc = new TStruct("TAINodeConfiguration");
+      await oprot.WriteStructBeginAsync(struc, cancellationToken);
+      var field = new TField();
+      if((Location != null))
+      {
+        field.Name = "location";
+        field.Type = TType.Struct;
+        field.ID = 1;
+        await oprot.WriteFieldBeginAsync(field, cancellationToken);
+        await Location.WriteAsync(oprot, cancellationToken);
+        await oprot.WriteFieldEndAsync(cancellationToken);
+      }
+      if((Resource != null))
+      {
+        field.Name = "resource";
+        field.Type = TType.Struct;
+        field.ID = 2;
+        await oprot.WriteFieldBeginAsync(field, cancellationToken);
+        await Resource.WriteAsync(oprot, cancellationToken);
+        await oprot.WriteFieldEndAsync(cancellationToken);
+      }
+      await oprot.WriteFieldStopAsync(cancellationToken);
+      await oprot.WriteStructEndAsync(cancellationToken);
+    }
+    finally
+    {
+      oprot.DecrementRecursionDepth();
+    }
+  }
+
+  public override bool Equals(object that)
+  {
+    if (!(that is TAINodeConfiguration other)) return false;
+    if (ReferenceEquals(this, other)) return true;
+    return System.Object.Equals(Location, other.Location)
+      && System.Object.Equals(Resource, other.Resource);
+  }
+
+  public override int GetHashCode() {
+    int hashcode = 157;
+    unchecked {
+      if((Location != null))
+      {
+        hashcode = (hashcode * 397) + Location.GetHashCode();
+      }
+      if((Resource != null))
+      {
+        hashcode = (hashcode * 397) + Resource.GetHashCode();
+      }
+    }
+    return hashcode;
+  }
+
+  public override string ToString()
+  {
+    var sb = new StringBuilder("TAINodeConfiguration(");
+    if((Location != null))
+    {
+      sb.Append(", Location: ");
+      Location.ToString(sb);
+    }
+    if((Resource != null))
+    {
+      sb.Append(", Resource: ");
+      Resource.ToString(sb);
+    }
+    sb.Append(')');
+    return sb.ToString();
+  }
+}
+
diff --git a/src/Apache.IoTDB/Rpc/Generated/TAINodeLocation.cs b/src/Apache.IoTDB/Rpc/Generated/TAINodeLocation.cs
new file mode 100644
index 0000000..976f2c1
--- /dev/null
+++ b/src/Apache.IoTDB/Rpc/Generated/TAINodeLocation.cs
@@ -0,0 +1,192 @@
+/**
+ * Autogenerated by Thrift Compiler (0.14.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Logging;
+using Thrift;
+using Thrift.Collections;
+
+using Thrift.Protocol;
+using Thrift.Protocol.Entities;
+using Thrift.Protocol.Utilities;
+using Thrift.Transport;
+using Thrift.Transport.Client;
+using Thrift.Transport.Server;
+using Thrift.Processor;
+
+
+#pragma warning disable IDE0079  // remove unnecessary pragmas
+#pragma warning disable IDE1006  // parts of the code use IDL spelling
+
+
+public partial class TAINodeLocation : TBase
+{
+
+  public int AiNodeId { get; set; }
+
+  public TEndPoint InternalEndPoint { get; set; }
+
+  public TAINodeLocation()
+  {
+  }
+
+  public TAINodeLocation(int aiNodeId, TEndPoint internalEndPoint) : this()
+  {
+    this.AiNodeId = aiNodeId;
+    this.InternalEndPoint = internalEndPoint;
+  }
+
+  public TAINodeLocation DeepCopy()
+  {
+    var tmp26 = new TAINodeLocation();
+    tmp26.AiNodeId = this.AiNodeId;
+    if((InternalEndPoint != null))
+    {
+      tmp26.InternalEndPoint = (TEndPoint)this.InternalEndPoint.DeepCopy();
+    }
+    return tmp26;
+  }
+
+  public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
+  {
+    iprot.IncrementRecursionDepth();
+    try
+    {
+      bool isset_aiNodeId = false;
+      bool isset_internalEndPoint = false;
+      TField field;
+      await iprot.ReadStructBeginAsync(cancellationToken);
+      while (true)
+      {
+        field = await iprot.ReadFieldBeginAsync(cancellationToken);
+        if (field.Type == TType.Stop)
+        {
+          break;
+        }
+
+        switch (field.ID)
+        {
+          case 1:
+            if (field.Type == TType.I32)
+            {
+              AiNodeId = await iprot.ReadI32Async(cancellationToken);
+              isset_aiNodeId = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          case 2:
+            if (field.Type == TType.Struct)
+            {
+              InternalEndPoint = new TEndPoint();
+              await InternalEndPoint.ReadAsync(iprot, cancellationToken);
+              isset_internalEndPoint = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          default: 
+            await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            break;
+        }
+
+        await iprot.ReadFieldEndAsync(cancellationToken);
+      }
+
+      await iprot.ReadStructEndAsync(cancellationToken);
+      if (!isset_aiNodeId)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+      if (!isset_internalEndPoint)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+    }
+    finally
+    {
+      iprot.DecrementRecursionDepth();
+    }
+  }
+
+  public async global::System.Threading.Tasks.Task WriteAsync(TProtocol oprot, CancellationToken cancellationToken)
+  {
+    oprot.IncrementRecursionDepth();
+    try
+    {
+      var struc = new TStruct("TAINodeLocation");
+      await oprot.WriteStructBeginAsync(struc, cancellationToken);
+      var field = new TField();
+      field.Name = "aiNodeId";
+      field.Type = TType.I32;
+      field.ID = 1;
+      await oprot.WriteFieldBeginAsync(field, cancellationToken);
+      await oprot.WriteI32Async(AiNodeId, cancellationToken);
+      await oprot.WriteFieldEndAsync(cancellationToken);
+      if((InternalEndPoint != null))
+      {
+        field.Name = "internalEndPoint";
+        field.Type = TType.Struct;
+        field.ID = 2;
+        await oprot.WriteFieldBeginAsync(field, cancellationToken);
+        await InternalEndPoint.WriteAsync(oprot, cancellationToken);
+        await oprot.WriteFieldEndAsync(cancellationToken);
+      }
+      await oprot.WriteFieldStopAsync(cancellationToken);
+      await oprot.WriteStructEndAsync(cancellationToken);
+    }
+    finally
+    {
+      oprot.DecrementRecursionDepth();
+    }
+  }
+
+  public override bool Equals(object that)
+  {
+    if (!(that is TAINodeLocation other)) return false;
+    if (ReferenceEquals(this, other)) return true;
+    return System.Object.Equals(AiNodeId, other.AiNodeId)
+      && System.Object.Equals(InternalEndPoint, other.InternalEndPoint);
+  }
+
+  public override int GetHashCode() {
+    int hashcode = 157;
+    unchecked {
+      hashcode = (hashcode * 397) + AiNodeId.GetHashCode();
+      if((InternalEndPoint != null))
+      {
+        hashcode = (hashcode * 397) + InternalEndPoint.GetHashCode();
+      }
+    }
+    return hashcode;
+  }
+
+  public override string ToString()
+  {
+    var sb = new StringBuilder("TAINodeLocation(");
+    sb.Append(", AiNodeId: ");
+    AiNodeId.ToString(sb);
+    if((InternalEndPoint != null))
+    {
+      sb.Append(", InternalEndPoint: ");
+      InternalEndPoint.ToString(sb);
+    }
+    sb.Append(')');
+    return sb.ToString();
+  }
+}
+
diff --git a/src/Apache.IoTDB/Rpc/Generated/TConfigNodeLocation.cs b/src/Apache.IoTDB/Rpc/Generated/TConfigNodeLocation.cs
index f43a427..30536a5 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TConfigNodeLocation.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TConfigNodeLocation.cs
@@ -49,6 +49,21 @@
     this.ConsensusEndPoint = consensusEndPoint;
   }
 
+  public TConfigNodeLocation DeepCopy()
+  {
+    var tmp22 = new TConfigNodeLocation();
+    tmp22.ConfigNodeId = this.ConfigNodeId;
+    if((InternalEndPoint != null))
+    {
+      tmp22.InternalEndPoint = (TEndPoint)this.InternalEndPoint.DeepCopy();
+    }
+    if((ConsensusEndPoint != null))
+    {
+      tmp22.ConsensusEndPoint = (TEndPoint)this.ConsensusEndPoint.DeepCopy();
+    }
+    return tmp22;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TConsensusGroupId.cs b/src/Apache.IoTDB/Rpc/Generated/TConsensusGroupId.cs
index 34492a9..867226b 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TConsensusGroupId.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TConsensusGroupId.cs
@@ -50,6 +50,14 @@
     this.Id = id;
   }
 
+  public TConsensusGroupId DeepCopy()
+  {
+    var tmp8 = new TConsensusGroupId();
+    tmp8.Type = this.Type;
+    tmp8.Id = this.Id;
+    return tmp8;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TCreateTimeseriesUsingSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TCreateTimeseriesUsingSchemaTemplateReq.cs
index 0fc0689..c2627e2 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TCreateTimeseriesUsingSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TCreateTimeseriesUsingSchemaTemplateReq.cs
@@ -46,6 +46,17 @@
     this.DevicePathList = devicePathList;
   }
 
+  public TCreateTimeseriesUsingSchemaTemplateReq DeepCopy()
+  {
+    var tmp439 = new TCreateTimeseriesUsingSchemaTemplateReq();
+    tmp439.SessionId = this.SessionId;
+    if((DevicePathList != null))
+    {
+      tmp439.DevicePathList = this.DevicePathList.DeepCopy();
+    }
+    return tmp439;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -80,13 +91,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list395 = await iprot.ReadListBeginAsync(cancellationToken);
-                DevicePathList = new List<string>(_list395.Count);
-                for(int _i396 = 0; _i396 < _list395.Count; ++_i396)
+                TList _list440 = await iprot.ReadListBeginAsync(cancellationToken);
+                DevicePathList = new List<string>(_list440.Count);
+                for(int _i441 = 0; _i441 < _list440.Count; ++_i441)
                 {
-                  string _elem397;
-                  _elem397 = await iprot.ReadStringAsync(cancellationToken);
-                  DevicePathList.Add(_elem397);
+                  string _elem442;
+                  _elem442 = await iprot.ReadStringAsync(cancellationToken);
+                  DevicePathList.Add(_elem442);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -143,9 +154,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, DevicePathList.Count), cancellationToken);
-          foreach (string _iter398 in DevicePathList)
+          foreach (string _iter443 in DevicePathList)
           {
-            await oprot.WriteStringAsync(_iter398, cancellationToken);
+            await oprot.WriteStringAsync(_iter443, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TDataNodeConfiguration.cs b/src/Apache.IoTDB/Rpc/Generated/TDataNodeConfiguration.cs
index e56db6c..a416447 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TDataNodeConfiguration.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TDataNodeConfiguration.cs
@@ -46,6 +46,20 @@
     this.Resource = resource;
   }
 
+  public TDataNodeConfiguration DeepCopy()
+  {
+    var tmp28 = new TDataNodeConfiguration();
+    if((Location != null))
+    {
+      tmp28.Location = (TDataNodeLocation)this.Location.DeepCopy();
+    }
+    if((Resource != null))
+    {
+      tmp28.Resource = (TNodeResource)this.Resource.DeepCopy();
+    }
+    return tmp28;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TDataNodeLocation.cs b/src/Apache.IoTDB/Rpc/Generated/TDataNodeLocation.cs
index 303f0b6..6d81c2c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TDataNodeLocation.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TDataNodeLocation.cs
@@ -58,6 +58,33 @@
     this.SchemaRegionConsensusEndPoint = schemaRegionConsensusEndPoint;
   }
 
+  public TDataNodeLocation DeepCopy()
+  {
+    var tmp24 = new TDataNodeLocation();
+    tmp24.DataNodeId = this.DataNodeId;
+    if((ClientRpcEndPoint != null))
+    {
+      tmp24.ClientRpcEndPoint = (TEndPoint)this.ClientRpcEndPoint.DeepCopy();
+    }
+    if((InternalEndPoint != null))
+    {
+      tmp24.InternalEndPoint = (TEndPoint)this.InternalEndPoint.DeepCopy();
+    }
+    if((MPPDataExchangeEndPoint != null))
+    {
+      tmp24.MPPDataExchangeEndPoint = (TEndPoint)this.MPPDataExchangeEndPoint.DeepCopy();
+    }
+    if((DataRegionConsensusEndPoint != null))
+    {
+      tmp24.DataRegionConsensusEndPoint = (TEndPoint)this.DataRegionConsensusEndPoint.DeepCopy();
+    }
+    if((SchemaRegionConsensusEndPoint != null))
+    {
+      tmp24.SchemaRegionConsensusEndPoint = (TEndPoint)this.SchemaRegionConsensusEndPoint.DeepCopy();
+    }
+    return tmp24;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TEndPoint.cs b/src/Apache.IoTDB/Rpc/Generated/TEndPoint.cs
index db66a12..23dbeb0 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TEndPoint.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TEndPoint.cs
@@ -46,6 +46,17 @@
     this.Port = port;
   }
 
+  public TEndPoint DeepCopy()
+  {
+    var tmp0 = new TEndPoint();
+    if((Ip != null))
+    {
+      tmp0.Ip = this.Ip;
+    }
+    tmp0.Port = this.Port;
+    return tmp0;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TFile.cs b/src/Apache.IoTDB/Rpc/Generated/TFile.cs
index 1ff51fc..811fe6f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TFile.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TFile.cs
@@ -46,6 +46,20 @@
     this.File = file;
   }
 
+  public TFile DeepCopy()
+  {
+    var tmp65 = new TFile();
+    if((FileName != null))
+    {
+      tmp65.FileName = this.FileName;
+    }
+    if((File != null))
+    {
+      tmp65.File = this.File.ToArray();
+    }
+    return tmp65;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TFilesResp.cs b/src/Apache.IoTDB/Rpc/Generated/TFilesResp.cs
index 86fc887..31234ef 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TFilesResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TFilesResp.cs
@@ -46,6 +46,20 @@
     this.Files = files;
   }
 
+  public TFilesResp DeepCopy()
+  {
+    var tmp67 = new TFilesResp();
+    if((Status != null))
+    {
+      tmp67.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((Files != null))
+    {
+      tmp67.Files = this.Files.DeepCopy();
+    }
+    return tmp67;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -81,14 +95,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list46 = await iprot.ReadListBeginAsync(cancellationToken);
-                Files = new List<TFile>(_list46.Count);
-                for(int _i47 = 0; _i47 < _list46.Count; ++_i47)
+                TList _list68 = await iprot.ReadListBeginAsync(cancellationToken);
+                Files = new List<TFile>(_list68.Count);
+                for(int _i69 = 0; _i69 < _list68.Count; ++_i69)
                 {
-                  TFile _elem48;
-                  _elem48 = new TFile();
-                  await _elem48.ReadAsync(iprot, cancellationToken);
-                  Files.Add(_elem48);
+                  TFile _elem70;
+                  _elem70 = new TFile();
+                  await _elem70.ReadAsync(iprot, cancellationToken);
+                  Files.Add(_elem70);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -148,9 +162,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, Files.Count), cancellationToken);
-          foreach (TFile _iter49 in Files)
+          foreach (TFile _iter71 in Files)
           {
-            await _iter49.WriteAsync(oprot, cancellationToken);
+            await _iter71.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TFlushReq.cs b/src/Apache.IoTDB/Rpc/Generated/TFlushReq.cs
index 99267a4..214247f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TFlushReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TFlushReq.cs
@@ -72,6 +72,22 @@
   {
   }
 
+  public TFlushReq DeepCopy()
+  {
+    var tmp32 = new TFlushReq();
+    if((IsSeq != null) && __isset.isSeq)
+    {
+      tmp32.IsSeq = this.IsSeq;
+    }
+    tmp32.__isset.isSeq = this.__isset.isSeq;
+    if((StorageGroups != null) && __isset.storageGroups)
+    {
+      tmp32.StorageGroups = this.StorageGroups.DeepCopy();
+    }
+    tmp32.__isset.storageGroups = this.__isset.storageGroups;
+    return tmp32;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -103,13 +119,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list18 = await iprot.ReadListBeginAsync(cancellationToken);
-                StorageGroups = new List<string>(_list18.Count);
-                for(int _i19 = 0; _i19 < _list18.Count; ++_i19)
+                TList _list33 = await iprot.ReadListBeginAsync(cancellationToken);
+                StorageGroups = new List<string>(_list33.Count);
+                for(int _i34 = 0; _i34 < _list33.Count; ++_i34)
                 {
-                  string _elem20;
-                  _elem20 = await iprot.ReadStringAsync(cancellationToken);
-                  StorageGroups.Add(_elem20);
+                  string _elem35;
+                  _elem35 = await iprot.ReadStringAsync(cancellationToken);
+                  StorageGroups.Add(_elem35);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -160,9 +176,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, StorageGroups.Count), cancellationToken);
-          foreach (string _iter21 in StorageGroups)
+          foreach (string _iter36 in StorageGroups)
           {
-            await oprot.WriteStringAsync(_iter21, cancellationToken);
+            await oprot.WriteStringAsync(_iter36, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -203,16 +219,16 @@
   public override string ToString()
   {
     var sb = new StringBuilder("TFlushReq(");
-    int tmp22 = 0;
+    int tmp37 = 0;
     if((IsSeq != null) && __isset.isSeq)
     {
-      if(0 < tmp22++) { sb.Append(", "); }
+      if(0 < tmp37++) { sb.Append(", "); }
       sb.Append("IsSeq: ");
       IsSeq.ToString(sb);
     }
     if((StorageGroups != null) && __isset.storageGroups)
     {
-      if(0 < tmp22++) { sb.Append(", "); }
+      if(0 < tmp37++) { sb.Append(", "); }
       sb.Append("StorageGroups: ");
       StorageGroups.ToString(sb);
     }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TLicense.cs b/src/Apache.IoTDB/Rpc/Generated/TLicense.cs
index 173ddf7..914e165 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TLicense.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TLicense.cs
@@ -64,6 +64,20 @@
     this.MlNodeNumLimit = mlNodeNumLimit;
   }
 
+  public TLicense DeepCopy()
+  {
+    var tmp92 = new TLicense();
+    tmp92.LicenseIssueTimestamp = this.LicenseIssueTimestamp;
+    tmp92.ExpireTimestamp = this.ExpireTimestamp;
+    tmp92.DataNodeNumLimit = this.DataNodeNumLimit;
+    tmp92.CpuCoreNumLimit = this.CpuCoreNumLimit;
+    tmp92.DeviceNumLimit = this.DeviceNumLimit;
+    tmp92.SensorNumLimit = this.SensorNumLimit;
+    tmp92.DisconnectionFromActiveNodeTimeLimit = this.DisconnectionFromActiveNodeTimeLimit;
+    tmp92.MlNodeNumLimit = this.MlNodeNumLimit;
+    return tmp92;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TLoadSample.cs b/src/Apache.IoTDB/Rpc/Generated/TLoadSample.cs
new file mode 100644
index 0000000..4aa6e38
--- /dev/null
+++ b/src/Apache.IoTDB/Rpc/Generated/TLoadSample.cs
@@ -0,0 +1,239 @@
+/**
+ * Autogenerated by Thrift Compiler (0.14.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Logging;
+using Thrift;
+using Thrift.Collections;
+
+using Thrift.Protocol;
+using Thrift.Protocol.Entities;
+using Thrift.Protocol.Utilities;
+using Thrift.Transport;
+using Thrift.Transport.Client;
+using Thrift.Transport.Server;
+using Thrift.Processor;
+
+
+#pragma warning disable IDE0079  // remove unnecessary pragmas
+#pragma warning disable IDE1006  // parts of the code use IDL spelling
+
+
+public partial class TLoadSample : TBase
+{
+
+  public double CpuUsageRate { get; set; }
+
+  public double MemoryUsageRate { get; set; }
+
+  public double DiskUsageRate { get; set; }
+
+  public double FreeDiskSpace { get; set; }
+
+  public TLoadSample()
+  {
+  }
+
+  public TLoadSample(double cpuUsageRate, double memoryUsageRate, double diskUsageRate, double freeDiskSpace) : this()
+  {
+    this.CpuUsageRate = cpuUsageRate;
+    this.MemoryUsageRate = memoryUsageRate;
+    this.DiskUsageRate = diskUsageRate;
+    this.FreeDiskSpace = freeDiskSpace;
+  }
+
+  public TLoadSample DeepCopy()
+  {
+    var tmp94 = new TLoadSample();
+    tmp94.CpuUsageRate = this.CpuUsageRate;
+    tmp94.MemoryUsageRate = this.MemoryUsageRate;
+    tmp94.DiskUsageRate = this.DiskUsageRate;
+    tmp94.FreeDiskSpace = this.FreeDiskSpace;
+    return tmp94;
+  }
+
+  public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
+  {
+    iprot.IncrementRecursionDepth();
+    try
+    {
+      bool isset_cpuUsageRate = false;
+      bool isset_memoryUsageRate = false;
+      bool isset_diskUsageRate = false;
+      bool isset_freeDiskSpace = false;
+      TField field;
+      await iprot.ReadStructBeginAsync(cancellationToken);
+      while (true)
+      {
+        field = await iprot.ReadFieldBeginAsync(cancellationToken);
+        if (field.Type == TType.Stop)
+        {
+          break;
+        }
+
+        switch (field.ID)
+        {
+          case 1:
+            if (field.Type == TType.Double)
+            {
+              CpuUsageRate = await iprot.ReadDoubleAsync(cancellationToken);
+              isset_cpuUsageRate = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          case 2:
+            if (field.Type == TType.Double)
+            {
+              MemoryUsageRate = await iprot.ReadDoubleAsync(cancellationToken);
+              isset_memoryUsageRate = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          case 3:
+            if (field.Type == TType.Double)
+            {
+              DiskUsageRate = await iprot.ReadDoubleAsync(cancellationToken);
+              isset_diskUsageRate = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          case 4:
+            if (field.Type == TType.Double)
+            {
+              FreeDiskSpace = await iprot.ReadDoubleAsync(cancellationToken);
+              isset_freeDiskSpace = true;
+            }
+            else
+            {
+              await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            }
+            break;
+          default: 
+            await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken);
+            break;
+        }
+
+        await iprot.ReadFieldEndAsync(cancellationToken);
+      }
+
+      await iprot.ReadStructEndAsync(cancellationToken);
+      if (!isset_cpuUsageRate)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+      if (!isset_memoryUsageRate)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+      if (!isset_diskUsageRate)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+      if (!isset_freeDiskSpace)
+      {
+        throw new TProtocolException(TProtocolException.INVALID_DATA);
+      }
+    }
+    finally
+    {
+      iprot.DecrementRecursionDepth();
+    }
+  }
+
+  public async global::System.Threading.Tasks.Task WriteAsync(TProtocol oprot, CancellationToken cancellationToken)
+  {
+    oprot.IncrementRecursionDepth();
+    try
+    {
+      var struc = new TStruct("TLoadSample");
+      await oprot.WriteStructBeginAsync(struc, cancellationToken);
+      var field = new TField();
+      field.Name = "cpuUsageRate";
+      field.Type = TType.Double;
+      field.ID = 1;
+      await oprot.WriteFieldBeginAsync(field, cancellationToken);
+      await oprot.WriteDoubleAsync(CpuUsageRate, cancellationToken);
+      await oprot.WriteFieldEndAsync(cancellationToken);
+      field.Name = "memoryUsageRate";
+      field.Type = TType.Double;
+      field.ID = 2;
+      await oprot.WriteFieldBeginAsync(field, cancellationToken);
+      await oprot.WriteDoubleAsync(MemoryUsageRate, cancellationToken);
+      await oprot.WriteFieldEndAsync(cancellationToken);
+      field.Name = "diskUsageRate";
+      field.Type = TType.Double;
+      field.ID = 3;
+      await oprot.WriteFieldBeginAsync(field, cancellationToken);
+      await oprot.WriteDoubleAsync(DiskUsageRate, cancellationToken);
+      await oprot.WriteFieldEndAsync(cancellationToken);
+      field.Name = "freeDiskSpace";
+      field.Type = TType.Double;
+      field.ID = 4;
+      await oprot.WriteFieldBeginAsync(field, cancellationToken);
+      await oprot.WriteDoubleAsync(FreeDiskSpace, cancellationToken);
+      await oprot.WriteFieldEndAsync(cancellationToken);
+      await oprot.WriteFieldStopAsync(cancellationToken);
+      await oprot.WriteStructEndAsync(cancellationToken);
+    }
+    finally
+    {
+      oprot.DecrementRecursionDepth();
+    }
+  }
+
+  public override bool Equals(object that)
+  {
+    if (!(that is TLoadSample other)) return false;
+    if (ReferenceEquals(this, other)) return true;
+    return System.Object.Equals(CpuUsageRate, other.CpuUsageRate)
+      && System.Object.Equals(MemoryUsageRate, other.MemoryUsageRate)
+      && System.Object.Equals(DiskUsageRate, other.DiskUsageRate)
+      && System.Object.Equals(FreeDiskSpace, other.FreeDiskSpace);
+  }
+
+  public override int GetHashCode() {
+    int hashcode = 157;
+    unchecked {
+      hashcode = (hashcode * 397) + CpuUsageRate.GetHashCode();
+      hashcode = (hashcode * 397) + MemoryUsageRate.GetHashCode();
+      hashcode = (hashcode * 397) + DiskUsageRate.GetHashCode();
+      hashcode = (hashcode * 397) + FreeDiskSpace.GetHashCode();
+    }
+    return hashcode;
+  }
+
+  public override string ToString()
+  {
+    var sb = new StringBuilder("TLoadSample(");
+    sb.Append(", CpuUsageRate: ");
+    CpuUsageRate.ToString(sb);
+    sb.Append(", MemoryUsageRate: ");
+    MemoryUsageRate.ToString(sb);
+    sb.Append(", DiskUsageRate: ");
+    DiskUsageRate.ToString(sb);
+    sb.Append(", FreeDiskSpace: ");
+    FreeDiskSpace.ToString(sb);
+    sb.Append(')');
+    return sb.ToString();
+  }
+}
+
diff --git a/src/Apache.IoTDB/Rpc/Generated/TNodeLocations.cs b/src/Apache.IoTDB/Rpc/Generated/TNodeLocations.cs
index 43d3a2c..16f50f8 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TNodeLocations.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TNodeLocations.cs
@@ -72,6 +72,22 @@
   {
   }
 
+  public TNodeLocations DeepCopy()
+  {
+    var tmp108 = new TNodeLocations();
+    if((ConfigNodeLocations != null) && __isset.configNodeLocations)
+    {
+      tmp108.ConfigNodeLocations = this.ConfigNodeLocations.DeepCopy();
+    }
+    tmp108.__isset.configNodeLocations = this.__isset.configNodeLocations;
+    if((DataNodeLocations != null) && __isset.dataNodeLocations)
+    {
+      tmp108.DataNodeLocations = this.DataNodeLocations.DeepCopy();
+    }
+    tmp108.__isset.dataNodeLocations = this.__isset.dataNodeLocations;
+    return tmp108;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -93,14 +109,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list74 = await iprot.ReadListBeginAsync(cancellationToken);
-                ConfigNodeLocations = new List<TConfigNodeLocation>(_list74.Count);
-                for(int _i75 = 0; _i75 < _list74.Count; ++_i75)
+                TList _list109 = await iprot.ReadListBeginAsync(cancellationToken);
+                ConfigNodeLocations = new List<TConfigNodeLocation>(_list109.Count);
+                for(int _i110 = 0; _i110 < _list109.Count; ++_i110)
                 {
-                  TConfigNodeLocation _elem76;
-                  _elem76 = new TConfigNodeLocation();
-                  await _elem76.ReadAsync(iprot, cancellationToken);
-                  ConfigNodeLocations.Add(_elem76);
+                  TConfigNodeLocation _elem111;
+                  _elem111 = new TConfigNodeLocation();
+                  await _elem111.ReadAsync(iprot, cancellationToken);
+                  ConfigNodeLocations.Add(_elem111);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -114,14 +130,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list77 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataNodeLocations = new List<TDataNodeLocation>(_list77.Count);
-                for(int _i78 = 0; _i78 < _list77.Count; ++_i78)
+                TList _list112 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataNodeLocations = new List<TDataNodeLocation>(_list112.Count);
+                for(int _i113 = 0; _i113 < _list112.Count; ++_i113)
                 {
-                  TDataNodeLocation _elem79;
-                  _elem79 = new TDataNodeLocation();
-                  await _elem79.ReadAsync(iprot, cancellationToken);
-                  DataNodeLocations.Add(_elem79);
+                  TDataNodeLocation _elem114;
+                  _elem114 = new TDataNodeLocation();
+                  await _elem114.ReadAsync(iprot, cancellationToken);
+                  DataNodeLocations.Add(_elem114);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -163,9 +179,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, ConfigNodeLocations.Count), cancellationToken);
-          foreach (TConfigNodeLocation _iter80 in ConfigNodeLocations)
+          foreach (TConfigNodeLocation _iter115 in ConfigNodeLocations)
           {
-            await _iter80.WriteAsync(oprot, cancellationToken);
+            await _iter115.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -179,9 +195,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, DataNodeLocations.Count), cancellationToken);
-          foreach (TDataNodeLocation _iter81 in DataNodeLocations)
+          foreach (TDataNodeLocation _iter116 in DataNodeLocations)
           {
-            await _iter81.WriteAsync(oprot, cancellationToken);
+            await _iter116.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -222,16 +238,16 @@
   public override string ToString()
   {
     var sb = new StringBuilder("TNodeLocations(");
-    int tmp82 = 0;
+    int tmp117 = 0;
     if((ConfigNodeLocations != null) && __isset.configNodeLocations)
     {
-      if(0 < tmp82++) { sb.Append(", "); }
+      if(0 < tmp117++) { sb.Append(", "); }
       sb.Append("ConfigNodeLocations: ");
       ConfigNodeLocations.ToString(sb);
     }
     if((DataNodeLocations != null) && __isset.dataNodeLocations)
     {
-      if(0 < tmp82++) { sb.Append(", "); }
+      if(0 < tmp117++) { sb.Append(", "); }
       sb.Append("DataNodeLocations: ");
       DataNodeLocations.ToString(sb);
     }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TNodeResource.cs b/src/Apache.IoTDB/Rpc/Generated/TNodeResource.cs
index 3df3303..fc2083c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TNodeResource.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TNodeResource.cs
@@ -46,6 +46,14 @@
     this.MaxMemory = maxMemory;
   }
 
+  public TNodeResource DeepCopy()
+  {
+    var tmp20 = new TNodeResource();
+    tmp20.CpuCoreNum = this.CpuCoreNum;
+    tmp20.MaxMemory = this.MaxMemory;
+    return tmp20;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeReq.cs b/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeReq.cs
index bf1e167..5322c69 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeReq.cs
@@ -67,6 +67,19 @@
     this.Type = type;
   }
 
+  public TPipeSubscribeReq DeepCopy()
+  {
+    var tmp453 = new TPipeSubscribeReq();
+    tmp453.Version = this.Version;
+    tmp453.Type = this.Type;
+    if((Body != null) && __isset.body)
+    {
+      tmp453.Body = this.Body.ToArray();
+    }
+    tmp453.__isset.body = this.__isset.body;
+    return tmp453;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeResp.cs b/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeResp.cs
index b020c67..ce31469 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TPipeSubscribeResp.cs
@@ -70,6 +70,23 @@
     this.Type = type;
   }
 
+  public TPipeSubscribeResp DeepCopy()
+  {
+    var tmp455 = new TPipeSubscribeResp();
+    if((Status != null))
+    {
+      tmp455.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    tmp455.Version = this.Version;
+    tmp455.Type = this.Type;
+    if((Body != null) && __isset.body)
+    {
+      tmp455.Body = this.Body.DeepCopy();
+    }
+    tmp455.__isset.body = this.__isset.body;
+    return tmp455;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -128,13 +145,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list405 = await iprot.ReadListBeginAsync(cancellationToken);
-                Body = new List<byte[]>(_list405.Count);
-                for(int _i406 = 0; _i406 < _list405.Count; ++_i406)
+                TList _list456 = await iprot.ReadListBeginAsync(cancellationToken);
+                Body = new List<byte[]>(_list456.Count);
+                for(int _i457 = 0; _i457 < _list456.Count; ++_i457)
                 {
-                  byte[] _elem407;
-                  _elem407 = await iprot.ReadBinaryAsync(cancellationToken);
-                  Body.Add(_elem407);
+                  byte[] _elem458;
+                  _elem458 = await iprot.ReadBinaryAsync(cancellationToken);
+                  Body.Add(_elem458);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -209,9 +226,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Body.Count), cancellationToken);
-          foreach (byte[] _iter408 in Body)
+          foreach (byte[] _iter459 in Body)
           {
-            await oprot.WriteBinaryAsync(_iter408, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter459, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TPipeTransferReq.cs b/src/Apache.IoTDB/Rpc/Generated/TPipeTransferReq.cs
index dc854d7..74a98a4 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TPipeTransferReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TPipeTransferReq.cs
@@ -49,6 +49,18 @@
     this.Body = body;
   }
 
+  public TPipeTransferReq DeepCopy()
+  {
+    var tmp449 = new TPipeTransferReq();
+    tmp449.Version = this.Version;
+    tmp449.Type = this.Type;
+    if((Body != null))
+    {
+      tmp449.Body = this.Body.ToArray();
+    }
+    return tmp449;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TPipeTransferResp.cs b/src/Apache.IoTDB/Rpc/Generated/TPipeTransferResp.cs
index faaa628..bafabd4 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TPipeTransferResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TPipeTransferResp.cs
@@ -64,6 +64,21 @@
     this.Status = status;
   }
 
+  public TPipeTransferResp DeepCopy()
+  {
+    var tmp451 = new TPipeTransferResp();
+    if((Status != null))
+    {
+      tmp451.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((Body != null) && __isset.body)
+    {
+      tmp451.Body = this.Body.ToArray();
+    }
+    tmp451.__isset.body = this.__isset.body;
+    return tmp451;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TRegionReplicaSet.cs b/src/Apache.IoTDB/Rpc/Generated/TRegionReplicaSet.cs
index d745048..25f7b72 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TRegionReplicaSet.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TRegionReplicaSet.cs
@@ -46,6 +46,20 @@
     this.DataNodeLocations = dataNodeLocations;
   }
 
+  public TRegionReplicaSet DeepCopy()
+  {
+    var tmp14 = new TRegionReplicaSet();
+    if((RegionId != null))
+    {
+      tmp14.RegionId = (TConsensusGroupId)this.RegionId.DeepCopy();
+    }
+    if((DataNodeLocations != null))
+    {
+      tmp14.DataNodeLocations = this.DataNodeLocations.DeepCopy();
+    }
+    return tmp14;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -81,14 +95,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list9 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataNodeLocations = new List<TDataNodeLocation>(_list9.Count);
-                for(int _i10 = 0; _i10 < _list9.Count; ++_i10)
+                TList _list15 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataNodeLocations = new List<TDataNodeLocation>(_list15.Count);
+                for(int _i16 = 0; _i16 < _list15.Count; ++_i16)
                 {
-                  TDataNodeLocation _elem11;
-                  _elem11 = new TDataNodeLocation();
-                  await _elem11.ReadAsync(iprot, cancellationToken);
-                  DataNodeLocations.Add(_elem11);
+                  TDataNodeLocation _elem17;
+                  _elem17 = new TDataNodeLocation();
+                  await _elem17.ReadAsync(iprot, cancellationToken);
+                  DataNodeLocations.Add(_elem17);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -148,9 +162,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, DataNodeLocations.Count), cancellationToken);
-          foreach (TDataNodeLocation _iter12 in DataNodeLocations)
+          foreach (TDataNodeLocation _iter18 in DataNodeLocations)
           {
-            await _iter12.WriteAsync(oprot, cancellationToken);
+            await _iter18.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSAggregationQueryReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSAggregationQueryReq.cs
index 7e4c9c5..3395474 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSAggregationQueryReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSAggregationQueryReq.cs
@@ -163,6 +163,57 @@
     this.Aggregations = aggregations;
   }
 
+  public TSAggregationQueryReq DeepCopy()
+  {
+    var tmp336 = new TSAggregationQueryReq();
+    tmp336.SessionId = this.SessionId;
+    tmp336.StatementId = this.StatementId;
+    if((Paths != null))
+    {
+      tmp336.Paths = this.Paths.DeepCopy();
+    }
+    if((Aggregations != null))
+    {
+      tmp336.Aggregations = this.Aggregations.DeepCopy();
+    }
+    if(__isset.startTime)
+    {
+      tmp336.StartTime = this.StartTime;
+    }
+    tmp336.__isset.startTime = this.__isset.startTime;
+    if(__isset.endTime)
+    {
+      tmp336.EndTime = this.EndTime;
+    }
+    tmp336.__isset.endTime = this.__isset.endTime;
+    if(__isset.interval)
+    {
+      tmp336.Interval = this.Interval;
+    }
+    tmp336.__isset.interval = this.__isset.interval;
+    if(__isset.slidingStep)
+    {
+      tmp336.SlidingStep = this.SlidingStep;
+    }
+    tmp336.__isset.slidingStep = this.__isset.slidingStep;
+    if(__isset.fetchSize)
+    {
+      tmp336.FetchSize = this.FetchSize;
+    }
+    tmp336.__isset.fetchSize = this.__isset.fetchSize;
+    if(__isset.timeout)
+    {
+      tmp336.Timeout = this.Timeout;
+    }
+    tmp336.__isset.timeout = this.__isset.timeout;
+    if(__isset.legalPathNodes)
+    {
+      tmp336.LegalPathNodes = this.LegalPathNodes;
+    }
+    tmp336.__isset.legalPathNodes = this.__isset.legalPathNodes;
+    return tmp336;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -210,13 +261,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list304 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list304.Count);
-                for(int _i305 = 0; _i305 < _list304.Count; ++_i305)
+                TList _list337 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list337.Count);
+                for(int _i338 = 0; _i338 < _list337.Count; ++_i338)
                 {
-                  string _elem306;
-                  _elem306 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem306);
+                  string _elem339;
+                  _elem339 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem339);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -231,13 +282,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list307 = await iprot.ReadListBeginAsync(cancellationToken);
-                Aggregations = new List<TAggregationType>(_list307.Count);
-                for(int _i308 = 0; _i308 < _list307.Count; ++_i308)
+                TList _list340 = await iprot.ReadListBeginAsync(cancellationToken);
+                Aggregations = new List<TAggregationType>(_list340.Count);
+                for(int _i341 = 0; _i341 < _list340.Count; ++_i341)
                 {
-                  TAggregationType _elem309;
-                  _elem309 = (TAggregationType)await iprot.ReadI32Async(cancellationToken);
-                  Aggregations.Add(_elem309);
+                  TAggregationType _elem342;
+                  _elem342 = (TAggregationType)await iprot.ReadI32Async(cancellationToken);
+                  Aggregations.Add(_elem342);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -378,9 +429,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter310 in Paths)
+          foreach (string _iter343 in Paths)
           {
-            await oprot.WriteStringAsync(_iter310, cancellationToken);
+            await oprot.WriteStringAsync(_iter343, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -394,9 +445,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Aggregations.Count), cancellationToken);
-          foreach (TAggregationType _iter311 in Aggregations)
+          foreach (TAggregationType _iter344 in Aggregations)
           {
-            await oprot.WriteI32Async((int)_iter311, cancellationToken);
+            await oprot.WriteI32Async((int)_iter344, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSAppendSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSAppendSchemaTemplateReq.cs
index d5c545b..f5b5f1a 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSAppendSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSAppendSchemaTemplateReq.cs
@@ -61,6 +61,34 @@
     this.Compressors = compressors;
   }
 
+  public TSAppendSchemaTemplateReq DeepCopy()
+  {
+    var tmp407 = new TSAppendSchemaTemplateReq();
+    tmp407.SessionId = this.SessionId;
+    if((Name != null))
+    {
+      tmp407.Name = this.Name;
+    }
+    tmp407.IsAligned = this.IsAligned;
+    if((Measurements != null))
+    {
+      tmp407.Measurements = this.Measurements.DeepCopy();
+    }
+    if((DataTypes != null))
+    {
+      tmp407.DataTypes = this.DataTypes.DeepCopy();
+    }
+    if((Encodings != null))
+    {
+      tmp407.Encodings = this.Encodings.DeepCopy();
+    }
+    if((Compressors != null))
+    {
+      tmp407.Compressors = this.Compressors.DeepCopy();
+    }
+    return tmp407;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -122,13 +150,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list369 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list369.Count);
-                for(int _i370 = 0; _i370 < _list369.Count; ++_i370)
+                TList _list408 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list408.Count);
+                for(int _i409 = 0; _i409 < _list408.Count; ++_i409)
                 {
-                  string _elem371;
-                  _elem371 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem371);
+                  string _elem410;
+                  _elem410 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem410);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -143,13 +171,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list372 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataTypes = new List<int>(_list372.Count);
-                for(int _i373 = 0; _i373 < _list372.Count; ++_i373)
+                TList _list411 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataTypes = new List<int>(_list411.Count);
+                for(int _i412 = 0; _i412 < _list411.Count; ++_i412)
                 {
-                  int _elem374;
-                  _elem374 = await iprot.ReadI32Async(cancellationToken);
-                  DataTypes.Add(_elem374);
+                  int _elem413;
+                  _elem413 = await iprot.ReadI32Async(cancellationToken);
+                  DataTypes.Add(_elem413);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -164,13 +192,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list375 = await iprot.ReadListBeginAsync(cancellationToken);
-                Encodings = new List<int>(_list375.Count);
-                for(int _i376 = 0; _i376 < _list375.Count; ++_i376)
+                TList _list414 = await iprot.ReadListBeginAsync(cancellationToken);
+                Encodings = new List<int>(_list414.Count);
+                for(int _i415 = 0; _i415 < _list414.Count; ++_i415)
                 {
-                  int _elem377;
-                  _elem377 = await iprot.ReadI32Async(cancellationToken);
-                  Encodings.Add(_elem377);
+                  int _elem416;
+                  _elem416 = await iprot.ReadI32Async(cancellationToken);
+                  Encodings.Add(_elem416);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -185,13 +213,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list378 = await iprot.ReadListBeginAsync(cancellationToken);
-                Compressors = new List<int>(_list378.Count);
-                for(int _i379 = 0; _i379 < _list378.Count; ++_i379)
+                TList _list417 = await iprot.ReadListBeginAsync(cancellationToken);
+                Compressors = new List<int>(_list417.Count);
+                for(int _i418 = 0; _i418 < _list417.Count; ++_i418)
                 {
-                  int _elem380;
-                  _elem380 = await iprot.ReadI32Async(cancellationToken);
-                  Compressors.Add(_elem380);
+                  int _elem419;
+                  _elem419 = await iprot.ReadI32Async(cancellationToken);
+                  Compressors.Add(_elem419);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -283,9 +311,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter381 in Measurements)
+          foreach (string _iter420 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter381, cancellationToken);
+            await oprot.WriteStringAsync(_iter420, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -299,9 +327,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, DataTypes.Count), cancellationToken);
-          foreach (int _iter382 in DataTypes)
+          foreach (int _iter421 in DataTypes)
           {
-            await oprot.WriteI32Async(_iter382, cancellationToken);
+            await oprot.WriteI32Async(_iter421, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -315,9 +343,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Encodings.Count), cancellationToken);
-          foreach (int _iter383 in Encodings)
+          foreach (int _iter422 in Encodings)
           {
-            await oprot.WriteI32Async(_iter383, cancellationToken);
+            await oprot.WriteI32Async(_iter422, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -331,9 +359,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Compressors.Count), cancellationToken);
-          foreach (int _iter384 in Compressors)
+          foreach (int _iter423 in Compressors)
           {
-            await oprot.WriteI32Async(_iter384, cancellationToken);
+            await oprot.WriteI32Async(_iter423, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSBackupConfigurationResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSBackupConfigurationResp.cs
index 5cdb21f..d35999b 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSBackupConfigurationResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSBackupConfigurationResp.cs
@@ -94,6 +94,31 @@
     this.Status = status;
   }
 
+  public TSBackupConfigurationResp DeepCopy()
+  {
+    var tmp461 = new TSBackupConfigurationResp();
+    if((Status != null))
+    {
+      tmp461.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if(__isset.enableOperationSync)
+    {
+      tmp461.EnableOperationSync = this.EnableOperationSync;
+    }
+    tmp461.__isset.enableOperationSync = this.__isset.enableOperationSync;
+    if((SecondaryAddress != null) && __isset.secondaryAddress)
+    {
+      tmp461.SecondaryAddress = this.SecondaryAddress;
+    }
+    tmp461.__isset.secondaryAddress = this.__isset.secondaryAddress;
+    if(__isset.secondaryPort)
+    {
+      tmp461.SecondaryPort = this.SecondaryPort;
+    }
+    tmp461.__isset.secondaryPort = this.__isset.secondaryPort;
+    return tmp461;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCancelOperationReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCancelOperationReq.cs
index 6cd4f4a..715b4a0 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCancelOperationReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCancelOperationReq.cs
@@ -46,6 +46,14 @@
     this.QueryId = queryId;
   }
 
+  public TSCancelOperationReq DeepCopy()
+  {
+    var tmp83 = new TSCancelOperationReq();
+    tmp83.SessionId = this.SessionId;
+    tmp83.QueryId = this.QueryId;
+    return tmp83;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCloseOperationReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCloseOperationReq.cs
index c574d80..fe97220 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCloseOperationReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCloseOperationReq.cs
@@ -79,6 +79,23 @@
     this.SessionId = sessionId;
   }
 
+  public TSCloseOperationReq DeepCopy()
+  {
+    var tmp85 = new TSCloseOperationReq();
+    tmp85.SessionId = this.SessionId;
+    if(__isset.queryId)
+    {
+      tmp85.QueryId = this.QueryId;
+    }
+    tmp85.__isset.queryId = this.__isset.queryId;
+    if(__isset.statementId)
+    {
+      tmp85.StatementId = this.StatementId;
+    }
+    tmp85.__isset.statementId = this.__isset.statementId;
+    return tmp85;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCloseSessionReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCloseSessionReq.cs
index e0c3a44..9ba92c1 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCloseSessionReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCloseSessionReq.cs
@@ -43,6 +43,13 @@
     this.SessionId = sessionId;
   }
 
+  public TSCloseSessionReq DeepCopy()
+  {
+    var tmp71 = new TSCloseSessionReq();
+    tmp71.SessionId = this.SessionId;
+    return tmp71;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfo.cs b/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfo.cs
index 95c1a2e..bb7fdcd 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfo.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfo.cs
@@ -56,6 +56,22 @@
     this.Type = type;
   }
 
+  public TSConnectionInfo DeepCopy()
+  {
+    var tmp463 = new TSConnectionInfo();
+    if((UserName != null))
+    {
+      tmp463.UserName = this.UserName;
+    }
+    tmp463.LogInTime = this.LogInTime;
+    if((ConnectionId != null))
+    {
+      tmp463.ConnectionId = this.ConnectionId;
+    }
+    tmp463.Type = this.Type;
+    return tmp463;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfoResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfoResp.cs
index e7cb0e6..6039412 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfoResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSConnectionInfoResp.cs
@@ -43,6 +43,16 @@
     this.ConnectionInfoList = connectionInfoList;
   }
 
+  public TSConnectionInfoResp DeepCopy()
+  {
+    var tmp465 = new TSConnectionInfoResp();
+    if((ConnectionInfoList != null))
+    {
+      tmp465.ConnectionInfoList = this.ConnectionInfoList.DeepCopy();
+    }
+    return tmp465;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -65,14 +75,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list412 = await iprot.ReadListBeginAsync(cancellationToken);
-                ConnectionInfoList = new List<TSConnectionInfo>(_list412.Count);
-                for(int _i413 = 0; _i413 < _list412.Count; ++_i413)
+                TList _list466 = await iprot.ReadListBeginAsync(cancellationToken);
+                ConnectionInfoList = new List<TSConnectionInfo>(_list466.Count);
+                for(int _i467 = 0; _i467 < _list466.Count; ++_i467)
                 {
-                  TSConnectionInfo _elem414;
-                  _elem414 = new TSConnectionInfo();
-                  await _elem414.ReadAsync(iprot, cancellationToken);
-                  ConnectionInfoList.Add(_elem414);
+                  TSConnectionInfo _elem468;
+                  _elem468 = new TSConnectionInfo();
+                  await _elem468.ReadAsync(iprot, cancellationToken);
+                  ConnectionInfoList.Add(_elem468);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -119,9 +129,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, ConnectionInfoList.Count), cancellationToken);
-          foreach (TSConnectionInfo _iter415 in ConnectionInfoList)
+          foreach (TSConnectionInfo _iter469 in ConnectionInfoList)
           {
-            await _iter415.WriteAsync(oprot, cancellationToken);
+            await _iter469.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCreateAlignedTimeseriesReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCreateAlignedTimeseriesReq.cs
index 2ec2028..4697d28 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCreateAlignedTimeseriesReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCreateAlignedTimeseriesReq.cs
@@ -109,6 +109,48 @@
     this.Compressors = compressors;
   }
 
+  public TSCreateAlignedTimeseriesReq DeepCopy()
+  {
+    var tmp278 = new TSCreateAlignedTimeseriesReq();
+    tmp278.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp278.PrefixPath = this.PrefixPath;
+    }
+    if((Measurements != null))
+    {
+      tmp278.Measurements = this.Measurements.DeepCopy();
+    }
+    if((DataTypes != null))
+    {
+      tmp278.DataTypes = this.DataTypes.DeepCopy();
+    }
+    if((Encodings != null))
+    {
+      tmp278.Encodings = this.Encodings.DeepCopy();
+    }
+    if((Compressors != null))
+    {
+      tmp278.Compressors = this.Compressors.DeepCopy();
+    }
+    if((MeasurementAlias != null) && __isset.measurementAlias)
+    {
+      tmp278.MeasurementAlias = this.MeasurementAlias.DeepCopy();
+    }
+    tmp278.__isset.measurementAlias = this.__isset.measurementAlias;
+    if((TagsList != null) && __isset.tagsList)
+    {
+      tmp278.TagsList = this.TagsList.DeepCopy();
+    }
+    tmp278.__isset.tagsList = this.__isset.tagsList;
+    if((AttributesList != null) && __isset.attributesList)
+    {
+      tmp278.AttributesList = this.AttributesList.DeepCopy();
+    }
+    tmp278.__isset.attributesList = this.__isset.attributesList;
+    return tmp278;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -158,13 +200,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list250 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list250.Count);
-                for(int _i251 = 0; _i251 < _list250.Count; ++_i251)
+                TList _list279 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list279.Count);
+                for(int _i280 = 0; _i280 < _list279.Count; ++_i280)
                 {
-                  string _elem252;
-                  _elem252 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem252);
+                  string _elem281;
+                  _elem281 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem281);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -179,13 +221,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list253 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataTypes = new List<int>(_list253.Count);
-                for(int _i254 = 0; _i254 < _list253.Count; ++_i254)
+                TList _list282 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataTypes = new List<int>(_list282.Count);
+                for(int _i283 = 0; _i283 < _list282.Count; ++_i283)
                 {
-                  int _elem255;
-                  _elem255 = await iprot.ReadI32Async(cancellationToken);
-                  DataTypes.Add(_elem255);
+                  int _elem284;
+                  _elem284 = await iprot.ReadI32Async(cancellationToken);
+                  DataTypes.Add(_elem284);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -200,13 +242,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list256 = await iprot.ReadListBeginAsync(cancellationToken);
-                Encodings = new List<int>(_list256.Count);
-                for(int _i257 = 0; _i257 < _list256.Count; ++_i257)
+                TList _list285 = await iprot.ReadListBeginAsync(cancellationToken);
+                Encodings = new List<int>(_list285.Count);
+                for(int _i286 = 0; _i286 < _list285.Count; ++_i286)
                 {
-                  int _elem258;
-                  _elem258 = await iprot.ReadI32Async(cancellationToken);
-                  Encodings.Add(_elem258);
+                  int _elem287;
+                  _elem287 = await iprot.ReadI32Async(cancellationToken);
+                  Encodings.Add(_elem287);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -221,13 +263,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list259 = await iprot.ReadListBeginAsync(cancellationToken);
-                Compressors = new List<int>(_list259.Count);
-                for(int _i260 = 0; _i260 < _list259.Count; ++_i260)
+                TList _list288 = await iprot.ReadListBeginAsync(cancellationToken);
+                Compressors = new List<int>(_list288.Count);
+                for(int _i289 = 0; _i289 < _list288.Count; ++_i289)
                 {
-                  int _elem261;
-                  _elem261 = await iprot.ReadI32Async(cancellationToken);
-                  Compressors.Add(_elem261);
+                  int _elem290;
+                  _elem290 = await iprot.ReadI32Async(cancellationToken);
+                  Compressors.Add(_elem290);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -242,13 +284,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list262 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementAlias = new List<string>(_list262.Count);
-                for(int _i263 = 0; _i263 < _list262.Count; ++_i263)
+                TList _list291 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementAlias = new List<string>(_list291.Count);
+                for(int _i292 = 0; _i292 < _list291.Count; ++_i292)
                 {
-                  string _elem264;
-                  _elem264 = await iprot.ReadStringAsync(cancellationToken);
-                  MeasurementAlias.Add(_elem264);
+                  string _elem293;
+                  _elem293 = await iprot.ReadStringAsync(cancellationToken);
+                  MeasurementAlias.Add(_elem293);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -262,25 +304,25 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list265 = await iprot.ReadListBeginAsync(cancellationToken);
-                TagsList = new List<Dictionary<string, string>>(_list265.Count);
-                for(int _i266 = 0; _i266 < _list265.Count; ++_i266)
+                TList _list294 = await iprot.ReadListBeginAsync(cancellationToken);
+                TagsList = new List<Dictionary<string, string>>(_list294.Count);
+                for(int _i295 = 0; _i295 < _list294.Count; ++_i295)
                 {
-                  Dictionary<string, string> _elem267;
+                  Dictionary<string, string> _elem296;
                   {
-                    TMap _map268 = await iprot.ReadMapBeginAsync(cancellationToken);
-                    _elem267 = new Dictionary<string, string>(_map268.Count);
-                    for(int _i269 = 0; _i269 < _map268.Count; ++_i269)
+                    TMap _map297 = await iprot.ReadMapBeginAsync(cancellationToken);
+                    _elem296 = new Dictionary<string, string>(_map297.Count);
+                    for(int _i298 = 0; _i298 < _map297.Count; ++_i298)
                     {
-                      string _key270;
-                      string _val271;
-                      _key270 = await iprot.ReadStringAsync(cancellationToken);
-                      _val271 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem267[_key270] = _val271;
+                      string _key299;
+                      string _val300;
+                      _key299 = await iprot.ReadStringAsync(cancellationToken);
+                      _val300 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem296[_key299] = _val300;
                     }
                     await iprot.ReadMapEndAsync(cancellationToken);
                   }
-                  TagsList.Add(_elem267);
+                  TagsList.Add(_elem296);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -294,25 +336,25 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list272 = await iprot.ReadListBeginAsync(cancellationToken);
-                AttributesList = new List<Dictionary<string, string>>(_list272.Count);
-                for(int _i273 = 0; _i273 < _list272.Count; ++_i273)
+                TList _list301 = await iprot.ReadListBeginAsync(cancellationToken);
+                AttributesList = new List<Dictionary<string, string>>(_list301.Count);
+                for(int _i302 = 0; _i302 < _list301.Count; ++_i302)
                 {
-                  Dictionary<string, string> _elem274;
+                  Dictionary<string, string> _elem303;
                   {
-                    TMap _map275 = await iprot.ReadMapBeginAsync(cancellationToken);
-                    _elem274 = new Dictionary<string, string>(_map275.Count);
-                    for(int _i276 = 0; _i276 < _map275.Count; ++_i276)
+                    TMap _map304 = await iprot.ReadMapBeginAsync(cancellationToken);
+                    _elem303 = new Dictionary<string, string>(_map304.Count);
+                    for(int _i305 = 0; _i305 < _map304.Count; ++_i305)
                     {
-                      string _key277;
-                      string _val278;
-                      _key277 = await iprot.ReadStringAsync(cancellationToken);
-                      _val278 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem274[_key277] = _val278;
+                      string _key306;
+                      string _val307;
+                      _key306 = await iprot.ReadStringAsync(cancellationToken);
+                      _val307 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem303[_key306] = _val307;
                     }
                     await iprot.ReadMapEndAsync(cancellationToken);
                   }
-                  AttributesList.Add(_elem274);
+                  AttributesList.Add(_elem303);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -393,9 +435,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter279 in Measurements)
+          foreach (string _iter308 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter279, cancellationToken);
+            await oprot.WriteStringAsync(_iter308, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -409,9 +451,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, DataTypes.Count), cancellationToken);
-          foreach (int _iter280 in DataTypes)
+          foreach (int _iter309 in DataTypes)
           {
-            await oprot.WriteI32Async(_iter280, cancellationToken);
+            await oprot.WriteI32Async(_iter309, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -425,9 +467,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Encodings.Count), cancellationToken);
-          foreach (int _iter281 in Encodings)
+          foreach (int _iter310 in Encodings)
           {
-            await oprot.WriteI32Async(_iter281, cancellationToken);
+            await oprot.WriteI32Async(_iter310, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -441,9 +483,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Compressors.Count), cancellationToken);
-          foreach (int _iter282 in Compressors)
+          foreach (int _iter311 in Compressors)
           {
-            await oprot.WriteI32Async(_iter282, cancellationToken);
+            await oprot.WriteI32Async(_iter311, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -457,9 +499,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, MeasurementAlias.Count), cancellationToken);
-          foreach (string _iter283 in MeasurementAlias)
+          foreach (string _iter312 in MeasurementAlias)
           {
-            await oprot.WriteStringAsync(_iter283, cancellationToken);
+            await oprot.WriteStringAsync(_iter312, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -473,14 +515,14 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Map, TagsList.Count), cancellationToken);
-          foreach (Dictionary<string, string> _iter284 in TagsList)
+          foreach (Dictionary<string, string> _iter313 in TagsList)
           {
             {
-              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter284.Count), cancellationToken);
-              foreach (string _iter285 in _iter284.Keys)
+              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter313.Count), cancellationToken);
+              foreach (string _iter314 in _iter313.Keys)
               {
-                await oprot.WriteStringAsync(_iter285, cancellationToken);
-                await oprot.WriteStringAsync(_iter284[_iter285], cancellationToken);
+                await oprot.WriteStringAsync(_iter314, cancellationToken);
+                await oprot.WriteStringAsync(_iter313[_iter314], cancellationToken);
               }
               await oprot.WriteMapEndAsync(cancellationToken);
             }
@@ -497,14 +539,14 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Map, AttributesList.Count), cancellationToken);
-          foreach (Dictionary<string, string> _iter286 in AttributesList)
+          foreach (Dictionary<string, string> _iter315 in AttributesList)
           {
             {
-              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter286.Count), cancellationToken);
-              foreach (string _iter287 in _iter286.Keys)
+              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter315.Count), cancellationToken);
+              foreach (string _iter316 in _iter315.Keys)
               {
-                await oprot.WriteStringAsync(_iter287, cancellationToken);
-                await oprot.WriteStringAsync(_iter286[_iter287], cancellationToken);
+                await oprot.WriteStringAsync(_iter316, cancellationToken);
+                await oprot.WriteStringAsync(_iter315[_iter316], cancellationToken);
               }
               await oprot.WriteMapEndAsync(cancellationToken);
             }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCreateMultiTimeseriesReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCreateMultiTimeseriesReq.cs
index 4141f0e..3d2759f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCreateMultiTimeseriesReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCreateMultiTimeseriesReq.cs
@@ -121,6 +121,49 @@
     this.Compressors = compressors;
   }
 
+  public TSCreateMultiTimeseriesReq DeepCopy()
+  {
+    var tmp348 = new TSCreateMultiTimeseriesReq();
+    tmp348.SessionId = this.SessionId;
+    if((Paths != null))
+    {
+      tmp348.Paths = this.Paths.DeepCopy();
+    }
+    if((DataTypes != null))
+    {
+      tmp348.DataTypes = this.DataTypes.DeepCopy();
+    }
+    if((Encodings != null))
+    {
+      tmp348.Encodings = this.Encodings.DeepCopy();
+    }
+    if((Compressors != null))
+    {
+      tmp348.Compressors = this.Compressors.DeepCopy();
+    }
+    if((PropsList != null) && __isset.propsList)
+    {
+      tmp348.PropsList = this.PropsList.DeepCopy();
+    }
+    tmp348.__isset.propsList = this.__isset.propsList;
+    if((TagsList != null) && __isset.tagsList)
+    {
+      tmp348.TagsList = this.TagsList.DeepCopy();
+    }
+    tmp348.__isset.tagsList = this.__isset.tagsList;
+    if((AttributesList != null) && __isset.attributesList)
+    {
+      tmp348.AttributesList = this.AttributesList.DeepCopy();
+    }
+    tmp348.__isset.attributesList = this.__isset.attributesList;
+    if((MeasurementAliasList != null) && __isset.measurementAliasList)
+    {
+      tmp348.MeasurementAliasList = this.MeasurementAliasList.DeepCopy();
+    }
+    tmp348.__isset.measurementAliasList = this.__isset.measurementAliasList;
+    return tmp348;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -158,13 +201,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list314 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list314.Count);
-                for(int _i315 = 0; _i315 < _list314.Count; ++_i315)
+                TList _list349 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list349.Count);
+                for(int _i350 = 0; _i350 < _list349.Count; ++_i350)
                 {
-                  string _elem316;
-                  _elem316 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem316);
+                  string _elem351;
+                  _elem351 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem351);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -179,13 +222,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list317 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataTypes = new List<int>(_list317.Count);
-                for(int _i318 = 0; _i318 < _list317.Count; ++_i318)
+                TList _list352 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataTypes = new List<int>(_list352.Count);
+                for(int _i353 = 0; _i353 < _list352.Count; ++_i353)
                 {
-                  int _elem319;
-                  _elem319 = await iprot.ReadI32Async(cancellationToken);
-                  DataTypes.Add(_elem319);
+                  int _elem354;
+                  _elem354 = await iprot.ReadI32Async(cancellationToken);
+                  DataTypes.Add(_elem354);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -200,13 +243,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list320 = await iprot.ReadListBeginAsync(cancellationToken);
-                Encodings = new List<int>(_list320.Count);
-                for(int _i321 = 0; _i321 < _list320.Count; ++_i321)
+                TList _list355 = await iprot.ReadListBeginAsync(cancellationToken);
+                Encodings = new List<int>(_list355.Count);
+                for(int _i356 = 0; _i356 < _list355.Count; ++_i356)
                 {
-                  int _elem322;
-                  _elem322 = await iprot.ReadI32Async(cancellationToken);
-                  Encodings.Add(_elem322);
+                  int _elem357;
+                  _elem357 = await iprot.ReadI32Async(cancellationToken);
+                  Encodings.Add(_elem357);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -221,13 +264,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list323 = await iprot.ReadListBeginAsync(cancellationToken);
-                Compressors = new List<int>(_list323.Count);
-                for(int _i324 = 0; _i324 < _list323.Count; ++_i324)
+                TList _list358 = await iprot.ReadListBeginAsync(cancellationToken);
+                Compressors = new List<int>(_list358.Count);
+                for(int _i359 = 0; _i359 < _list358.Count; ++_i359)
                 {
-                  int _elem325;
-                  _elem325 = await iprot.ReadI32Async(cancellationToken);
-                  Compressors.Add(_elem325);
+                  int _elem360;
+                  _elem360 = await iprot.ReadI32Async(cancellationToken);
+                  Compressors.Add(_elem360);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -242,25 +285,25 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list326 = await iprot.ReadListBeginAsync(cancellationToken);
-                PropsList = new List<Dictionary<string, string>>(_list326.Count);
-                for(int _i327 = 0; _i327 < _list326.Count; ++_i327)
+                TList _list361 = await iprot.ReadListBeginAsync(cancellationToken);
+                PropsList = new List<Dictionary<string, string>>(_list361.Count);
+                for(int _i362 = 0; _i362 < _list361.Count; ++_i362)
                 {
-                  Dictionary<string, string> _elem328;
+                  Dictionary<string, string> _elem363;
                   {
-                    TMap _map329 = await iprot.ReadMapBeginAsync(cancellationToken);
-                    _elem328 = new Dictionary<string, string>(_map329.Count);
-                    for(int _i330 = 0; _i330 < _map329.Count; ++_i330)
+                    TMap _map364 = await iprot.ReadMapBeginAsync(cancellationToken);
+                    _elem363 = new Dictionary<string, string>(_map364.Count);
+                    for(int _i365 = 0; _i365 < _map364.Count; ++_i365)
                     {
-                      string _key331;
-                      string _val332;
-                      _key331 = await iprot.ReadStringAsync(cancellationToken);
-                      _val332 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem328[_key331] = _val332;
+                      string _key366;
+                      string _val367;
+                      _key366 = await iprot.ReadStringAsync(cancellationToken);
+                      _val367 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem363[_key366] = _val367;
                     }
                     await iprot.ReadMapEndAsync(cancellationToken);
                   }
-                  PropsList.Add(_elem328);
+                  PropsList.Add(_elem363);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -274,25 +317,25 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list333 = await iprot.ReadListBeginAsync(cancellationToken);
-                TagsList = new List<Dictionary<string, string>>(_list333.Count);
-                for(int _i334 = 0; _i334 < _list333.Count; ++_i334)
+                TList _list368 = await iprot.ReadListBeginAsync(cancellationToken);
+                TagsList = new List<Dictionary<string, string>>(_list368.Count);
+                for(int _i369 = 0; _i369 < _list368.Count; ++_i369)
                 {
-                  Dictionary<string, string> _elem335;
+                  Dictionary<string, string> _elem370;
                   {
-                    TMap _map336 = await iprot.ReadMapBeginAsync(cancellationToken);
-                    _elem335 = new Dictionary<string, string>(_map336.Count);
-                    for(int _i337 = 0; _i337 < _map336.Count; ++_i337)
+                    TMap _map371 = await iprot.ReadMapBeginAsync(cancellationToken);
+                    _elem370 = new Dictionary<string, string>(_map371.Count);
+                    for(int _i372 = 0; _i372 < _map371.Count; ++_i372)
                     {
-                      string _key338;
-                      string _val339;
-                      _key338 = await iprot.ReadStringAsync(cancellationToken);
-                      _val339 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem335[_key338] = _val339;
+                      string _key373;
+                      string _val374;
+                      _key373 = await iprot.ReadStringAsync(cancellationToken);
+                      _val374 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem370[_key373] = _val374;
                     }
                     await iprot.ReadMapEndAsync(cancellationToken);
                   }
-                  TagsList.Add(_elem335);
+                  TagsList.Add(_elem370);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -306,25 +349,25 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list340 = await iprot.ReadListBeginAsync(cancellationToken);
-                AttributesList = new List<Dictionary<string, string>>(_list340.Count);
-                for(int _i341 = 0; _i341 < _list340.Count; ++_i341)
+                TList _list375 = await iprot.ReadListBeginAsync(cancellationToken);
+                AttributesList = new List<Dictionary<string, string>>(_list375.Count);
+                for(int _i376 = 0; _i376 < _list375.Count; ++_i376)
                 {
-                  Dictionary<string, string> _elem342;
+                  Dictionary<string, string> _elem377;
                   {
-                    TMap _map343 = await iprot.ReadMapBeginAsync(cancellationToken);
-                    _elem342 = new Dictionary<string, string>(_map343.Count);
-                    for(int _i344 = 0; _i344 < _map343.Count; ++_i344)
+                    TMap _map378 = await iprot.ReadMapBeginAsync(cancellationToken);
+                    _elem377 = new Dictionary<string, string>(_map378.Count);
+                    for(int _i379 = 0; _i379 < _map378.Count; ++_i379)
                     {
-                      string _key345;
-                      string _val346;
-                      _key345 = await iprot.ReadStringAsync(cancellationToken);
-                      _val346 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem342[_key345] = _val346;
+                      string _key380;
+                      string _val381;
+                      _key380 = await iprot.ReadStringAsync(cancellationToken);
+                      _val381 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem377[_key380] = _val381;
                     }
                     await iprot.ReadMapEndAsync(cancellationToken);
                   }
-                  AttributesList.Add(_elem342);
+                  AttributesList.Add(_elem377);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -338,13 +381,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list347 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementAliasList = new List<string>(_list347.Count);
-                for(int _i348 = 0; _i348 < _list347.Count; ++_i348)
+                TList _list382 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementAliasList = new List<string>(_list382.Count);
+                for(int _i383 = 0; _i383 < _list382.Count; ++_i383)
                 {
-                  string _elem349;
-                  _elem349 = await iprot.ReadStringAsync(cancellationToken);
-                  MeasurementAliasList.Add(_elem349);
+                  string _elem384;
+                  _elem384 = await iprot.ReadStringAsync(cancellationToken);
+                  MeasurementAliasList.Add(_elem384);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -412,9 +455,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter350 in Paths)
+          foreach (string _iter385 in Paths)
           {
-            await oprot.WriteStringAsync(_iter350, cancellationToken);
+            await oprot.WriteStringAsync(_iter385, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -428,9 +471,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, DataTypes.Count), cancellationToken);
-          foreach (int _iter351 in DataTypes)
+          foreach (int _iter386 in DataTypes)
           {
-            await oprot.WriteI32Async(_iter351, cancellationToken);
+            await oprot.WriteI32Async(_iter386, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -444,9 +487,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Encodings.Count), cancellationToken);
-          foreach (int _iter352 in Encodings)
+          foreach (int _iter387 in Encodings)
           {
-            await oprot.WriteI32Async(_iter352, cancellationToken);
+            await oprot.WriteI32Async(_iter387, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -460,9 +503,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Compressors.Count), cancellationToken);
-          foreach (int _iter353 in Compressors)
+          foreach (int _iter388 in Compressors)
           {
-            await oprot.WriteI32Async(_iter353, cancellationToken);
+            await oprot.WriteI32Async(_iter388, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -476,14 +519,14 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Map, PropsList.Count), cancellationToken);
-          foreach (Dictionary<string, string> _iter354 in PropsList)
+          foreach (Dictionary<string, string> _iter389 in PropsList)
           {
             {
-              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter354.Count), cancellationToken);
-              foreach (string _iter355 in _iter354.Keys)
+              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter389.Count), cancellationToken);
+              foreach (string _iter390 in _iter389.Keys)
               {
-                await oprot.WriteStringAsync(_iter355, cancellationToken);
-                await oprot.WriteStringAsync(_iter354[_iter355], cancellationToken);
+                await oprot.WriteStringAsync(_iter390, cancellationToken);
+                await oprot.WriteStringAsync(_iter389[_iter390], cancellationToken);
               }
               await oprot.WriteMapEndAsync(cancellationToken);
             }
@@ -500,14 +543,14 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Map, TagsList.Count), cancellationToken);
-          foreach (Dictionary<string, string> _iter356 in TagsList)
+          foreach (Dictionary<string, string> _iter391 in TagsList)
           {
             {
-              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter356.Count), cancellationToken);
-              foreach (string _iter357 in _iter356.Keys)
+              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter391.Count), cancellationToken);
+              foreach (string _iter392 in _iter391.Keys)
               {
-                await oprot.WriteStringAsync(_iter357, cancellationToken);
-                await oprot.WriteStringAsync(_iter356[_iter357], cancellationToken);
+                await oprot.WriteStringAsync(_iter392, cancellationToken);
+                await oprot.WriteStringAsync(_iter391[_iter392], cancellationToken);
               }
               await oprot.WriteMapEndAsync(cancellationToken);
             }
@@ -524,14 +567,14 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Map, AttributesList.Count), cancellationToken);
-          foreach (Dictionary<string, string> _iter358 in AttributesList)
+          foreach (Dictionary<string, string> _iter393 in AttributesList)
           {
             {
-              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter358.Count), cancellationToken);
-              foreach (string _iter359 in _iter358.Keys)
+              await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, _iter393.Count), cancellationToken);
+              foreach (string _iter394 in _iter393.Keys)
               {
-                await oprot.WriteStringAsync(_iter359, cancellationToken);
-                await oprot.WriteStringAsync(_iter358[_iter359], cancellationToken);
+                await oprot.WriteStringAsync(_iter394, cancellationToken);
+                await oprot.WriteStringAsync(_iter393[_iter394], cancellationToken);
               }
               await oprot.WriteMapEndAsync(cancellationToken);
             }
@@ -548,9 +591,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, MeasurementAliasList.Count), cancellationToken);
-          foreach (string _iter360 in MeasurementAliasList)
+          foreach (string _iter395 in MeasurementAliasList)
           {
-            await oprot.WriteStringAsync(_iter360, cancellationToken);
+            await oprot.WriteStringAsync(_iter395, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCreateSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCreateSchemaTemplateReq.cs
index 8167de9..9f618da 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCreateSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCreateSchemaTemplateReq.cs
@@ -49,6 +49,21 @@
     this.SerializedTemplate = serializedTemplate;
   }
 
+  public TSCreateSchemaTemplateReq DeepCopy()
+  {
+    var tmp405 = new TSCreateSchemaTemplateReq();
+    tmp405.SessionId = this.SessionId;
+    if((Name != null))
+    {
+      tmp405.Name = this.Name;
+    }
+    if((SerializedTemplate != null))
+    {
+      tmp405.SerializedTemplate = this.SerializedTemplate.ToArray();
+    }
+    return tmp405;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSCreateTimeseriesReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSCreateTimeseriesReq.cs
index 5614bc5..7d65aa6 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSCreateTimeseriesReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSCreateTimeseriesReq.cs
@@ -121,6 +121,40 @@
     this.Compressor = compressor;
   }
 
+  public TSCreateTimeseriesReq DeepCopy()
+  {
+    var tmp261 = new TSCreateTimeseriesReq();
+    tmp261.SessionId = this.SessionId;
+    if((Path != null))
+    {
+      tmp261.Path = this.Path;
+    }
+    tmp261.DataType = this.DataType;
+    tmp261.Encoding = this.Encoding;
+    tmp261.Compressor = this.Compressor;
+    if((Props != null) && __isset.props)
+    {
+      tmp261.Props = this.Props.DeepCopy();
+    }
+    tmp261.__isset.props = this.__isset.props;
+    if((Tags != null) && __isset.tags)
+    {
+      tmp261.Tags = this.Tags.DeepCopy();
+    }
+    tmp261.__isset.tags = this.__isset.tags;
+    if((Attributes != null) && __isset.attributes)
+    {
+      tmp261.Attributes = this.Attributes.DeepCopy();
+    }
+    tmp261.__isset.attributes = this.__isset.attributes;
+    if((MeasurementAlias != null) && __isset.measurementAlias)
+    {
+      tmp261.MeasurementAlias = this.MeasurementAlias;
+    }
+    tmp261.__isset.measurementAlias = this.__isset.measurementAlias;
+    return tmp261;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -202,15 +236,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map234 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Props = new Dictionary<string, string>(_map234.Count);
-                for(int _i235 = 0; _i235 < _map234.Count; ++_i235)
+                TMap _map262 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Props = new Dictionary<string, string>(_map262.Count);
+                for(int _i263 = 0; _i263 < _map262.Count; ++_i263)
                 {
-                  string _key236;
-                  string _val237;
-                  _key236 = await iprot.ReadStringAsync(cancellationToken);
-                  _val237 = await iprot.ReadStringAsync(cancellationToken);
-                  Props[_key236] = _val237;
+                  string _key264;
+                  string _val265;
+                  _key264 = await iprot.ReadStringAsync(cancellationToken);
+                  _val265 = await iprot.ReadStringAsync(cancellationToken);
+                  Props[_key264] = _val265;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -224,15 +258,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map238 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Tags = new Dictionary<string, string>(_map238.Count);
-                for(int _i239 = 0; _i239 < _map238.Count; ++_i239)
+                TMap _map266 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Tags = new Dictionary<string, string>(_map266.Count);
+                for(int _i267 = 0; _i267 < _map266.Count; ++_i267)
                 {
-                  string _key240;
-                  string _val241;
-                  _key240 = await iprot.ReadStringAsync(cancellationToken);
-                  _val241 = await iprot.ReadStringAsync(cancellationToken);
-                  Tags[_key240] = _val241;
+                  string _key268;
+                  string _val269;
+                  _key268 = await iprot.ReadStringAsync(cancellationToken);
+                  _val269 = await iprot.ReadStringAsync(cancellationToken);
+                  Tags[_key268] = _val269;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -246,15 +280,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map242 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Attributes = new Dictionary<string, string>(_map242.Count);
-                for(int _i243 = 0; _i243 < _map242.Count; ++_i243)
+                TMap _map270 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Attributes = new Dictionary<string, string>(_map270.Count);
+                for(int _i271 = 0; _i271 < _map270.Count; ++_i271)
                 {
-                  string _key244;
-                  string _val245;
-                  _key244 = await iprot.ReadStringAsync(cancellationToken);
-                  _val245 = await iprot.ReadStringAsync(cancellationToken);
-                  Attributes[_key244] = _val245;
+                  string _key272;
+                  string _val273;
+                  _key272 = await iprot.ReadStringAsync(cancellationToken);
+                  _val273 = await iprot.ReadStringAsync(cancellationToken);
+                  Attributes[_key272] = _val273;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -359,10 +393,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Props.Count), cancellationToken);
-          foreach (string _iter246 in Props.Keys)
+          foreach (string _iter274 in Props.Keys)
           {
-            await oprot.WriteStringAsync(_iter246, cancellationToken);
-            await oprot.WriteStringAsync(Props[_iter246], cancellationToken);
+            await oprot.WriteStringAsync(_iter274, cancellationToken);
+            await oprot.WriteStringAsync(Props[_iter274], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
@@ -376,10 +410,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Tags.Count), cancellationToken);
-          foreach (string _iter247 in Tags.Keys)
+          foreach (string _iter275 in Tags.Keys)
           {
-            await oprot.WriteStringAsync(_iter247, cancellationToken);
-            await oprot.WriteStringAsync(Tags[_iter247], cancellationToken);
+            await oprot.WriteStringAsync(_iter275, cancellationToken);
+            await oprot.WriteStringAsync(Tags[_iter275], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
@@ -393,10 +427,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Attributes.Count), cancellationToken);
-          foreach (string _iter248 in Attributes.Keys)
+          foreach (string _iter276 in Attributes.Keys)
           {
-            await oprot.WriteStringAsync(_iter248, cancellationToken);
-            await oprot.WriteStringAsync(Attributes[_iter248], cancellationToken);
+            await oprot.WriteStringAsync(_iter276, cancellationToken);
+            await oprot.WriteStringAsync(Attributes[_iter276], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSDeleteDataReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSDeleteDataReq.cs
index db43550..78cdcc7 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSDeleteDataReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSDeleteDataReq.cs
@@ -52,6 +52,19 @@
     this.EndTime = endTime;
   }
 
+  public TSDeleteDataReq DeepCopy()
+  {
+    var tmp255 = new TSDeleteDataReq();
+    tmp255.SessionId = this.SessionId;
+    if((Paths != null))
+    {
+      tmp255.Paths = this.Paths.DeepCopy();
+    }
+    tmp255.StartTime = this.StartTime;
+    tmp255.EndTime = this.EndTime;
+    return tmp255;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -88,13 +101,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list229 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list229.Count);
-                for(int _i230 = 0; _i230 < _list229.Count; ++_i230)
+                TList _list256 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list256.Count);
+                for(int _i257 = 0; _i257 < _list256.Count; ++_i257)
                 {
-                  string _elem231;
-                  _elem231 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem231);
+                  string _elem258;
+                  _elem258 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem258);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -181,9 +194,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter232 in Paths)
+          foreach (string _iter259 in Paths)
           {
-            await oprot.WriteStringAsync(_iter232, cancellationToken);
+            await oprot.WriteStringAsync(_iter259, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSDropSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSDropSchemaTemplateReq.cs
index 8454585..406cb92 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSDropSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSDropSchemaTemplateReq.cs
@@ -46,6 +46,17 @@
     this.TemplateName = templateName;
   }
 
+  public TSDropSchemaTemplateReq DeepCopy()
+  {
+    var tmp437 = new TSDropSchemaTemplateReq();
+    tmp437.SessionId = this.SessionId;
+    if((TemplateName != null))
+    {
+      tmp437.TemplateName = this.TemplateName;
+    }
+    return tmp437;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSExecuteBatchStatementReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSExecuteBatchStatementReq.cs
index 65339eb..6aeea3f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSExecuteBatchStatementReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSExecuteBatchStatementReq.cs
@@ -46,6 +46,17 @@
     this.Statements = statements;
   }
 
+  public TSExecuteBatchStatementReq DeepCopy()
+  {
+    var tmp75 = new TSExecuteBatchStatementReq();
+    tmp75.SessionId = this.SessionId;
+    if((Statements != null))
+    {
+      tmp75.Statements = this.Statements.DeepCopy();
+    }
+    return tmp75;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -80,13 +91,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list67 = await iprot.ReadListBeginAsync(cancellationToken);
-                Statements = new List<string>(_list67.Count);
-                for(int _i68 = 0; _i68 < _list67.Count; ++_i68)
+                TList _list76 = await iprot.ReadListBeginAsync(cancellationToken);
+                Statements = new List<string>(_list76.Count);
+                for(int _i77 = 0; _i77 < _list76.Count; ++_i77)
                 {
-                  string _elem69;
-                  _elem69 = await iprot.ReadStringAsync(cancellationToken);
-                  Statements.Add(_elem69);
+                  string _elem78;
+                  _elem78 = await iprot.ReadStringAsync(cancellationToken);
+                  Statements.Add(_elem78);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -143,9 +154,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Statements.Count), cancellationToken);
-          foreach (string _iter70 in Statements)
+          foreach (string _iter79 in Statements)
           {
-            await oprot.WriteStringAsync(_iter70, cancellationToken);
+            await oprot.WriteStringAsync(_iter79, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementReq.cs
index c626b3e..4dae933 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementReq.cs
@@ -115,6 +115,38 @@
     this.StatementId = statementId;
   }
 
+  public TSExecuteStatementReq DeepCopy()
+  {
+    var tmp73 = new TSExecuteStatementReq();
+    tmp73.SessionId = this.SessionId;
+    if((Statement != null))
+    {
+      tmp73.Statement = this.Statement;
+    }
+    tmp73.StatementId = this.StatementId;
+    if(__isset.fetchSize)
+    {
+      tmp73.FetchSize = this.FetchSize;
+    }
+    tmp73.__isset.fetchSize = this.__isset.fetchSize;
+    if(__isset.timeout)
+    {
+      tmp73.Timeout = this.Timeout;
+    }
+    tmp73.__isset.timeout = this.__isset.timeout;
+    if(__isset.enableRedirectQuery)
+    {
+      tmp73.EnableRedirectQuery = this.EnableRedirectQuery;
+    }
+    tmp73.__isset.enableRedirectQuery = this.__isset.enableRedirectQuery;
+    if(__isset.jdbcQuery)
+    {
+      tmp73.JdbcQuery = this.JdbcQuery;
+    }
+    tmp73.__isset.jdbcQuery = this.__isset.jdbcQuery;
+    return tmp73;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementResp.cs
index 7a86333..790850d 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSExecuteStatementResp.cs
@@ -244,6 +244,81 @@
     this.Status = status;
   }
 
+  public TSExecuteStatementResp DeepCopy()
+  {
+    var tmp30 = new TSExecuteStatementResp();
+    if((Status != null))
+    {
+      tmp30.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if(__isset.queryId)
+    {
+      tmp30.QueryId = this.QueryId;
+    }
+    tmp30.__isset.queryId = this.__isset.queryId;
+    if((Columns != null) && __isset.columns)
+    {
+      tmp30.Columns = this.Columns.DeepCopy();
+    }
+    tmp30.__isset.columns = this.__isset.columns;
+    if((OperationType != null) && __isset.operationType)
+    {
+      tmp30.OperationType = this.OperationType;
+    }
+    tmp30.__isset.operationType = this.__isset.operationType;
+    if(__isset.ignoreTimeStamp)
+    {
+      tmp30.IgnoreTimeStamp = this.IgnoreTimeStamp;
+    }
+    tmp30.__isset.ignoreTimeStamp = this.__isset.ignoreTimeStamp;
+    if((DataTypeList != null) && __isset.dataTypeList)
+    {
+      tmp30.DataTypeList = this.DataTypeList.DeepCopy();
+    }
+    tmp30.__isset.dataTypeList = this.__isset.dataTypeList;
+    if((QueryDataSet != null) && __isset.queryDataSet)
+    {
+      tmp30.QueryDataSet = (TSQueryDataSet)this.QueryDataSet.DeepCopy();
+    }
+    tmp30.__isset.queryDataSet = this.__isset.queryDataSet;
+    if((NonAlignQueryDataSet != null) && __isset.nonAlignQueryDataSet)
+    {
+      tmp30.NonAlignQueryDataSet = (TSQueryNonAlignDataSet)this.NonAlignQueryDataSet.DeepCopy();
+    }
+    tmp30.__isset.nonAlignQueryDataSet = this.__isset.nonAlignQueryDataSet;
+    if((ColumnNameIndexMap != null) && __isset.columnNameIndexMap)
+    {
+      tmp30.ColumnNameIndexMap = this.ColumnNameIndexMap.DeepCopy();
+    }
+    tmp30.__isset.columnNameIndexMap = this.__isset.columnNameIndexMap;
+    if((SgColumns != null) && __isset.sgColumns)
+    {
+      tmp30.SgColumns = this.SgColumns.DeepCopy();
+    }
+    tmp30.__isset.sgColumns = this.__isset.sgColumns;
+    if((AliasColumns != null) && __isset.aliasColumns)
+    {
+      tmp30.AliasColumns = this.AliasColumns.DeepCopy();
+    }
+    tmp30.__isset.aliasColumns = this.__isset.aliasColumns;
+    if((TracingInfo != null) && __isset.tracingInfo)
+    {
+      tmp30.TracingInfo = (TSTracingInfo)this.TracingInfo.DeepCopy();
+    }
+    tmp30.__isset.tracingInfo = this.__isset.tracingInfo;
+    if((QueryResult != null) && __isset.queryResult)
+    {
+      tmp30.QueryResult = this.QueryResult.DeepCopy();
+    }
+    tmp30.__isset.queryResult = this.__isset.queryResult;
+    if(__isset.moreData)
+    {
+      tmp30.MoreData = this.MoreData;
+    }
+    tmp30.__isset.moreData = this.__isset.moreData;
+    return tmp30;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -288,13 +363,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list27 = await iprot.ReadListBeginAsync(cancellationToken);
-                Columns = new List<string>(_list27.Count);
-                for(int _i28 = 0; _i28 < _list27.Count; ++_i28)
+                TList _list31 = await iprot.ReadListBeginAsync(cancellationToken);
+                Columns = new List<string>(_list31.Count);
+                for(int _i32 = 0; _i32 < _list31.Count; ++_i32)
                 {
-                  string _elem29;
-                  _elem29 = await iprot.ReadStringAsync(cancellationToken);
-                  Columns.Add(_elem29);
+                  string _elem33;
+                  _elem33 = await iprot.ReadStringAsync(cancellationToken);
+                  Columns.Add(_elem33);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -328,13 +403,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list30 = await iprot.ReadListBeginAsync(cancellationToken);
-                DataTypeList = new List<string>(_list30.Count);
-                for(int _i31 = 0; _i31 < _list30.Count; ++_i31)
+                TList _list34 = await iprot.ReadListBeginAsync(cancellationToken);
+                DataTypeList = new List<string>(_list34.Count);
+                for(int _i35 = 0; _i35 < _list34.Count; ++_i35)
                 {
-                  string _elem32;
-                  _elem32 = await iprot.ReadStringAsync(cancellationToken);
-                  DataTypeList.Add(_elem32);
+                  string _elem36;
+                  _elem36 = await iprot.ReadStringAsync(cancellationToken);
+                  DataTypeList.Add(_elem36);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -370,15 +445,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map33 = await iprot.ReadMapBeginAsync(cancellationToken);
-                ColumnNameIndexMap = new Dictionary<string, int>(_map33.Count);
-                for(int _i34 = 0; _i34 < _map33.Count; ++_i34)
+                TMap _map37 = await iprot.ReadMapBeginAsync(cancellationToken);
+                ColumnNameIndexMap = new Dictionary<string, int>(_map37.Count);
+                for(int _i38 = 0; _i38 < _map37.Count; ++_i38)
                 {
-                  string _key35;
-                  int _val36;
-                  _key35 = await iprot.ReadStringAsync(cancellationToken);
-                  _val36 = await iprot.ReadI32Async(cancellationToken);
-                  ColumnNameIndexMap[_key35] = _val36;
+                  string _key39;
+                  int _val40;
+                  _key39 = await iprot.ReadStringAsync(cancellationToken);
+                  _val40 = await iprot.ReadI32Async(cancellationToken);
+                  ColumnNameIndexMap[_key39] = _val40;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -392,13 +467,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list37 = await iprot.ReadListBeginAsync(cancellationToken);
-                SgColumns = new List<string>(_list37.Count);
-                for(int _i38 = 0; _i38 < _list37.Count; ++_i38)
+                TList _list41 = await iprot.ReadListBeginAsync(cancellationToken);
+                SgColumns = new List<string>(_list41.Count);
+                for(int _i42 = 0; _i42 < _list41.Count; ++_i42)
                 {
-                  string _elem39;
-                  _elem39 = await iprot.ReadStringAsync(cancellationToken);
-                  SgColumns.Add(_elem39);
+                  string _elem43;
+                  _elem43 = await iprot.ReadStringAsync(cancellationToken);
+                  SgColumns.Add(_elem43);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -412,13 +487,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list40 = await iprot.ReadListBeginAsync(cancellationToken);
-                AliasColumns = new List<sbyte>(_list40.Count);
-                for(int _i41 = 0; _i41 < _list40.Count; ++_i41)
+                TList _list44 = await iprot.ReadListBeginAsync(cancellationToken);
+                AliasColumns = new List<sbyte>(_list44.Count);
+                for(int _i45 = 0; _i45 < _list44.Count; ++_i45)
                 {
-                  sbyte _elem42;
-                  _elem42 = await iprot.ReadByteAsync(cancellationToken);
-                  AliasColumns.Add(_elem42);
+                  sbyte _elem46;
+                  _elem46 = await iprot.ReadByteAsync(cancellationToken);
+                  AliasColumns.Add(_elem46);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -443,13 +518,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list43 = await iprot.ReadListBeginAsync(cancellationToken);
-                QueryResult = new List<byte[]>(_list43.Count);
-                for(int _i44 = 0; _i44 < _list43.Count; ++_i44)
+                TList _list47 = await iprot.ReadListBeginAsync(cancellationToken);
+                QueryResult = new List<byte[]>(_list47.Count);
+                for(int _i48 = 0; _i48 < _list47.Count; ++_i48)
                 {
-                  byte[] _elem45;
-                  _elem45 = await iprot.ReadBinaryAsync(cancellationToken);
-                  QueryResult.Add(_elem45);
+                  byte[] _elem49;
+                  _elem49 = await iprot.ReadBinaryAsync(cancellationToken);
+                  QueryResult.Add(_elem49);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -523,9 +598,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Columns.Count), cancellationToken);
-          foreach (string _iter46 in Columns)
+          foreach (string _iter50 in Columns)
           {
-            await oprot.WriteStringAsync(_iter46, cancellationToken);
+            await oprot.WriteStringAsync(_iter50, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -557,9 +632,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, DataTypeList.Count), cancellationToken);
-          foreach (string _iter47 in DataTypeList)
+          foreach (string _iter51 in DataTypeList)
           {
-            await oprot.WriteStringAsync(_iter47, cancellationToken);
+            await oprot.WriteStringAsync(_iter51, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -591,10 +666,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.I32, ColumnNameIndexMap.Count), cancellationToken);
-          foreach (string _iter48 in ColumnNameIndexMap.Keys)
+          foreach (string _iter52 in ColumnNameIndexMap.Keys)
           {
-            await oprot.WriteStringAsync(_iter48, cancellationToken);
-            await oprot.WriteI32Async(ColumnNameIndexMap[_iter48], cancellationToken);
+            await oprot.WriteStringAsync(_iter52, cancellationToken);
+            await oprot.WriteI32Async(ColumnNameIndexMap[_iter52], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
@@ -608,9 +683,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, SgColumns.Count), cancellationToken);
-          foreach (string _iter49 in SgColumns)
+          foreach (string _iter53 in SgColumns)
           {
-            await oprot.WriteStringAsync(_iter49, cancellationToken);
+            await oprot.WriteStringAsync(_iter53, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -624,9 +699,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Byte, AliasColumns.Count), cancellationToken);
-          foreach (sbyte _iter50 in AliasColumns)
+          foreach (sbyte _iter54 in AliasColumns)
           {
-            await oprot.WriteByteAsync(_iter50, cancellationToken);
+            await oprot.WriteByteAsync(_iter54, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -649,9 +724,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, QueryResult.Count), cancellationToken);
-          foreach (byte[] _iter51 in QueryResult)
+          foreach (byte[] _iter55 in QueryResult)
           {
-            await oprot.WriteBinaryAsync(_iter51, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter55, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSFastLastDataQueryForOneDeviceReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSFastLastDataQueryForOneDeviceReq.cs
index b1ce861..511a42e 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSFastLastDataQueryForOneDeviceReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSFastLastDataQueryForOneDeviceReq.cs
@@ -136,6 +136,51 @@
     this.StatementId = statementId;
   }
 
+  public TSFastLastDataQueryForOneDeviceReq DeepCopy()
+  {
+    var tmp330 = new TSFastLastDataQueryForOneDeviceReq();
+    tmp330.SessionId = this.SessionId;
+    if((Db != null))
+    {
+      tmp330.Db = this.Db;
+    }
+    if((DeviceId != null))
+    {
+      tmp330.DeviceId = this.DeviceId;
+    }
+    if((Sensors != null))
+    {
+      tmp330.Sensors = this.Sensors.DeepCopy();
+    }
+    if(__isset.fetchSize)
+    {
+      tmp330.FetchSize = this.FetchSize;
+    }
+    tmp330.__isset.fetchSize = this.__isset.fetchSize;
+    tmp330.StatementId = this.StatementId;
+    if(__isset.enableRedirectQuery)
+    {
+      tmp330.EnableRedirectQuery = this.EnableRedirectQuery;
+    }
+    tmp330.__isset.enableRedirectQuery = this.__isset.enableRedirectQuery;
+    if(__isset.jdbcQuery)
+    {
+      tmp330.JdbcQuery = this.JdbcQuery;
+    }
+    tmp330.__isset.jdbcQuery = this.__isset.jdbcQuery;
+    if(__isset.timeout)
+    {
+      tmp330.Timeout = this.Timeout;
+    }
+    tmp330.__isset.timeout = this.__isset.timeout;
+    if(__isset.legalPathNodes)
+    {
+      tmp330.LegalPathNodes = this.LegalPathNodes;
+    }
+    tmp330.__isset.legalPathNodes = this.__isset.legalPathNodes;
+    return tmp330;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -195,13 +240,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list299 = await iprot.ReadListBeginAsync(cancellationToken);
-                Sensors = new List<string>(_list299.Count);
-                for(int _i300 = 0; _i300 < _list299.Count; ++_i300)
+                TList _list331 = await iprot.ReadListBeginAsync(cancellationToken);
+                Sensors = new List<string>(_list331.Count);
+                for(int _i332 = 0; _i332 < _list331.Count; ++_i332)
                 {
-                  string _elem301;
-                  _elem301 = await iprot.ReadStringAsync(cancellationToken);
-                  Sensors.Add(_elem301);
+                  string _elem333;
+                  _elem333 = await iprot.ReadStringAsync(cancellationToken);
+                  Sensors.Add(_elem333);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -349,9 +394,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Sensors.Count), cancellationToken);
-          foreach (string _iter302 in Sensors)
+          foreach (string _iter334 in Sensors)
           {
-            await oprot.WriteStringAsync(_iter302, cancellationToken);
+            await oprot.WriteStringAsync(_iter334, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataReq.cs
index 630fab7..0e37b8a 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataReq.cs
@@ -67,6 +67,22 @@
     this.Type = type;
   }
 
+  public TSFetchMetadataReq DeepCopy()
+  {
+    var tmp101 = new TSFetchMetadataReq();
+    tmp101.SessionId = this.SessionId;
+    if((Type != null))
+    {
+      tmp101.Type = this.Type;
+    }
+    if((ColumnPath != null) && __isset.columnPath)
+    {
+      tmp101.ColumnPath = this.ColumnPath;
+    }
+    tmp101.__isset.columnPath = this.__isset.columnPath;
+    return tmp101;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataResp.cs
index b6df764..0561acb 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSFetchMetadataResp.cs
@@ -94,6 +94,31 @@
     this.Status = status;
   }
 
+  public TSFetchMetadataResp DeepCopy()
+  {
+    var tmp95 = new TSFetchMetadataResp();
+    if((Status != null))
+    {
+      tmp95.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((MetadataInJson != null) && __isset.metadataInJson)
+    {
+      tmp95.MetadataInJson = this.MetadataInJson;
+    }
+    tmp95.__isset.metadataInJson = this.__isset.metadataInJson;
+    if((ColumnsList != null) && __isset.columnsList)
+    {
+      tmp95.ColumnsList = this.ColumnsList.DeepCopy();
+    }
+    tmp95.__isset.columnsList = this.__isset.columnsList;
+    if((DataType != null) && __isset.dataType)
+    {
+      tmp95.DataType = this.DataType;
+    }
+    tmp95.__isset.dataType = this.__isset.dataType;
+    return tmp95;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -138,13 +163,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list81 = await iprot.ReadListBeginAsync(cancellationToken);
-                ColumnsList = new List<string>(_list81.Count);
-                for(int _i82 = 0; _i82 < _list81.Count; ++_i82)
+                TList _list96 = await iprot.ReadListBeginAsync(cancellationToken);
+                ColumnsList = new List<string>(_list96.Count);
+                for(int _i97 = 0; _i97 < _list96.Count; ++_i97)
                 {
-                  string _elem83;
-                  _elem83 = await iprot.ReadStringAsync(cancellationToken);
-                  ColumnsList.Add(_elem83);
+                  string _elem98;
+                  _elem98 = await iprot.ReadStringAsync(cancellationToken);
+                  ColumnsList.Add(_elem98);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -218,9 +243,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ColumnsList.Count), cancellationToken);
-          foreach (string _iter84 in ColumnsList)
+          foreach (string _iter99 in ColumnsList)
           {
-            await oprot.WriteStringAsync(_iter84, cancellationToken);
+            await oprot.WriteStringAsync(_iter99, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsReq.cs
index 828f47d..89494bc 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsReq.cs
@@ -76,6 +76,25 @@
     this.IsAlign = isAlign;
   }
 
+  public TSFetchResultsReq DeepCopy()
+  {
+    var tmp87 = new TSFetchResultsReq();
+    tmp87.SessionId = this.SessionId;
+    if((Statement != null))
+    {
+      tmp87.Statement = this.Statement;
+    }
+    tmp87.FetchSize = this.FetchSize;
+    tmp87.QueryId = this.QueryId;
+    tmp87.IsAlign = this.IsAlign;
+    if(__isset.timeout)
+    {
+      tmp87.Timeout = this.Timeout;
+    }
+    tmp87.__isset.timeout = this.__isset.timeout;
+    return tmp87;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsResp.cs
index 657cc6a..5b1ad02 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSFetchResultsResp.cs
@@ -115,6 +115,38 @@
     this.IsAlign = isAlign;
   }
 
+  public TSFetchResultsResp DeepCopy()
+  {
+    var tmp89 = new TSFetchResultsResp();
+    if((Status != null))
+    {
+      tmp89.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    tmp89.HasResultSet = this.HasResultSet;
+    tmp89.IsAlign = this.IsAlign;
+    if((QueryDataSet != null) && __isset.queryDataSet)
+    {
+      tmp89.QueryDataSet = (TSQueryDataSet)this.QueryDataSet.DeepCopy();
+    }
+    tmp89.__isset.queryDataSet = this.__isset.queryDataSet;
+    if((NonAlignQueryDataSet != null) && __isset.nonAlignQueryDataSet)
+    {
+      tmp89.NonAlignQueryDataSet = (TSQueryNonAlignDataSet)this.NonAlignQueryDataSet.DeepCopy();
+    }
+    tmp89.__isset.nonAlignQueryDataSet = this.__isset.nonAlignQueryDataSet;
+    if((QueryResult != null) && __isset.queryResult)
+    {
+      tmp89.QueryResult = this.QueryResult.DeepCopy();
+    }
+    tmp89.__isset.queryResult = this.__isset.queryResult;
+    if(__isset.moreData)
+    {
+      tmp89.MoreData = this.MoreData;
+    }
+    tmp89.__isset.moreData = this.__isset.moreData;
+    return tmp89;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -195,13 +227,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list76 = await iprot.ReadListBeginAsync(cancellationToken);
-                QueryResult = new List<byte[]>(_list76.Count);
-                for(int _i77 = 0; _i77 < _list76.Count; ++_i77)
+                TList _list90 = await iprot.ReadListBeginAsync(cancellationToken);
+                QueryResult = new List<byte[]>(_list90.Count);
+                for(int _i91 = 0; _i91 < _list90.Count; ++_i91)
                 {
-                  byte[] _elem78;
-                  _elem78 = await iprot.ReadBinaryAsync(cancellationToken);
-                  QueryResult.Add(_elem78);
+                  byte[] _elem92;
+                  _elem92 = await iprot.ReadBinaryAsync(cancellationToken);
+                  QueryResult.Add(_elem92);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -304,9 +336,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, QueryResult.Count), cancellationToken);
-          foreach (byte[] _iter79 in QueryResult)
+          foreach (byte[] _iter93 in QueryResult)
           {
-            await oprot.WriteBinaryAsync(_iter79, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter93, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSGetOperationStatusReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSGetOperationStatusReq.cs
index 7369e01..2da3b04 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSGetOperationStatusReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSGetOperationStatusReq.cs
@@ -46,6 +46,14 @@
     this.QueryId = queryId;
   }
 
+  public TSGetOperationStatusReq DeepCopy()
+  {
+    var tmp81 = new TSGetOperationStatusReq();
+    tmp81.SessionId = this.SessionId;
+    tmp81.QueryId = this.QueryId;
+    return tmp81;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSGetTimeZoneResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSGetTimeZoneResp.cs
index e10c613..0327bcf 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSGetTimeZoneResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSGetTimeZoneResp.cs
@@ -46,6 +46,20 @@
     this.TimeZone = timeZone;
   }
 
+  public TSGetTimeZoneResp DeepCopy()
+  {
+    var tmp103 = new TSGetTimeZoneResp();
+    if((Status != null))
+    {
+      tmp103.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((TimeZone != null))
+    {
+      tmp103.TimeZone = this.TimeZone;
+    }
+    return tmp103;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSGroupByQueryIntervalReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSGroupByQueryIntervalReq.cs
index 5f43094..6ced16a 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSGroupByQueryIntervalReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSGroupByQueryIntervalReq.cs
@@ -158,6 +158,54 @@
     this.AggregationType = aggregationType;
   }
 
+  public TSGroupByQueryIntervalReq DeepCopy()
+  {
+    var tmp346 = new TSGroupByQueryIntervalReq();
+    tmp346.SessionId = this.SessionId;
+    tmp346.StatementId = this.StatementId;
+    if((Device != null))
+    {
+      tmp346.Device = this.Device;
+    }
+    if((Measurement != null))
+    {
+      tmp346.Measurement = this.Measurement;
+    }
+    tmp346.DataType = this.DataType;
+    tmp346.AggregationType = this.AggregationType;
+    if((Database != null) && __isset.database)
+    {
+      tmp346.Database = this.Database;
+    }
+    tmp346.__isset.database = this.__isset.database;
+    if(__isset.startTime)
+    {
+      tmp346.StartTime = this.StartTime;
+    }
+    tmp346.__isset.startTime = this.__isset.startTime;
+    if(__isset.endTime)
+    {
+      tmp346.EndTime = this.EndTime;
+    }
+    tmp346.__isset.endTime = this.__isset.endTime;
+    if(__isset.interval)
+    {
+      tmp346.Interval = this.Interval;
+    }
+    tmp346.__isset.interval = this.__isset.interval;
+    if(__isset.fetchSize)
+    {
+      tmp346.FetchSize = this.FetchSize;
+    }
+    tmp346.__isset.fetchSize = this.__isset.fetchSize;
+    if(__isset.timeout)
+    {
+      tmp346.Timeout = this.Timeout;
+    }
+    tmp346.__isset.timeout = this.__isset.timeout;
+    return tmp346;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordReq.cs
index 8a8c5db..1699a35 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordReq.cs
@@ -76,6 +76,31 @@
     this.Timestamp = timestamp;
   }
 
+  public TSInsertRecordReq DeepCopy()
+  {
+    var tmp107 = new TSInsertRecordReq();
+    tmp107.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp107.PrefixPath = this.PrefixPath;
+    }
+    if((Measurements != null))
+    {
+      tmp107.Measurements = this.Measurements.DeepCopy();
+    }
+    if((Values != null))
+    {
+      tmp107.Values = this.Values.ToArray();
+    }
+    tmp107.Timestamp = this.Timestamp;
+    if(__isset.isAligned)
+    {
+      tmp107.IsAligned = this.IsAligned;
+    }
+    tmp107.__isset.isAligned = this.__isset.isAligned;
+    return tmp107;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -124,13 +149,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list89 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list89.Count);
-                for(int _i90 = 0; _i90 < _list89.Count; ++_i90)
+                TList _list108 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list108.Count);
+                for(int _i109 = 0; _i109 < _list108.Count; ++_i109)
                 {
-                  string _elem91;
-                  _elem91 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem91);
+                  string _elem110;
+                  _elem110 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem110);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -240,9 +265,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter92 in Measurements)
+          foreach (string _iter111 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter92, cancellationToken);
+            await oprot.WriteStringAsync(_iter111, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsOfOneDeviceReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsOfOneDeviceReq.cs
index 4de5f13..72468cd 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsOfOneDeviceReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsOfOneDeviceReq.cs
@@ -76,6 +76,34 @@
     this.Timestamps = timestamps;
   }
 
+  public TSInsertRecordsOfOneDeviceReq DeepCopy()
+  {
+    var tmp189 = new TSInsertRecordsOfOneDeviceReq();
+    tmp189.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp189.PrefixPath = this.PrefixPath;
+    }
+    if((MeasurementsList != null))
+    {
+      tmp189.MeasurementsList = this.MeasurementsList.DeepCopy();
+    }
+    if((ValuesList != null))
+    {
+      tmp189.ValuesList = this.ValuesList.DeepCopy();
+    }
+    if((Timestamps != null))
+    {
+      tmp189.Timestamps = this.Timestamps.DeepCopy();
+    }
+    if(__isset.isAligned)
+    {
+      tmp189.IsAligned = this.IsAligned;
+    }
+    tmp189.__isset.isAligned = this.__isset.isAligned;
+    return tmp189;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -124,23 +152,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list166 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementsList = new List<List<string>>(_list166.Count);
-                for(int _i167 = 0; _i167 < _list166.Count; ++_i167)
+                TList _list190 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementsList = new List<List<string>>(_list190.Count);
+                for(int _i191 = 0; _i191 < _list190.Count; ++_i191)
                 {
-                  List<string> _elem168;
+                  List<string> _elem192;
                   {
-                    TList _list169 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem168 = new List<string>(_list169.Count);
-                    for(int _i170 = 0; _i170 < _list169.Count; ++_i170)
+                    TList _list193 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem192 = new List<string>(_list193.Count);
+                    for(int _i194 = 0; _i194 < _list193.Count; ++_i194)
                     {
-                      string _elem171;
-                      _elem171 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem168.Add(_elem171);
+                      string _elem195;
+                      _elem195 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem192.Add(_elem195);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  MeasurementsList.Add(_elem168);
+                  MeasurementsList.Add(_elem192);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -155,13 +183,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list172 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValuesList = new List<byte[]>(_list172.Count);
-                for(int _i173 = 0; _i173 < _list172.Count; ++_i173)
+                TList _list196 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValuesList = new List<byte[]>(_list196.Count);
+                for(int _i197 = 0; _i197 < _list196.Count; ++_i197)
                 {
-                  byte[] _elem174;
-                  _elem174 = await iprot.ReadBinaryAsync(cancellationToken);
-                  ValuesList.Add(_elem174);
+                  byte[] _elem198;
+                  _elem198 = await iprot.ReadBinaryAsync(cancellationToken);
+                  ValuesList.Add(_elem198);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -176,13 +204,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list175 = await iprot.ReadListBeginAsync(cancellationToken);
-                Timestamps = new List<long>(_list175.Count);
-                for(int _i176 = 0; _i176 < _list175.Count; ++_i176)
+                TList _list199 = await iprot.ReadListBeginAsync(cancellationToken);
+                Timestamps = new List<long>(_list199.Count);
+                for(int _i200 = 0; _i200 < _list199.Count; ++_i200)
                 {
-                  long _elem177;
-                  _elem177 = await iprot.ReadI64Async(cancellationToken);
-                  Timestamps.Add(_elem177);
+                  long _elem201;
+                  _elem201 = await iprot.ReadI64Async(cancellationToken);
+                  Timestamps.Add(_elem201);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -270,13 +298,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, MeasurementsList.Count), cancellationToken);
-          foreach (List<string> _iter178 in MeasurementsList)
+          foreach (List<string> _iter202 in MeasurementsList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter178.Count), cancellationToken);
-              foreach (string _iter179 in _iter178)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter202.Count), cancellationToken);
+              foreach (string _iter203 in _iter202)
               {
-                await oprot.WriteStringAsync(_iter179, cancellationToken);
+                await oprot.WriteStringAsync(_iter203, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -293,9 +321,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ValuesList.Count), cancellationToken);
-          foreach (byte[] _iter180 in ValuesList)
+          foreach (byte[] _iter204 in ValuesList)
           {
-            await oprot.WriteBinaryAsync(_iter180, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter204, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -309,9 +337,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I64, Timestamps.Count), cancellationToken);
-          foreach (long _iter181 in Timestamps)
+          foreach (long _iter205 in Timestamps)
           {
-            await oprot.WriteI64Async(_iter181, cancellationToken);
+            await oprot.WriteI64Async(_iter205, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsReq.cs
index 524756c..5f1d8dc 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertRecordsReq.cs
@@ -76,6 +76,34 @@
     this.Timestamps = timestamps;
   }
 
+  public TSInsertRecordsReq DeepCopy()
+  {
+    var tmp167 = new TSInsertRecordsReq();
+    tmp167.SessionId = this.SessionId;
+    if((PrefixPaths != null))
+    {
+      tmp167.PrefixPaths = this.PrefixPaths.DeepCopy();
+    }
+    if((MeasurementsList != null))
+    {
+      tmp167.MeasurementsList = this.MeasurementsList.DeepCopy();
+    }
+    if((ValuesList != null))
+    {
+      tmp167.ValuesList = this.ValuesList.DeepCopy();
+    }
+    if((Timestamps != null))
+    {
+      tmp167.Timestamps = this.Timestamps.DeepCopy();
+    }
+    if(__isset.isAligned)
+    {
+      tmp167.IsAligned = this.IsAligned;
+    }
+    tmp167.__isset.isAligned = this.__isset.isAligned;
+    return tmp167;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -113,13 +141,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list145 = await iprot.ReadListBeginAsync(cancellationToken);
-                PrefixPaths = new List<string>(_list145.Count);
-                for(int _i146 = 0; _i146 < _list145.Count; ++_i146)
+                TList _list168 = await iprot.ReadListBeginAsync(cancellationToken);
+                PrefixPaths = new List<string>(_list168.Count);
+                for(int _i169 = 0; _i169 < _list168.Count; ++_i169)
                 {
-                  string _elem147;
-                  _elem147 = await iprot.ReadStringAsync(cancellationToken);
-                  PrefixPaths.Add(_elem147);
+                  string _elem170;
+                  _elem170 = await iprot.ReadStringAsync(cancellationToken);
+                  PrefixPaths.Add(_elem170);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -134,23 +162,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list148 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementsList = new List<List<string>>(_list148.Count);
-                for(int _i149 = 0; _i149 < _list148.Count; ++_i149)
+                TList _list171 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementsList = new List<List<string>>(_list171.Count);
+                for(int _i172 = 0; _i172 < _list171.Count; ++_i172)
                 {
-                  List<string> _elem150;
+                  List<string> _elem173;
                   {
-                    TList _list151 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem150 = new List<string>(_list151.Count);
-                    for(int _i152 = 0; _i152 < _list151.Count; ++_i152)
+                    TList _list174 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem173 = new List<string>(_list174.Count);
+                    for(int _i175 = 0; _i175 < _list174.Count; ++_i175)
                     {
-                      string _elem153;
-                      _elem153 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem150.Add(_elem153);
+                      string _elem176;
+                      _elem176 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem173.Add(_elem176);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  MeasurementsList.Add(_elem150);
+                  MeasurementsList.Add(_elem173);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -165,13 +193,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list154 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValuesList = new List<byte[]>(_list154.Count);
-                for(int _i155 = 0; _i155 < _list154.Count; ++_i155)
+                TList _list177 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValuesList = new List<byte[]>(_list177.Count);
+                for(int _i178 = 0; _i178 < _list177.Count; ++_i178)
                 {
-                  byte[] _elem156;
-                  _elem156 = await iprot.ReadBinaryAsync(cancellationToken);
-                  ValuesList.Add(_elem156);
+                  byte[] _elem179;
+                  _elem179 = await iprot.ReadBinaryAsync(cancellationToken);
+                  ValuesList.Add(_elem179);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -186,13 +214,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list157 = await iprot.ReadListBeginAsync(cancellationToken);
-                Timestamps = new List<long>(_list157.Count);
-                for(int _i158 = 0; _i158 < _list157.Count; ++_i158)
+                TList _list180 = await iprot.ReadListBeginAsync(cancellationToken);
+                Timestamps = new List<long>(_list180.Count);
+                for(int _i181 = 0; _i181 < _list180.Count; ++_i181)
                 {
-                  long _elem159;
-                  _elem159 = await iprot.ReadI64Async(cancellationToken);
-                  Timestamps.Add(_elem159);
+                  long _elem182;
+                  _elem182 = await iprot.ReadI64Async(cancellationToken);
+                  Timestamps.Add(_elem182);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -271,9 +299,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, PrefixPaths.Count), cancellationToken);
-          foreach (string _iter160 in PrefixPaths)
+          foreach (string _iter183 in PrefixPaths)
           {
-            await oprot.WriteStringAsync(_iter160, cancellationToken);
+            await oprot.WriteStringAsync(_iter183, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -287,13 +315,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, MeasurementsList.Count), cancellationToken);
-          foreach (List<string> _iter161 in MeasurementsList)
+          foreach (List<string> _iter184 in MeasurementsList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter161.Count), cancellationToken);
-              foreach (string _iter162 in _iter161)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter184.Count), cancellationToken);
+              foreach (string _iter185 in _iter184)
               {
-                await oprot.WriteStringAsync(_iter162, cancellationToken);
+                await oprot.WriteStringAsync(_iter185, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -310,9 +338,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ValuesList.Count), cancellationToken);
-          foreach (byte[] _iter163 in ValuesList)
+          foreach (byte[] _iter186 in ValuesList)
           {
-            await oprot.WriteBinaryAsync(_iter163, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter186, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -326,9 +354,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I64, Timestamps.Count), cancellationToken);
-          foreach (long _iter164 in Timestamps)
+          foreach (long _iter187 in Timestamps)
           {
-            await oprot.WriteI64Async(_iter164, cancellationToken);
+            await oprot.WriteI64Async(_iter187, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordReq.cs
index 8d4f58a..74f3de3 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordReq.cs
@@ -91,6 +91,36 @@
     this.Timestamp = timestamp;
   }
 
+  public TSInsertStringRecordReq DeepCopy()
+  {
+    var tmp113 = new TSInsertStringRecordReq();
+    tmp113.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp113.PrefixPath = this.PrefixPath;
+    }
+    if((Measurements != null))
+    {
+      tmp113.Measurements = this.Measurements.DeepCopy();
+    }
+    if((Values != null))
+    {
+      tmp113.Values = this.Values.DeepCopy();
+    }
+    tmp113.Timestamp = this.Timestamp;
+    if(__isset.isAligned)
+    {
+      tmp113.IsAligned = this.IsAligned;
+    }
+    tmp113.__isset.isAligned = this.__isset.isAligned;
+    if(__isset.timeout)
+    {
+      tmp113.Timeout = this.Timeout;
+    }
+    tmp113.__isset.timeout = this.__isset.timeout;
+    return tmp113;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -139,13 +169,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list94 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list94.Count);
-                for(int _i95 = 0; _i95 < _list94.Count; ++_i95)
+                TList _list114 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list114.Count);
+                for(int _i115 = 0; _i115 < _list114.Count; ++_i115)
                 {
-                  string _elem96;
-                  _elem96 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem96);
+                  string _elem116;
+                  _elem116 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem116);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -160,13 +190,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list97 = await iprot.ReadListBeginAsync(cancellationToken);
-                Values = new List<string>(_list97.Count);
-                for(int _i98 = 0; _i98 < _list97.Count; ++_i98)
+                TList _list117 = await iprot.ReadListBeginAsync(cancellationToken);
+                Values = new List<string>(_list117.Count);
+                for(int _i118 = 0; _i118 < _list117.Count; ++_i118)
                 {
-                  string _elem99;
-                  _elem99 = await iprot.ReadStringAsync(cancellationToken);
-                  Values.Add(_elem99);
+                  string _elem119;
+                  _elem119 = await iprot.ReadStringAsync(cancellationToken);
+                  Values.Add(_elem119);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -275,9 +305,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter100 in Measurements)
+          foreach (string _iter120 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter100, cancellationToken);
+            await oprot.WriteStringAsync(_iter120, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -291,9 +321,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Values.Count), cancellationToken);
-          foreach (string _iter101 in Values)
+          foreach (string _iter121 in Values)
           {
-            await oprot.WriteStringAsync(_iter101, cancellationToken);
+            await oprot.WriteStringAsync(_iter121, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsOfOneDeviceReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsOfOneDeviceReq.cs
index 3d47126..2252912 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsOfOneDeviceReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsOfOneDeviceReq.cs
@@ -76,6 +76,34 @@
     this.Timestamps = timestamps;
   }
 
+  public TSInsertStringRecordsOfOneDeviceReq DeepCopy()
+  {
+    var tmp207 = new TSInsertStringRecordsOfOneDeviceReq();
+    tmp207.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp207.PrefixPath = this.PrefixPath;
+    }
+    if((MeasurementsList != null))
+    {
+      tmp207.MeasurementsList = this.MeasurementsList.DeepCopy();
+    }
+    if((ValuesList != null))
+    {
+      tmp207.ValuesList = this.ValuesList.DeepCopy();
+    }
+    if((Timestamps != null))
+    {
+      tmp207.Timestamps = this.Timestamps.DeepCopy();
+    }
+    if(__isset.isAligned)
+    {
+      tmp207.IsAligned = this.IsAligned;
+    }
+    tmp207.__isset.isAligned = this.__isset.isAligned;
+    return tmp207;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -124,23 +152,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list183 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementsList = new List<List<string>>(_list183.Count);
-                for(int _i184 = 0; _i184 < _list183.Count; ++_i184)
+                TList _list208 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementsList = new List<List<string>>(_list208.Count);
+                for(int _i209 = 0; _i209 < _list208.Count; ++_i209)
                 {
-                  List<string> _elem185;
+                  List<string> _elem210;
                   {
-                    TList _list186 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem185 = new List<string>(_list186.Count);
-                    for(int _i187 = 0; _i187 < _list186.Count; ++_i187)
+                    TList _list211 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem210 = new List<string>(_list211.Count);
+                    for(int _i212 = 0; _i212 < _list211.Count; ++_i212)
                     {
-                      string _elem188;
-                      _elem188 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem185.Add(_elem188);
+                      string _elem213;
+                      _elem213 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem210.Add(_elem213);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  MeasurementsList.Add(_elem185);
+                  MeasurementsList.Add(_elem210);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -155,23 +183,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list189 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValuesList = new List<List<string>>(_list189.Count);
-                for(int _i190 = 0; _i190 < _list189.Count; ++_i190)
+                TList _list214 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValuesList = new List<List<string>>(_list214.Count);
+                for(int _i215 = 0; _i215 < _list214.Count; ++_i215)
                 {
-                  List<string> _elem191;
+                  List<string> _elem216;
                   {
-                    TList _list192 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem191 = new List<string>(_list192.Count);
-                    for(int _i193 = 0; _i193 < _list192.Count; ++_i193)
+                    TList _list217 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem216 = new List<string>(_list217.Count);
+                    for(int _i218 = 0; _i218 < _list217.Count; ++_i218)
                     {
-                      string _elem194;
-                      _elem194 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem191.Add(_elem194);
+                      string _elem219;
+                      _elem219 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem216.Add(_elem219);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  ValuesList.Add(_elem191);
+                  ValuesList.Add(_elem216);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -186,13 +214,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list195 = await iprot.ReadListBeginAsync(cancellationToken);
-                Timestamps = new List<long>(_list195.Count);
-                for(int _i196 = 0; _i196 < _list195.Count; ++_i196)
+                TList _list220 = await iprot.ReadListBeginAsync(cancellationToken);
+                Timestamps = new List<long>(_list220.Count);
+                for(int _i221 = 0; _i221 < _list220.Count; ++_i221)
                 {
-                  long _elem197;
-                  _elem197 = await iprot.ReadI64Async(cancellationToken);
-                  Timestamps.Add(_elem197);
+                  long _elem222;
+                  _elem222 = await iprot.ReadI64Async(cancellationToken);
+                  Timestamps.Add(_elem222);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -280,13 +308,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, MeasurementsList.Count), cancellationToken);
-          foreach (List<string> _iter198 in MeasurementsList)
+          foreach (List<string> _iter223 in MeasurementsList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter198.Count), cancellationToken);
-              foreach (string _iter199 in _iter198)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter223.Count), cancellationToken);
+              foreach (string _iter224 in _iter223)
               {
-                await oprot.WriteStringAsync(_iter199, cancellationToken);
+                await oprot.WriteStringAsync(_iter224, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -303,13 +331,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, ValuesList.Count), cancellationToken);
-          foreach (List<string> _iter200 in ValuesList)
+          foreach (List<string> _iter225 in ValuesList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter200.Count), cancellationToken);
-              foreach (string _iter201 in _iter200)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter225.Count), cancellationToken);
+              foreach (string _iter226 in _iter225)
               {
-                await oprot.WriteStringAsync(_iter201, cancellationToken);
+                await oprot.WriteStringAsync(_iter226, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -326,9 +354,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I64, Timestamps.Count), cancellationToken);
-          foreach (long _iter202 in Timestamps)
+          foreach (long _iter227 in Timestamps)
           {
-            await oprot.WriteI64Async(_iter202, cancellationToken);
+            await oprot.WriteI64Async(_iter227, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsReq.cs
index c743d12..104cc85 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertStringRecordsReq.cs
@@ -76,6 +76,34 @@
     this.Timestamps = timestamps;
   }
 
+  public TSInsertStringRecordsReq DeepCopy()
+  {
+    var tmp229 = new TSInsertStringRecordsReq();
+    tmp229.SessionId = this.SessionId;
+    if((PrefixPaths != null))
+    {
+      tmp229.PrefixPaths = this.PrefixPaths.DeepCopy();
+    }
+    if((MeasurementsList != null))
+    {
+      tmp229.MeasurementsList = this.MeasurementsList.DeepCopy();
+    }
+    if((ValuesList != null))
+    {
+      tmp229.ValuesList = this.ValuesList.DeepCopy();
+    }
+    if((Timestamps != null))
+    {
+      tmp229.Timestamps = this.Timestamps.DeepCopy();
+    }
+    if(__isset.isAligned)
+    {
+      tmp229.IsAligned = this.IsAligned;
+    }
+    tmp229.__isset.isAligned = this.__isset.isAligned;
+    return tmp229;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -113,13 +141,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list204 = await iprot.ReadListBeginAsync(cancellationToken);
-                PrefixPaths = new List<string>(_list204.Count);
-                for(int _i205 = 0; _i205 < _list204.Count; ++_i205)
+                TList _list230 = await iprot.ReadListBeginAsync(cancellationToken);
+                PrefixPaths = new List<string>(_list230.Count);
+                for(int _i231 = 0; _i231 < _list230.Count; ++_i231)
                 {
-                  string _elem206;
-                  _elem206 = await iprot.ReadStringAsync(cancellationToken);
-                  PrefixPaths.Add(_elem206);
+                  string _elem232;
+                  _elem232 = await iprot.ReadStringAsync(cancellationToken);
+                  PrefixPaths.Add(_elem232);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -134,23 +162,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list207 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementsList = new List<List<string>>(_list207.Count);
-                for(int _i208 = 0; _i208 < _list207.Count; ++_i208)
+                TList _list233 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementsList = new List<List<string>>(_list233.Count);
+                for(int _i234 = 0; _i234 < _list233.Count; ++_i234)
                 {
-                  List<string> _elem209;
+                  List<string> _elem235;
                   {
-                    TList _list210 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem209 = new List<string>(_list210.Count);
-                    for(int _i211 = 0; _i211 < _list210.Count; ++_i211)
+                    TList _list236 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem235 = new List<string>(_list236.Count);
+                    for(int _i237 = 0; _i237 < _list236.Count; ++_i237)
                     {
-                      string _elem212;
-                      _elem212 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem209.Add(_elem212);
+                      string _elem238;
+                      _elem238 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem235.Add(_elem238);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  MeasurementsList.Add(_elem209);
+                  MeasurementsList.Add(_elem235);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -165,23 +193,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list213 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValuesList = new List<List<string>>(_list213.Count);
-                for(int _i214 = 0; _i214 < _list213.Count; ++_i214)
+                TList _list239 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValuesList = new List<List<string>>(_list239.Count);
+                for(int _i240 = 0; _i240 < _list239.Count; ++_i240)
                 {
-                  List<string> _elem215;
+                  List<string> _elem241;
                   {
-                    TList _list216 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem215 = new List<string>(_list216.Count);
-                    for(int _i217 = 0; _i217 < _list216.Count; ++_i217)
+                    TList _list242 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem241 = new List<string>(_list242.Count);
+                    for(int _i243 = 0; _i243 < _list242.Count; ++_i243)
                     {
-                      string _elem218;
-                      _elem218 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem215.Add(_elem218);
+                      string _elem244;
+                      _elem244 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem241.Add(_elem244);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  ValuesList.Add(_elem215);
+                  ValuesList.Add(_elem241);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -196,13 +224,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list219 = await iprot.ReadListBeginAsync(cancellationToken);
-                Timestamps = new List<long>(_list219.Count);
-                for(int _i220 = 0; _i220 < _list219.Count; ++_i220)
+                TList _list245 = await iprot.ReadListBeginAsync(cancellationToken);
+                Timestamps = new List<long>(_list245.Count);
+                for(int _i246 = 0; _i246 < _list245.Count; ++_i246)
                 {
-                  long _elem221;
-                  _elem221 = await iprot.ReadI64Async(cancellationToken);
-                  Timestamps.Add(_elem221);
+                  long _elem247;
+                  _elem247 = await iprot.ReadI64Async(cancellationToken);
+                  Timestamps.Add(_elem247);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -281,9 +309,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, PrefixPaths.Count), cancellationToken);
-          foreach (string _iter222 in PrefixPaths)
+          foreach (string _iter248 in PrefixPaths)
           {
-            await oprot.WriteStringAsync(_iter222, cancellationToken);
+            await oprot.WriteStringAsync(_iter248, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -297,13 +325,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, MeasurementsList.Count), cancellationToken);
-          foreach (List<string> _iter223 in MeasurementsList)
+          foreach (List<string> _iter249 in MeasurementsList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter223.Count), cancellationToken);
-              foreach (string _iter224 in _iter223)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter249.Count), cancellationToken);
+              foreach (string _iter250 in _iter249)
               {
-                await oprot.WriteStringAsync(_iter224, cancellationToken);
+                await oprot.WriteStringAsync(_iter250, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -320,13 +348,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, ValuesList.Count), cancellationToken);
-          foreach (List<string> _iter225 in ValuesList)
+          foreach (List<string> _iter251 in ValuesList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter225.Count), cancellationToken);
-              foreach (string _iter226 in _iter225)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter251.Count), cancellationToken);
+              foreach (string _iter252 in _iter251)
               {
-                await oprot.WriteStringAsync(_iter226, cancellationToken);
+                await oprot.WriteStringAsync(_iter252, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -343,9 +371,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I64, Timestamps.Count), cancellationToken);
-          foreach (long _iter227 in Timestamps)
+          foreach (long _iter253 in Timestamps)
           {
-            await oprot.WriteI64Async(_iter227, cancellationToken);
+            await oprot.WriteI64Async(_iter253, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletReq.cs
index 31492b8..2d4ce1e 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletReq.cs
@@ -82,6 +82,39 @@
     this.Size = size;
   }
 
+  public TSInsertTabletReq DeepCopy()
+  {
+    var tmp123 = new TSInsertTabletReq();
+    tmp123.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp123.PrefixPath = this.PrefixPath;
+    }
+    if((Measurements != null))
+    {
+      tmp123.Measurements = this.Measurements.DeepCopy();
+    }
+    if((Values != null))
+    {
+      tmp123.Values = this.Values.ToArray();
+    }
+    if((Timestamps != null))
+    {
+      tmp123.Timestamps = this.Timestamps.ToArray();
+    }
+    if((Types != null))
+    {
+      tmp123.Types = this.Types.DeepCopy();
+    }
+    tmp123.Size = this.Size;
+    if(__isset.isAligned)
+    {
+      tmp123.IsAligned = this.IsAligned;
+    }
+    tmp123.__isset.isAligned = this.__isset.isAligned;
+    return tmp123;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -132,13 +165,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list103 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list103.Count);
-                for(int _i104 = 0; _i104 < _list103.Count; ++_i104)
+                TList _list124 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list124.Count);
+                for(int _i125 = 0; _i125 < _list124.Count; ++_i125)
                 {
-                  string _elem105;
-                  _elem105 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem105);
+                  string _elem126;
+                  _elem126 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem126);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -175,13 +208,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list106 = await iprot.ReadListBeginAsync(cancellationToken);
-                Types = new List<int>(_list106.Count);
-                for(int _i107 = 0; _i107 < _list106.Count; ++_i107)
+                TList _list127 = await iprot.ReadListBeginAsync(cancellationToken);
+                Types = new List<int>(_list127.Count);
+                for(int _i128 = 0; _i128 < _list127.Count; ++_i128)
                 {
-                  int _elem108;
-                  _elem108 = await iprot.ReadI32Async(cancellationToken);
-                  Types.Add(_elem108);
+                  int _elem129;
+                  _elem129 = await iprot.ReadI32Async(cancellationToken);
+                  Types.Add(_elem129);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -288,9 +321,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter109 in Measurements)
+          foreach (string _iter130 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter109, cancellationToken);
+            await oprot.WriteStringAsync(_iter130, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -322,9 +355,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, Types.Count), cancellationToken);
-          foreach (int _iter110 in Types)
+          foreach (int _iter131 in Types)
           {
-            await oprot.WriteI32Async(_iter110, cancellationToken);
+            await oprot.WriteI32Async(_iter131, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletsReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletsReq.cs
index 349631a..e35d43c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletsReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSInsertTabletsReq.cs
@@ -82,6 +82,42 @@
     this.SizeList = sizeList;
   }
 
+  public TSInsertTabletsReq DeepCopy()
+  {
+    var tmp133 = new TSInsertTabletsReq();
+    tmp133.SessionId = this.SessionId;
+    if((PrefixPaths != null))
+    {
+      tmp133.PrefixPaths = this.PrefixPaths.DeepCopy();
+    }
+    if((MeasurementsList != null))
+    {
+      tmp133.MeasurementsList = this.MeasurementsList.DeepCopy();
+    }
+    if((ValuesList != null))
+    {
+      tmp133.ValuesList = this.ValuesList.DeepCopy();
+    }
+    if((TimestampsList != null))
+    {
+      tmp133.TimestampsList = this.TimestampsList.DeepCopy();
+    }
+    if((TypesList != null))
+    {
+      tmp133.TypesList = this.TypesList.DeepCopy();
+    }
+    if((SizeList != null))
+    {
+      tmp133.SizeList = this.SizeList.DeepCopy();
+    }
+    if(__isset.isAligned)
+    {
+      tmp133.IsAligned = this.IsAligned;
+    }
+    tmp133.__isset.isAligned = this.__isset.isAligned;
+    return tmp133;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -121,13 +157,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list112 = await iprot.ReadListBeginAsync(cancellationToken);
-                PrefixPaths = new List<string>(_list112.Count);
-                for(int _i113 = 0; _i113 < _list112.Count; ++_i113)
+                TList _list134 = await iprot.ReadListBeginAsync(cancellationToken);
+                PrefixPaths = new List<string>(_list134.Count);
+                for(int _i135 = 0; _i135 < _list134.Count; ++_i135)
                 {
-                  string _elem114;
-                  _elem114 = await iprot.ReadStringAsync(cancellationToken);
-                  PrefixPaths.Add(_elem114);
+                  string _elem136;
+                  _elem136 = await iprot.ReadStringAsync(cancellationToken);
+                  PrefixPaths.Add(_elem136);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -142,23 +178,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list115 = await iprot.ReadListBeginAsync(cancellationToken);
-                MeasurementsList = new List<List<string>>(_list115.Count);
-                for(int _i116 = 0; _i116 < _list115.Count; ++_i116)
+                TList _list137 = await iprot.ReadListBeginAsync(cancellationToken);
+                MeasurementsList = new List<List<string>>(_list137.Count);
+                for(int _i138 = 0; _i138 < _list137.Count; ++_i138)
                 {
-                  List<string> _elem117;
+                  List<string> _elem139;
                   {
-                    TList _list118 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem117 = new List<string>(_list118.Count);
-                    for(int _i119 = 0; _i119 < _list118.Count; ++_i119)
+                    TList _list140 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem139 = new List<string>(_list140.Count);
+                    for(int _i141 = 0; _i141 < _list140.Count; ++_i141)
                     {
-                      string _elem120;
-                      _elem120 = await iprot.ReadStringAsync(cancellationToken);
-                      _elem117.Add(_elem120);
+                      string _elem142;
+                      _elem142 = await iprot.ReadStringAsync(cancellationToken);
+                      _elem139.Add(_elem142);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  MeasurementsList.Add(_elem117);
+                  MeasurementsList.Add(_elem139);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -173,13 +209,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list121 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValuesList = new List<byte[]>(_list121.Count);
-                for(int _i122 = 0; _i122 < _list121.Count; ++_i122)
+                TList _list143 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValuesList = new List<byte[]>(_list143.Count);
+                for(int _i144 = 0; _i144 < _list143.Count; ++_i144)
                 {
-                  byte[] _elem123;
-                  _elem123 = await iprot.ReadBinaryAsync(cancellationToken);
-                  ValuesList.Add(_elem123);
+                  byte[] _elem145;
+                  _elem145 = await iprot.ReadBinaryAsync(cancellationToken);
+                  ValuesList.Add(_elem145);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -194,13 +230,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list124 = await iprot.ReadListBeginAsync(cancellationToken);
-                TimestampsList = new List<byte[]>(_list124.Count);
-                for(int _i125 = 0; _i125 < _list124.Count; ++_i125)
+                TList _list146 = await iprot.ReadListBeginAsync(cancellationToken);
+                TimestampsList = new List<byte[]>(_list146.Count);
+                for(int _i147 = 0; _i147 < _list146.Count; ++_i147)
                 {
-                  byte[] _elem126;
-                  _elem126 = await iprot.ReadBinaryAsync(cancellationToken);
-                  TimestampsList.Add(_elem126);
+                  byte[] _elem148;
+                  _elem148 = await iprot.ReadBinaryAsync(cancellationToken);
+                  TimestampsList.Add(_elem148);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -215,23 +251,23 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list127 = await iprot.ReadListBeginAsync(cancellationToken);
-                TypesList = new List<List<int>>(_list127.Count);
-                for(int _i128 = 0; _i128 < _list127.Count; ++_i128)
+                TList _list149 = await iprot.ReadListBeginAsync(cancellationToken);
+                TypesList = new List<List<int>>(_list149.Count);
+                for(int _i150 = 0; _i150 < _list149.Count; ++_i150)
                 {
-                  List<int> _elem129;
+                  List<int> _elem151;
                   {
-                    TList _list130 = await iprot.ReadListBeginAsync(cancellationToken);
-                    _elem129 = new List<int>(_list130.Count);
-                    for(int _i131 = 0; _i131 < _list130.Count; ++_i131)
+                    TList _list152 = await iprot.ReadListBeginAsync(cancellationToken);
+                    _elem151 = new List<int>(_list152.Count);
+                    for(int _i153 = 0; _i153 < _list152.Count; ++_i153)
                     {
-                      int _elem132;
-                      _elem132 = await iprot.ReadI32Async(cancellationToken);
-                      _elem129.Add(_elem132);
+                      int _elem154;
+                      _elem154 = await iprot.ReadI32Async(cancellationToken);
+                      _elem151.Add(_elem154);
                     }
                     await iprot.ReadListEndAsync(cancellationToken);
                   }
-                  TypesList.Add(_elem129);
+                  TypesList.Add(_elem151);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -246,13 +282,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list133 = await iprot.ReadListBeginAsync(cancellationToken);
-                SizeList = new List<int>(_list133.Count);
-                for(int _i134 = 0; _i134 < _list133.Count; ++_i134)
+                TList _list155 = await iprot.ReadListBeginAsync(cancellationToken);
+                SizeList = new List<int>(_list155.Count);
+                for(int _i156 = 0; _i156 < _list155.Count; ++_i156)
                 {
-                  int _elem135;
-                  _elem135 = await iprot.ReadI32Async(cancellationToken);
-                  SizeList.Add(_elem135);
+                  int _elem157;
+                  _elem157 = await iprot.ReadI32Async(cancellationToken);
+                  SizeList.Add(_elem157);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -339,9 +375,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, PrefixPaths.Count), cancellationToken);
-          foreach (string _iter136 in PrefixPaths)
+          foreach (string _iter158 in PrefixPaths)
           {
-            await oprot.WriteStringAsync(_iter136, cancellationToken);
+            await oprot.WriteStringAsync(_iter158, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -355,13 +391,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, MeasurementsList.Count), cancellationToken);
-          foreach (List<string> _iter137 in MeasurementsList)
+          foreach (List<string> _iter159 in MeasurementsList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.String, _iter137.Count), cancellationToken);
-              foreach (string _iter138 in _iter137)
+              await oprot.WriteListBeginAsync(new TList(TType.String, _iter159.Count), cancellationToken);
+              foreach (string _iter160 in _iter159)
               {
-                await oprot.WriteStringAsync(_iter138, cancellationToken);
+                await oprot.WriteStringAsync(_iter160, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -378,9 +414,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ValuesList.Count), cancellationToken);
-          foreach (byte[] _iter139 in ValuesList)
+          foreach (byte[] _iter161 in ValuesList)
           {
-            await oprot.WriteBinaryAsync(_iter139, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter161, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -394,9 +430,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, TimestampsList.Count), cancellationToken);
-          foreach (byte[] _iter140 in TimestampsList)
+          foreach (byte[] _iter162 in TimestampsList)
           {
-            await oprot.WriteBinaryAsync(_iter140, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter162, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -410,13 +446,13 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.List, TypesList.Count), cancellationToken);
-          foreach (List<int> _iter141 in TypesList)
+          foreach (List<int> _iter163 in TypesList)
           {
             {
-              await oprot.WriteListBeginAsync(new TList(TType.I32, _iter141.Count), cancellationToken);
-              foreach (int _iter142 in _iter141)
+              await oprot.WriteListBeginAsync(new TList(TType.I32, _iter163.Count), cancellationToken);
+              foreach (int _iter164 in _iter163)
               {
-                await oprot.WriteI32Async(_iter142, cancellationToken);
+                await oprot.WriteI32Async(_iter164, cancellationToken);
               }
               await oprot.WriteListEndAsync(cancellationToken);
             }
@@ -433,9 +469,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I32, SizeList.Count), cancellationToken);
-          foreach (int _iter143 in SizeList)
+          foreach (int _iter165 in SizeList)
           {
-            await oprot.WriteI32Async(_iter143, cancellationToken);
+            await oprot.WriteI32Async(_iter165, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSLastDataQueryReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSLastDataQueryReq.cs
index c125b27..685a95f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSLastDataQueryReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSLastDataQueryReq.cs
@@ -133,6 +133,44 @@
     this.StatementId = statementId;
   }
 
+  public TSLastDataQueryReq DeepCopy()
+  {
+    var tmp324 = new TSLastDataQueryReq();
+    tmp324.SessionId = this.SessionId;
+    if((Paths != null))
+    {
+      tmp324.Paths = this.Paths.DeepCopy();
+    }
+    if(__isset.fetchSize)
+    {
+      tmp324.FetchSize = this.FetchSize;
+    }
+    tmp324.__isset.fetchSize = this.__isset.fetchSize;
+    tmp324.Time = this.Time;
+    tmp324.StatementId = this.StatementId;
+    if(__isset.enableRedirectQuery)
+    {
+      tmp324.EnableRedirectQuery = this.EnableRedirectQuery;
+    }
+    tmp324.__isset.enableRedirectQuery = this.__isset.enableRedirectQuery;
+    if(__isset.jdbcQuery)
+    {
+      tmp324.JdbcQuery = this.JdbcQuery;
+    }
+    tmp324.__isset.jdbcQuery = this.__isset.jdbcQuery;
+    if(__isset.timeout)
+    {
+      tmp324.Timeout = this.Timeout;
+    }
+    tmp324.__isset.timeout = this.__isset.timeout;
+    if(__isset.legalPathNodes)
+    {
+      tmp324.LegalPathNodes = this.LegalPathNodes;
+    }
+    tmp324.__isset.legalPathNodes = this.__isset.legalPathNodes;
+    return tmp324;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -169,13 +207,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list294 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list294.Count);
-                for(int _i295 = 0; _i295 < _list294.Count; ++_i295)
+                TList _list325 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list325.Count);
+                for(int _i326 = 0; _i326 < _list325.Count; ++_i326)
                 {
-                  string _elem296;
-                  _elem296 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem296);
+                  string _elem327;
+                  _elem327 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem327);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -312,9 +350,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter297 in Paths)
+          foreach (string _iter328 in Paths)
           {
-            await oprot.WriteStringAsync(_iter297, cancellationToken);
+            await oprot.WriteStringAsync(_iter328, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionReq.cs
index ba022ff..1fa5440 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionReq.cs
@@ -90,6 +90,31 @@
     this.Username = username;
   }
 
+  public TSOpenSessionReq DeepCopy()
+  {
+    var tmp64 = new TSOpenSessionReq();
+    tmp64.Client_protocol = this.Client_protocol;
+    if((ZoneId != null))
+    {
+      tmp64.ZoneId = this.ZoneId;
+    }
+    if((Username != null))
+    {
+      tmp64.Username = this.Username;
+    }
+    if((Password != null) && __isset.password)
+    {
+      tmp64.Password = this.Password;
+    }
+    tmp64.__isset.password = this.__isset.password;
+    if((Configuration != null) && __isset.configuration)
+    {
+      tmp64.Configuration = this.Configuration.DeepCopy();
+    }
+    tmp64.__isset.configuration = this.__isset.configuration;
+    return tmp64;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -157,15 +182,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map59 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Configuration = new Dictionary<string, string>(_map59.Count);
-                for(int _i60 = 0; _i60 < _map59.Count; ++_i60)
+                TMap _map65 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Configuration = new Dictionary<string, string>(_map65.Count);
+                for(int _i66 = 0; _i66 < _map65.Count; ++_i66)
                 {
-                  string _key61;
-                  string _val62;
-                  _key61 = await iprot.ReadStringAsync(cancellationToken);
-                  _val62 = await iprot.ReadStringAsync(cancellationToken);
-                  Configuration[_key61] = _val62;
+                  string _key67;
+                  string _val68;
+                  _key67 = await iprot.ReadStringAsync(cancellationToken);
+                  _val68 = await iprot.ReadStringAsync(cancellationToken);
+                  Configuration[_key67] = _val68;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -252,10 +277,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Configuration.Count), cancellationToken);
-          foreach (string _iter63 in Configuration.Keys)
+          foreach (string _iter69 in Configuration.Keys)
           {
-            await oprot.WriteStringAsync(_iter63, cancellationToken);
-            await oprot.WriteStringAsync(Configuration[_iter63], cancellationToken);
+            await oprot.WriteStringAsync(_iter69, cancellationToken);
+            await oprot.WriteStringAsync(Configuration[_iter69], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionResp.cs
index 23db995..72e59bf 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSOpenSessionResp.cs
@@ -87,6 +87,27 @@
     this.ServerProtocolVersion = serverProtocolVersion;
   }
 
+  public TSOpenSessionResp DeepCopy()
+  {
+    var tmp57 = new TSOpenSessionResp();
+    if((Status != null))
+    {
+      tmp57.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    tmp57.ServerProtocolVersion = this.ServerProtocolVersion;
+    if(__isset.sessionId)
+    {
+      tmp57.SessionId = this.SessionId;
+    }
+    tmp57.__isset.sessionId = this.__isset.sessionId;
+    if((Configuration != null) && __isset.configuration)
+    {
+      tmp57.Configuration = this.Configuration.DeepCopy();
+    }
+    tmp57.__isset.configuration = this.__isset.configuration;
+    return tmp57;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -143,15 +164,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map53 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Configuration = new Dictionary<string, string>(_map53.Count);
-                for(int _i54 = 0; _i54 < _map53.Count; ++_i54)
+                TMap _map58 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Configuration = new Dictionary<string, string>(_map58.Count);
+                for(int _i59 = 0; _i59 < _map58.Count; ++_i59)
                 {
-                  string _key55;
-                  string _val56;
-                  _key55 = await iprot.ReadStringAsync(cancellationToken);
-                  _val56 = await iprot.ReadStringAsync(cancellationToken);
-                  Configuration[_key55] = _val56;
+                  string _key60;
+                  string _val61;
+                  _key60 = await iprot.ReadStringAsync(cancellationToken);
+                  _val61 = await iprot.ReadStringAsync(cancellationToken);
+                  Configuration[_key60] = _val61;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -225,10 +246,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Configuration.Count), cancellationToken);
-          foreach (string _iter57 in Configuration.Keys)
+          foreach (string _iter62 in Configuration.Keys)
           {
-            await oprot.WriteStringAsync(_iter57, cancellationToken);
-            await oprot.WriteStringAsync(Configuration[_iter57], cancellationToken);
+            await oprot.WriteStringAsync(_iter62, cancellationToken);
+            await oprot.WriteStringAsync(Configuration[_iter62], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSPruneSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSPruneSchemaTemplateReq.cs
index d377c88..087a3d5 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSPruneSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSPruneSchemaTemplateReq.cs
@@ -49,6 +49,21 @@
     this.Path = path;
   }
 
+  public TSPruneSchemaTemplateReq DeepCopy()
+  {
+    var tmp425 = new TSPruneSchemaTemplateReq();
+    tmp425.SessionId = this.SessionId;
+    if((Name != null))
+    {
+      tmp425.Name = this.Name;
+    }
+    if((Path != null))
+    {
+      tmp425.Path = this.Path;
+    }
+    return tmp425;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSQueryDataSet.cs b/src/Apache.IoTDB/Rpc/Generated/TSQueryDataSet.cs
index 4927f17..8606cd1 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSQueryDataSet.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSQueryDataSet.cs
@@ -49,6 +49,24 @@
     this.BitmapList = bitmapList;
   }
 
+  public TSQueryDataSet DeepCopy()
+  {
+    var tmp0 = new TSQueryDataSet();
+    if((Time != null))
+    {
+      tmp0.Time = this.Time.ToArray();
+    }
+    if((ValueList != null))
+    {
+      tmp0.ValueList = this.ValueList.DeepCopy();
+    }
+    if((BitmapList != null))
+    {
+      tmp0.BitmapList = this.BitmapList.DeepCopy();
+    }
+    return tmp0;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -84,13 +102,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list0 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValueList = new List<byte[]>(_list0.Count);
-                for(int _i1 = 0; _i1 < _list0.Count; ++_i1)
+                TList _list1 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValueList = new List<byte[]>(_list1.Count);
+                for(int _i2 = 0; _i2 < _list1.Count; ++_i2)
                 {
-                  byte[] _elem2;
-                  _elem2 = await iprot.ReadBinaryAsync(cancellationToken);
-                  ValueList.Add(_elem2);
+                  byte[] _elem3;
+                  _elem3 = await iprot.ReadBinaryAsync(cancellationToken);
+                  ValueList.Add(_elem3);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -105,13 +123,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list3 = await iprot.ReadListBeginAsync(cancellationToken);
-                BitmapList = new List<byte[]>(_list3.Count);
-                for(int _i4 = 0; _i4 < _list3.Count; ++_i4)
+                TList _list4 = await iprot.ReadListBeginAsync(cancellationToken);
+                BitmapList = new List<byte[]>(_list4.Count);
+                for(int _i5 = 0; _i5 < _list4.Count; ++_i5)
                 {
-                  byte[] _elem5;
-                  _elem5 = await iprot.ReadBinaryAsync(cancellationToken);
-                  BitmapList.Add(_elem5);
+                  byte[] _elem6;
+                  _elem6 = await iprot.ReadBinaryAsync(cancellationToken);
+                  BitmapList.Add(_elem6);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -175,9 +193,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ValueList.Count), cancellationToken);
-          foreach (byte[] _iter6 in ValueList)
+          foreach (byte[] _iter7 in ValueList)
           {
-            await oprot.WriteBinaryAsync(_iter6, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter7, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -191,9 +209,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, BitmapList.Count), cancellationToken);
-          foreach (byte[] _iter7 in BitmapList)
+          foreach (byte[] _iter8 in BitmapList)
           {
-            await oprot.WriteBinaryAsync(_iter7, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter8, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSQueryNonAlignDataSet.cs b/src/Apache.IoTDB/Rpc/Generated/TSQueryNonAlignDataSet.cs
index 73fac7c..f1b7e58 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSQueryNonAlignDataSet.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSQueryNonAlignDataSet.cs
@@ -46,6 +46,20 @@
     this.ValueList = valueList;
   }
 
+  public TSQueryNonAlignDataSet DeepCopy()
+  {
+    var tmp10 = new TSQueryNonAlignDataSet();
+    if((TimeList != null))
+    {
+      tmp10.TimeList = this.TimeList.DeepCopy();
+    }
+    if((ValueList != null))
+    {
+      tmp10.ValueList = this.ValueList.DeepCopy();
+    }
+    return tmp10;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -69,13 +83,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list9 = await iprot.ReadListBeginAsync(cancellationToken);
-                TimeList = new List<byte[]>(_list9.Count);
-                for(int _i10 = 0; _i10 < _list9.Count; ++_i10)
+                TList _list11 = await iprot.ReadListBeginAsync(cancellationToken);
+                TimeList = new List<byte[]>(_list11.Count);
+                for(int _i12 = 0; _i12 < _list11.Count; ++_i12)
                 {
-                  byte[] _elem11;
-                  _elem11 = await iprot.ReadBinaryAsync(cancellationToken);
-                  TimeList.Add(_elem11);
+                  byte[] _elem13;
+                  _elem13 = await iprot.ReadBinaryAsync(cancellationToken);
+                  TimeList.Add(_elem13);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -90,13 +104,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list12 = await iprot.ReadListBeginAsync(cancellationToken);
-                ValueList = new List<byte[]>(_list12.Count);
-                for(int _i13 = 0; _i13 < _list12.Count; ++_i13)
+                TList _list14 = await iprot.ReadListBeginAsync(cancellationToken);
+                ValueList = new List<byte[]>(_list14.Count);
+                for(int _i15 = 0; _i15 < _list14.Count; ++_i15)
                 {
-                  byte[] _elem14;
-                  _elem14 = await iprot.ReadBinaryAsync(cancellationToken);
-                  ValueList.Add(_elem14);
+                  byte[] _elem16;
+                  _elem16 = await iprot.ReadBinaryAsync(cancellationToken);
+                  ValueList.Add(_elem16);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -147,9 +161,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, TimeList.Count), cancellationToken);
-          foreach (byte[] _iter15 in TimeList)
+          foreach (byte[] _iter17 in TimeList)
           {
-            await oprot.WriteBinaryAsync(_iter15, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter17, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -163,9 +177,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ValueList.Count), cancellationToken);
-          foreach (byte[] _iter16 in ValueList)
+          foreach (byte[] _iter18 in ValueList)
           {
-            await oprot.WriteBinaryAsync(_iter16, cancellationToken);
+            await oprot.WriteBinaryAsync(_iter18, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateReq.cs
index 5073c0e..51b6d40 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateReq.cs
@@ -70,6 +70,23 @@
     this.QueryType = queryType;
   }
 
+  public TSQueryTemplateReq DeepCopy()
+  {
+    var tmp427 = new TSQueryTemplateReq();
+    tmp427.SessionId = this.SessionId;
+    if((Name != null))
+    {
+      tmp427.Name = this.Name;
+    }
+    tmp427.QueryType = this.QueryType;
+    if((Measurement != null) && __isset.measurement)
+    {
+      tmp427.Measurement = this.Measurement;
+    }
+    tmp427.__isset.measurement = this.__isset.measurement;
+    return tmp427;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateResp.cs b/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateResp.cs
index e289bc7..6372222 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSQueryTemplateResp.cs
@@ -97,6 +97,32 @@
     this.QueryType = queryType;
   }
 
+  public TSQueryTemplateResp DeepCopy()
+  {
+    var tmp429 = new TSQueryTemplateResp();
+    if((Status != null))
+    {
+      tmp429.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    tmp429.QueryType = this.QueryType;
+    if(__isset.result)
+    {
+      tmp429.Result = this.Result;
+    }
+    tmp429.__isset.result = this.__isset.result;
+    if(__isset.count)
+    {
+      tmp429.Count = this.Count;
+    }
+    tmp429.__isset.count = this.__isset.count;
+    if((Measurements != null) && __isset.measurements)
+    {
+      tmp429.Measurements = this.Measurements.DeepCopy();
+    }
+    tmp429.__isset.measurements = this.__isset.measurements;
+    return tmp429;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -163,13 +189,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list388 = await iprot.ReadListBeginAsync(cancellationToken);
-                Measurements = new List<string>(_list388.Count);
-                for(int _i389 = 0; _i389 < _list388.Count; ++_i389)
+                TList _list430 = await iprot.ReadListBeginAsync(cancellationToken);
+                Measurements = new List<string>(_list430.Count);
+                for(int _i431 = 0; _i431 < _list430.Count; ++_i431)
                 {
-                  string _elem390;
-                  _elem390 = await iprot.ReadStringAsync(cancellationToken);
-                  Measurements.Add(_elem390);
+                  string _elem432;
+                  _elem432 = await iprot.ReadStringAsync(cancellationToken);
+                  Measurements.Add(_elem432);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -252,9 +278,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Measurements.Count), cancellationToken);
-          foreach (string _iter391 in Measurements)
+          foreach (string _iter433 in Measurements)
           {
-            await oprot.WriteStringAsync(_iter391, cancellationToken);
+            await oprot.WriteStringAsync(_iter433, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSRawDataQueryReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSRawDataQueryReq.cs
index 85dc4ae..c621f21 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSRawDataQueryReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSRawDataQueryReq.cs
@@ -136,6 +136,45 @@
     this.StatementId = statementId;
   }
 
+  public TSRawDataQueryReq DeepCopy()
+  {
+    var tmp318 = new TSRawDataQueryReq();
+    tmp318.SessionId = this.SessionId;
+    if((Paths != null))
+    {
+      tmp318.Paths = this.Paths.DeepCopy();
+    }
+    if(__isset.fetchSize)
+    {
+      tmp318.FetchSize = this.FetchSize;
+    }
+    tmp318.__isset.fetchSize = this.__isset.fetchSize;
+    tmp318.StartTime = this.StartTime;
+    tmp318.EndTime = this.EndTime;
+    tmp318.StatementId = this.StatementId;
+    if(__isset.enableRedirectQuery)
+    {
+      tmp318.EnableRedirectQuery = this.EnableRedirectQuery;
+    }
+    tmp318.__isset.enableRedirectQuery = this.__isset.enableRedirectQuery;
+    if(__isset.jdbcQuery)
+    {
+      tmp318.JdbcQuery = this.JdbcQuery;
+    }
+    tmp318.__isset.jdbcQuery = this.__isset.jdbcQuery;
+    if(__isset.timeout)
+    {
+      tmp318.Timeout = this.Timeout;
+    }
+    tmp318.__isset.timeout = this.__isset.timeout;
+    if(__isset.legalPathNodes)
+    {
+      tmp318.LegalPathNodes = this.LegalPathNodes;
+    }
+    tmp318.__isset.legalPathNodes = this.__isset.legalPathNodes;
+    return tmp318;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -173,13 +212,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list289 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list289.Count);
-                for(int _i290 = 0; _i290 < _list289.Count; ++_i290)
+                TList _list319 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list319.Count);
+                for(int _i320 = 0; _i320 < _list319.Count; ++_i320)
                 {
-                  string _elem291;
-                  _elem291 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem291);
+                  string _elem321;
+                  _elem321 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem321);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -331,9 +370,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter292 in Paths)
+          foreach (string _iter322 in Paths)
           {
-            await oprot.WriteStringAsync(_iter292, cancellationToken);
+            await oprot.WriteStringAsync(_iter322, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSSetSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSSetSchemaTemplateReq.cs
index 7d7e213..930d22b 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSSetSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSSetSchemaTemplateReq.cs
@@ -49,6 +49,21 @@
     this.PrefixPath = prefixPath;
   }
 
+  public TSSetSchemaTemplateReq DeepCopy()
+  {
+    var tmp403 = new TSSetSchemaTemplateReq();
+    tmp403.SessionId = this.SessionId;
+    if((TemplateName != null))
+    {
+      tmp403.TemplateName = this.TemplateName;
+    }
+    if((PrefixPath != null))
+    {
+      tmp403.PrefixPath = this.PrefixPath;
+    }
+    return tmp403;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSSetTimeZoneReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSSetTimeZoneReq.cs
index f9f2d84..a91c322 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSSetTimeZoneReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSSetTimeZoneReq.cs
@@ -46,6 +46,17 @@
     this.TimeZone = timeZone;
   }
 
+  public TSSetTimeZoneReq DeepCopy()
+  {
+    var tmp105 = new TSSetTimeZoneReq();
+    tmp105.SessionId = this.SessionId;
+    if((TimeZone != null))
+    {
+      tmp105.TimeZone = this.TimeZone;
+    }
+    return tmp105;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSStatus.cs b/src/Apache.IoTDB/Rpc/Generated/TSStatus.cs
index 3575330..0e738ef 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSStatus.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSStatus.cs
@@ -109,6 +109,33 @@
     this.Code = code;
   }
 
+  public TSStatus DeepCopy()
+  {
+    var tmp2 = new TSStatus();
+    tmp2.Code = this.Code;
+    if((Message != null) && __isset.message)
+    {
+      tmp2.Message = this.Message;
+    }
+    tmp2.__isset.message = this.__isset.message;
+    if((SubStatus != null) && __isset.subStatus)
+    {
+      tmp2.SubStatus = this.SubStatus.DeepCopy();
+    }
+    tmp2.__isset.subStatus = this.__isset.subStatus;
+    if((RedirectNode != null) && __isset.redirectNode)
+    {
+      tmp2.RedirectNode = (TEndPoint)this.RedirectNode.DeepCopy();
+    }
+    tmp2.__isset.redirectNode = this.__isset.redirectNode;
+    if(__isset.needRetry)
+    {
+      tmp2.NeedRetry = this.NeedRetry;
+    }
+    tmp2.__isset.needRetry = this.__isset.needRetry;
+    return tmp2;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -152,14 +179,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list1 = await iprot.ReadListBeginAsync(cancellationToken);
-                SubStatus = new List<TSStatus>(_list1.Count);
-                for(int _i2 = 0; _i2 < _list1.Count; ++_i2)
+                TList _list3 = await iprot.ReadListBeginAsync(cancellationToken);
+                SubStatus = new List<TSStatus>(_list3.Count);
+                for(int _i4 = 0; _i4 < _list3.Count; ++_i4)
                 {
-                  TSStatus _elem3;
-                  _elem3 = new TSStatus();
-                  await _elem3.ReadAsync(iprot, cancellationToken);
-                  SubStatus.Add(_elem3);
+                  TSStatus _elem5;
+                  _elem5 = new TSStatus();
+                  await _elem5.ReadAsync(iprot, cancellationToken);
+                  SubStatus.Add(_elem5);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -241,9 +268,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, SubStatus.Count), cancellationToken);
-          foreach (TSStatus _iter4 in SubStatus)
+          foreach (TSStatus _iter6 in SubStatus)
           {
-            await _iter4.WriteAsync(oprot, cancellationToken);
+            await _iter6.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSTracingInfo.cs b/src/Apache.IoTDB/Rpc/Generated/TSTracingInfo.cs
index a5029a9..73d55dd 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSTracingInfo.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSTracingInfo.cs
@@ -187,6 +187,65 @@
     this.ElapsedTimeList = elapsedTimeList;
   }
 
+  public TSTracingInfo DeepCopy()
+  {
+    var tmp20 = new TSTracingInfo();
+    if((ActivityList != null))
+    {
+      tmp20.ActivityList = this.ActivityList.DeepCopy();
+    }
+    if((ElapsedTimeList != null))
+    {
+      tmp20.ElapsedTimeList = this.ElapsedTimeList.DeepCopy();
+    }
+    if(__isset.seriesPathNum)
+    {
+      tmp20.SeriesPathNum = this.SeriesPathNum;
+    }
+    tmp20.__isset.seriesPathNum = this.__isset.seriesPathNum;
+    if(__isset.seqFileNum)
+    {
+      tmp20.SeqFileNum = this.SeqFileNum;
+    }
+    tmp20.__isset.seqFileNum = this.__isset.seqFileNum;
+    if(__isset.unSeqFileNum)
+    {
+      tmp20.UnSeqFileNum = this.UnSeqFileNum;
+    }
+    tmp20.__isset.unSeqFileNum = this.__isset.unSeqFileNum;
+    if(__isset.sequenceChunkNum)
+    {
+      tmp20.SequenceChunkNum = this.SequenceChunkNum;
+    }
+    tmp20.__isset.sequenceChunkNum = this.__isset.sequenceChunkNum;
+    if(__isset.sequenceChunkPointNum)
+    {
+      tmp20.SequenceChunkPointNum = this.SequenceChunkPointNum;
+    }
+    tmp20.__isset.sequenceChunkPointNum = this.__isset.sequenceChunkPointNum;
+    if(__isset.unsequenceChunkNum)
+    {
+      tmp20.UnsequenceChunkNum = this.UnsequenceChunkNum;
+    }
+    tmp20.__isset.unsequenceChunkNum = this.__isset.unsequenceChunkNum;
+    if(__isset.unsequenceChunkPointNum)
+    {
+      tmp20.UnsequenceChunkPointNum = this.UnsequenceChunkPointNum;
+    }
+    tmp20.__isset.unsequenceChunkPointNum = this.__isset.unsequenceChunkPointNum;
+    if(__isset.totalPageNum)
+    {
+      tmp20.TotalPageNum = this.TotalPageNum;
+    }
+    tmp20.__isset.totalPageNum = this.__isset.totalPageNum;
+    if(__isset.overlappedPageNum)
+    {
+      tmp20.OverlappedPageNum = this.OverlappedPageNum;
+    }
+    tmp20.__isset.overlappedPageNum = this.__isset.overlappedPageNum;
+    return tmp20;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -210,13 +269,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list18 = await iprot.ReadListBeginAsync(cancellationToken);
-                ActivityList = new List<string>(_list18.Count);
-                for(int _i19 = 0; _i19 < _list18.Count; ++_i19)
+                TList _list21 = await iprot.ReadListBeginAsync(cancellationToken);
+                ActivityList = new List<string>(_list21.Count);
+                for(int _i22 = 0; _i22 < _list21.Count; ++_i22)
                 {
-                  string _elem20;
-                  _elem20 = await iprot.ReadStringAsync(cancellationToken);
-                  ActivityList.Add(_elem20);
+                  string _elem23;
+                  _elem23 = await iprot.ReadStringAsync(cancellationToken);
+                  ActivityList.Add(_elem23);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -231,13 +290,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list21 = await iprot.ReadListBeginAsync(cancellationToken);
-                ElapsedTimeList = new List<long>(_list21.Count);
-                for(int _i22 = 0; _i22 < _list21.Count; ++_i22)
+                TList _list24 = await iprot.ReadListBeginAsync(cancellationToken);
+                ElapsedTimeList = new List<long>(_list24.Count);
+                for(int _i25 = 0; _i25 < _list24.Count; ++_i25)
                 {
-                  long _elem23;
-                  _elem23 = await iprot.ReadI64Async(cancellationToken);
-                  ElapsedTimeList.Add(_elem23);
+                  long _elem26;
+                  _elem26 = await iprot.ReadI64Async(cancellationToken);
+                  ElapsedTimeList.Add(_elem26);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -378,9 +437,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, ActivityList.Count), cancellationToken);
-          foreach (string _iter24 in ActivityList)
+          foreach (string _iter27 in ActivityList)
           {
-            await oprot.WriteStringAsync(_iter24, cancellationToken);
+            await oprot.WriteStringAsync(_iter27, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
@@ -394,9 +453,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.I64, ElapsedTimeList.Count), cancellationToken);
-          foreach (long _iter25 in ElapsedTimeList)
+          foreach (long _iter28 in ElapsedTimeList)
           {
-            await oprot.WriteI64Async(_iter25, cancellationToken);
+            await oprot.WriteI64Async(_iter28, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSUnsetSchemaTemplateReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSUnsetSchemaTemplateReq.cs
index 7aa04f4..e400e8c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSUnsetSchemaTemplateReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSUnsetSchemaTemplateReq.cs
@@ -49,6 +49,21 @@
     this.TemplateName = templateName;
   }
 
+  public TSUnsetSchemaTemplateReq DeepCopy()
+  {
+    var tmp435 = new TSUnsetSchemaTemplateReq();
+    tmp435.SessionId = this.SessionId;
+    if((PrefixPath != null))
+    {
+      tmp435.PrefixPath = this.PrefixPath;
+    }
+    if((TemplateName != null))
+    {
+      tmp435.TemplateName = this.TemplateName;
+    }
+    return tmp435;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSchemaNode.cs b/src/Apache.IoTDB/Rpc/Generated/TSchemaNode.cs
index 1cc55f7..79e0feb 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSchemaNode.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSchemaNode.cs
@@ -46,6 +46,17 @@
     this.NodeType = nodeType;
   }
 
+  public TSchemaNode DeepCopy()
+  {
+    var tmp44 = new TSchemaNode();
+    if((NodeName != null))
+    {
+      tmp44.NodeName = this.NodeName;
+    }
+    tmp44.NodeType = this.NodeType;
+    return tmp44;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSender.cs b/src/Apache.IoTDB/Rpc/Generated/TSender.cs
index 9cadb9b..07fdcca 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSender.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSender.cs
@@ -72,6 +72,22 @@
   {
   }
 
+  public TSender DeepCopy()
+  {
+    var tmp98 = new TSender();
+    if((DataNodeLocation != null) && __isset.dataNodeLocation)
+    {
+      tmp98.DataNodeLocation = (TDataNodeLocation)this.DataNodeLocation.DeepCopy();
+    }
+    tmp98.__isset.dataNodeLocation = this.__isset.dataNodeLocation;
+    if((ConfigNodeLocation != null) && __isset.configNodeLocation)
+    {
+      tmp98.ConfigNodeLocation = (TConfigNodeLocation)this.ConfigNodeLocation.DeepCopy();
+    }
+    tmp98.__isset.configNodeLocation = this.__isset.configNodeLocation;
+    return tmp98;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -188,16 +204,16 @@
   public override string ToString()
   {
     var sb = new StringBuilder("TSender(");
-    int tmp67 = 0;
+    int tmp99 = 0;
     if((DataNodeLocation != null) && __isset.dataNodeLocation)
     {
-      if(0 < tmp67++) { sb.Append(", "); }
+      if(0 < tmp99++) { sb.Append(", "); }
       sb.Append("DataNodeLocation: ");
       DataNodeLocation.ToString(sb);
     }
     if((ConfigNodeLocation != null) && __isset.configNodeLocation)
     {
-      if(0 < tmp67++) { sb.Append(", "); }
+      if(0 < tmp99++) { sb.Append(", "); }
       sb.Append("ConfigNodeLocation: ");
       ConfigNodeLocation.ToString(sb);
     }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSeriesPartitionSlot.cs b/src/Apache.IoTDB/Rpc/Generated/TSeriesPartitionSlot.cs
index 3f14d2b..81bff8c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSeriesPartitionSlot.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSeriesPartitionSlot.cs
@@ -43,6 +43,13 @@
     this.SlotId = slotId;
   }
 
+  public TSeriesPartitionSlot DeepCopy()
+  {
+    var tmp10 = new TSeriesPartitionSlot();
+    tmp10.SlotId = this.SlotId;
+    return tmp10;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TServiceProvider.cs b/src/Apache.IoTDB/Rpc/Generated/TServiceProvider.cs
index 3480593..f50ceea 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TServiceProvider.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TServiceProvider.cs
@@ -50,6 +50,17 @@
     this.ServiceType = serviceType;
   }
 
+  public TServiceProvider DeepCopy()
+  {
+    var tmp96 = new TServiceProvider();
+    if((EndPoint != null))
+    {
+      tmp96.EndPoint = (TEndPoint)this.EndPoint.DeepCopy();
+    }
+    tmp96.ServiceType = this.ServiceType;
+    return tmp96;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSetConfigurationReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSetConfigurationReq.cs
index b2d316a..328dd57 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSetConfigurationReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSetConfigurationReq.cs
@@ -46,6 +46,17 @@
     this.NodeId = nodeId;
   }
 
+  public TSetConfigurationReq DeepCopy()
+  {
+    var tmp46 = new TSetConfigurationReq();
+    if((Configs != null))
+    {
+      tmp46.Configs = this.Configs.DeepCopy();
+    }
+    tmp46.NodeId = this.NodeId;
+    return tmp46;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -69,15 +80,15 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map29 = await iprot.ReadMapBeginAsync(cancellationToken);
-                Configs = new Dictionary<string, string>(_map29.Count);
-                for(int _i30 = 0; _i30 < _map29.Count; ++_i30)
+                TMap _map47 = await iprot.ReadMapBeginAsync(cancellationToken);
+                Configs = new Dictionary<string, string>(_map47.Count);
+                for(int _i48 = 0; _i48 < _map47.Count; ++_i48)
                 {
-                  string _key31;
-                  string _val32;
-                  _key31 = await iprot.ReadStringAsync(cancellationToken);
-                  _val32 = await iprot.ReadStringAsync(cancellationToken);
-                  Configs[_key31] = _val32;
+                  string _key49;
+                  string _val50;
+                  _key49 = await iprot.ReadStringAsync(cancellationToken);
+                  _val50 = await iprot.ReadStringAsync(cancellationToken);
+                  Configs[_key49] = _val50;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -139,10 +150,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.String, TType.String, Configs.Count), cancellationToken);
-          foreach (string _iter33 in Configs.Keys)
+          foreach (string _iter51 in Configs.Keys)
           {
-            await oprot.WriteStringAsync(_iter33, cancellationToken);
-            await oprot.WriteStringAsync(Configs[_iter33], cancellationToken);
+            await oprot.WriteStringAsync(_iter51, cancellationToken);
+            await oprot.WriteStringAsync(Configs[_iter51], cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSetSpaceQuotaReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSetSpaceQuotaReq.cs
index 7bc7f83..bd01682 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSetSpaceQuotaReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSetSpaceQuotaReq.cs
@@ -46,6 +46,20 @@
     this.SpaceLimit = spaceLimit;
   }
 
+  public TSetSpaceQuotaReq DeepCopy()
+  {
+    var tmp84 = new TSetSpaceQuotaReq();
+    if((Database != null))
+    {
+      tmp84.Database = this.Database.DeepCopy();
+    }
+    if((SpaceLimit != null))
+    {
+      tmp84.SpaceLimit = (TSpaceQuota)this.SpaceLimit.DeepCopy();
+    }
+    return tmp84;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -69,13 +83,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list59 = await iprot.ReadListBeginAsync(cancellationToken);
-                Database = new List<string>(_list59.Count);
-                for(int _i60 = 0; _i60 < _list59.Count; ++_i60)
+                TList _list85 = await iprot.ReadListBeginAsync(cancellationToken);
+                Database = new List<string>(_list85.Count);
+                for(int _i86 = 0; _i86 < _list85.Count; ++_i86)
                 {
-                  string _elem61;
-                  _elem61 = await iprot.ReadStringAsync(cancellationToken);
-                  Database.Add(_elem61);
+                  string _elem87;
+                  _elem87 = await iprot.ReadStringAsync(cancellationToken);
+                  Database.Add(_elem87);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -138,9 +152,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Database.Count), cancellationToken);
-          foreach (string _iter62 in Database)
+          foreach (string _iter88 in Database)
           {
-            await oprot.WriteStringAsync(_iter62, cancellationToken);
+            await oprot.WriteStringAsync(_iter88, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSetTTLReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSetTTLReq.cs
index c256828..c482a2f 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSetTTLReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSetTTLReq.cs
@@ -49,6 +49,18 @@
     this.IsDataBase = isDataBase;
   }
 
+  public TSetTTLReq DeepCopy()
+  {
+    var tmp53 = new TSetTTLReq();
+    if((PathPattern != null))
+    {
+      tmp53.PathPattern = this.PathPattern.DeepCopy();
+    }
+    tmp53.TTL = this.TTL;
+    tmp53.IsDataBase = this.IsDataBase;
+    return tmp53;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -73,13 +85,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list35 = await iprot.ReadListBeginAsync(cancellationToken);
-                PathPattern = new List<string>(_list35.Count);
-                for(int _i36 = 0; _i36 < _list35.Count; ++_i36)
+                TList _list54 = await iprot.ReadListBeginAsync(cancellationToken);
+                PathPattern = new List<string>(_list54.Count);
+                for(int _i55 = 0; _i55 < _list54.Count; ++_i55)
                 {
-                  string _elem37;
-                  _elem37 = await iprot.ReadStringAsync(cancellationToken);
-                  PathPattern.Add(_elem37);
+                  string _elem56;
+                  _elem56 = await iprot.ReadStringAsync(cancellationToken);
+                  PathPattern.Add(_elem56);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -156,9 +168,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, PathPattern.Count), cancellationToken);
-          foreach (string _iter38 in PathPattern)
+          foreach (string _iter57 in PathPattern)
           {
-            await oprot.WriteStringAsync(_iter38, cancellationToken);
+            await oprot.WriteStringAsync(_iter57, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSetThrottleQuotaReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSetThrottleQuotaReq.cs
index 651db17..857de3e 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSetThrottleQuotaReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSetThrottleQuotaReq.cs
@@ -46,6 +46,20 @@
     this.ThrottleQuota = throttleQuota;
   }
 
+  public TSetThrottleQuotaReq DeepCopy()
+  {
+    var tmp90 = new TSetThrottleQuotaReq();
+    if((UserName != null))
+    {
+      tmp90.UserName = this.UserName;
+    }
+    if((ThrottleQuota != null))
+    {
+      tmp90.ThrottleQuota = (TThrottleQuota)this.ThrottleQuota.DeepCopy();
+    }
+    return tmp90;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSettleReq.cs b/src/Apache.IoTDB/Rpc/Generated/TSettleReq.cs
index 786daf1..c32ea9c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSettleReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSettleReq.cs
@@ -43,6 +43,16 @@
     this.Paths = paths;
   }
 
+  public TSettleReq DeepCopy()
+  {
+    var tmp38 = new TSettleReq();
+    if((Paths != null))
+    {
+      tmp38.Paths = this.Paths.DeepCopy();
+    }
+    return tmp38;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -65,13 +75,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list23 = await iprot.ReadListBeginAsync(cancellationToken);
-                Paths = new List<string>(_list23.Count);
-                for(int _i24 = 0; _i24 < _list23.Count; ++_i24)
+                TList _list39 = await iprot.ReadListBeginAsync(cancellationToken);
+                Paths = new List<string>(_list39.Count);
+                for(int _i40 = 0; _i40 < _list39.Count; ++_i40)
                 {
-                  string _elem25;
-                  _elem25 = await iprot.ReadStringAsync(cancellationToken);
-                  Paths.Add(_elem25);
+                  string _elem41;
+                  _elem41 = await iprot.ReadStringAsync(cancellationToken);
+                  Paths.Add(_elem41);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -118,9 +128,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, Paths.Count), cancellationToken);
-          foreach (string _iter26 in Paths)
+          foreach (string _iter42 in Paths)
           {
-            await oprot.WriteStringAsync(_iter26, cancellationToken);
+            await oprot.WriteStringAsync(_iter42, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationResp.cs b/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationResp.cs
index 0fa4bb9..c8cc62c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationResp.cs
@@ -46,6 +46,20 @@
     this.Content = content;
   }
 
+  public TShowConfigurationResp DeepCopy()
+  {
+    var tmp120 = new TShowConfigurationResp();
+    if((Status != null))
+    {
+      tmp120.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((Content != null))
+    {
+      tmp120.Content = this.Content;
+    }
+    return tmp120;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationTemplateResp.cs b/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationTemplateResp.cs
index 79ab277..bb6fcb7 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationTemplateResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TShowConfigurationTemplateResp.cs
@@ -46,6 +46,20 @@
     this.Content = content;
   }
 
+  public TShowConfigurationTemplateResp DeepCopy()
+  {
+    var tmp118 = new TShowConfigurationTemplateResp();
+    if((Status != null))
+    {
+      tmp118.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((Content != null))
+    {
+      tmp118.Content = this.Content;
+    }
+    return tmp118;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TShowTTLReq.cs b/src/Apache.IoTDB/Rpc/Generated/TShowTTLReq.cs
index eacfb85..ee655ac 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TShowTTLReq.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TShowTTLReq.cs
@@ -43,6 +43,16 @@
     this.PathPattern = pathPattern;
   }
 
+  public TShowTTLReq DeepCopy()
+  {
+    var tmp59 = new TShowTTLReq();
+    if((PathPattern != null))
+    {
+      tmp59.PathPattern = this.PathPattern.DeepCopy();
+    }
+    return tmp59;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -65,13 +75,13 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list40 = await iprot.ReadListBeginAsync(cancellationToken);
-                PathPattern = new List<string>(_list40.Count);
-                for(int _i41 = 0; _i41 < _list40.Count; ++_i41)
+                TList _list60 = await iprot.ReadListBeginAsync(cancellationToken);
+                PathPattern = new List<string>(_list60.Count);
+                for(int _i61 = 0; _i61 < _list60.Count; ++_i61)
                 {
-                  string _elem42;
-                  _elem42 = await iprot.ReadStringAsync(cancellationToken);
-                  PathPattern.Add(_elem42);
+                  string _elem62;
+                  _elem62 = await iprot.ReadStringAsync(cancellationToken);
+                  PathPattern.Add(_elem62);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -118,9 +128,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.String, PathPattern.Count), cancellationToken);
-          foreach (string _iter43 in PathPattern)
+          foreach (string _iter63 in PathPattern)
           {
-            await oprot.WriteStringAsync(_iter43, cancellationToken);
+            await oprot.WriteStringAsync(_iter63, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSpaceQuota.cs b/src/Apache.IoTDB/Rpc/Generated/TSpaceQuota.cs
index 14ca513..5ea5f21 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSpaceQuota.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSpaceQuota.cs
@@ -87,6 +87,27 @@
   {
   }
 
+  public TSpaceQuota DeepCopy()
+  {
+    var tmp73 = new TSpaceQuota();
+    if(__isset.diskSize)
+    {
+      tmp73.DiskSize = this.DiskSize;
+    }
+    tmp73.__isset.diskSize = this.__isset.diskSize;
+    if(__isset.deviceNum)
+    {
+      tmp73.DeviceNum = this.DeviceNum;
+    }
+    tmp73.__isset.deviceNum = this.__isset.deviceNum;
+    if(__isset.timeserieNum)
+    {
+      tmp73.TimeserieNum = this.TimeserieNum;
+    }
+    tmp73.__isset.timeserieNum = this.__isset.timeserieNum;
+    return tmp73;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -225,22 +246,22 @@
   public override string ToString()
   {
     var sb = new StringBuilder("TSpaceQuota(");
-    int tmp51 = 0;
+    int tmp74 = 0;
     if(__isset.diskSize)
     {
-      if(0 < tmp51++) { sb.Append(", "); }
+      if(0 < tmp74++) { sb.Append(", "); }
       sb.Append("DiskSize: ");
       DiskSize.ToString(sb);
     }
     if(__isset.deviceNum)
     {
-      if(0 < tmp51++) { sb.Append(", "); }
+      if(0 < tmp74++) { sb.Append(", "); }
       sb.Append("DeviceNum: ");
       DeviceNum.ToString(sb);
     }
     if(__isset.timeserieNum)
     {
-      if(0 < tmp51++) { sb.Append(", "); }
+      if(0 < tmp74++) { sb.Append(", "); }
       sb.Append("TimeserieNum: ");
       TimeserieNum.ToString(sb);
     }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSyncIdentityInfo.cs b/src/Apache.IoTDB/Rpc/Generated/TSyncIdentityInfo.cs
index ccf7bc5..fde1167 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSyncIdentityInfo.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSyncIdentityInfo.cs
@@ -52,6 +52,25 @@
     this.Database = database;
   }
 
+  public TSyncIdentityInfo DeepCopy()
+  {
+    var tmp445 = new TSyncIdentityInfo();
+    if((PipeName != null))
+    {
+      tmp445.PipeName = this.PipeName;
+    }
+    tmp445.CreateTime = this.CreateTime;
+    if((Version != null))
+    {
+      tmp445.Version = this.Version;
+    }
+    if((Database != null))
+    {
+      tmp445.Database = this.Database;
+    }
+    return tmp445;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TSyncTransportMetaInfo.cs b/src/Apache.IoTDB/Rpc/Generated/TSyncTransportMetaInfo.cs
index ef840cc..1482952 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TSyncTransportMetaInfo.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TSyncTransportMetaInfo.cs
@@ -46,6 +46,17 @@
     this.StartIndex = startIndex;
   }
 
+  public TSyncTransportMetaInfo DeepCopy()
+  {
+    var tmp447 = new TSyncTransportMetaInfo();
+    if((FileName != null))
+    {
+      tmp447.FileName = this.FileName;
+    }
+    tmp447.StartIndex = this.StartIndex;
+    return tmp447;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResp.cs b/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResp.cs
index 836a6a7..060a0d5 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResp.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResp.cs
@@ -46,6 +46,20 @@
     this.ResultList = resultList;
   }
 
+  public TTestConnectionResp DeepCopy()
+  {
+    var tmp102 = new TTestConnectionResp();
+    if((Status != null))
+    {
+      tmp102.Status = (TSStatus)this.Status.DeepCopy();
+    }
+    if((ResultList != null))
+    {
+      tmp102.ResultList = this.ResultList.DeepCopy();
+    }
+    return tmp102;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -81,14 +95,14 @@
             if (field.Type == TType.List)
             {
               {
-                TList _list69 = await iprot.ReadListBeginAsync(cancellationToken);
-                ResultList = new List<TTestConnectionResult>(_list69.Count);
-                for(int _i70 = 0; _i70 < _list69.Count; ++_i70)
+                TList _list103 = await iprot.ReadListBeginAsync(cancellationToken);
+                ResultList = new List<TTestConnectionResult>(_list103.Count);
+                for(int _i104 = 0; _i104 < _list103.Count; ++_i104)
                 {
-                  TTestConnectionResult _elem71;
-                  _elem71 = new TTestConnectionResult();
-                  await _elem71.ReadAsync(iprot, cancellationToken);
-                  ResultList.Add(_elem71);
+                  TTestConnectionResult _elem105;
+                  _elem105 = new TTestConnectionResult();
+                  await _elem105.ReadAsync(iprot, cancellationToken);
+                  ResultList.Add(_elem105);
                 }
                 await iprot.ReadListEndAsync(cancellationToken);
               }
@@ -148,9 +162,9 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteListBeginAsync(new TList(TType.Struct, ResultList.Count), cancellationToken);
-          foreach (TTestConnectionResult _iter72 in ResultList)
+          foreach (TTestConnectionResult _iter106 in ResultList)
           {
-            await _iter72.WriteAsync(oprot, cancellationToken);
+            await _iter106.WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteListEndAsync(cancellationToken);
         }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResult.cs b/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResult.cs
index b4117b9..7a1774c 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResult.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TTestConnectionResult.cs
@@ -70,6 +70,26 @@
     this.Success = success;
   }
 
+  public TTestConnectionResult DeepCopy()
+  {
+    var tmp100 = new TTestConnectionResult();
+    if((ServiceProvider != null))
+    {
+      tmp100.ServiceProvider = (TServiceProvider)this.ServiceProvider.DeepCopy();
+    }
+    if((Sender != null))
+    {
+      tmp100.Sender = (TSender)this.Sender.DeepCopy();
+    }
+    tmp100.Success = this.Success;
+    if((Reason != null) && __isset.reason)
+    {
+      tmp100.Reason = this.Reason;
+    }
+    tmp100.__isset.reason = this.__isset.reason;
+    return tmp100;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TThrottleQuota.cs b/src/Apache.IoTDB/Rpc/Generated/TThrottleQuota.cs
index 25794ec..8cd5b17 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TThrottleQuota.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TThrottleQuota.cs
@@ -87,6 +87,27 @@
   {
   }
 
+  public TThrottleQuota DeepCopy()
+  {
+    var tmp77 = new TThrottleQuota();
+    if((ThrottleLimit != null) && __isset.throttleLimit)
+    {
+      tmp77.ThrottleLimit = this.ThrottleLimit.DeepCopy();
+    }
+    tmp77.__isset.throttleLimit = this.__isset.throttleLimit;
+    if(__isset.memLimit)
+    {
+      tmp77.MemLimit = this.MemLimit;
+    }
+    tmp77.__isset.memLimit = this.__isset.memLimit;
+    if(__isset.cpuLimit)
+    {
+      tmp77.CpuLimit = this.CpuLimit;
+    }
+    tmp77.__isset.cpuLimit = this.__isset.cpuLimit;
+    return tmp77;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
@@ -108,16 +129,16 @@
             if (field.Type == TType.Map)
             {
               {
-                TMap _map53 = await iprot.ReadMapBeginAsync(cancellationToken);
-                ThrottleLimit = new Dictionary<ThrottleType, TTimedQuota>(_map53.Count);
-                for(int _i54 = 0; _i54 < _map53.Count; ++_i54)
+                TMap _map78 = await iprot.ReadMapBeginAsync(cancellationToken);
+                ThrottleLimit = new Dictionary<ThrottleType, TTimedQuota>(_map78.Count);
+                for(int _i79 = 0; _i79 < _map78.Count; ++_i79)
                 {
-                  ThrottleType _key55;
-                  TTimedQuota _val56;
-                  _key55 = (ThrottleType)await iprot.ReadI32Async(cancellationToken);
-                  _val56 = new TTimedQuota();
-                  await _val56.ReadAsync(iprot, cancellationToken);
-                  ThrottleLimit[_key55] = _val56;
+                  ThrottleType _key80;
+                  TTimedQuota _val81;
+                  _key80 = (ThrottleType)await iprot.ReadI32Async(cancellationToken);
+                  _val81 = new TTimedQuota();
+                  await _val81.ReadAsync(iprot, cancellationToken);
+                  ThrottleLimit[_key80] = _val81;
                 }
                 await iprot.ReadMapEndAsync(cancellationToken);
               }
@@ -179,10 +200,10 @@
         await oprot.WriteFieldBeginAsync(field, cancellationToken);
         {
           await oprot.WriteMapBeginAsync(new TMap(TType.I32, TType.Struct, ThrottleLimit.Count), cancellationToken);
-          foreach (ThrottleType _iter57 in ThrottleLimit.Keys)
+          foreach (ThrottleType _iter82 in ThrottleLimit.Keys)
           {
-            await oprot.WriteI32Async((int)_iter57, cancellationToken);
-            await ThrottleLimit[_iter57].WriteAsync(oprot, cancellationToken);
+            await oprot.WriteI32Async((int)_iter82, cancellationToken);
+            await ThrottleLimit[_iter82].WriteAsync(oprot, cancellationToken);
           }
           await oprot.WriteMapEndAsync(cancellationToken);
         }
@@ -246,22 +267,22 @@
   public override string ToString()
   {
     var sb = new StringBuilder("TThrottleQuota(");
-    int tmp58 = 0;
+    int tmp83 = 0;
     if((ThrottleLimit != null) && __isset.throttleLimit)
     {
-      if(0 < tmp58++) { sb.Append(", "); }
+      if(0 < tmp83++) { sb.Append(", "); }
       sb.Append("ThrottleLimit: ");
       ThrottleLimit.ToString(sb);
     }
     if(__isset.memLimit)
     {
-      if(0 < tmp58++) { sb.Append(", "); }
+      if(0 < tmp83++) { sb.Append(", "); }
       sb.Append("MemLimit: ");
       MemLimit.ToString(sb);
     }
     if(__isset.cpuLimit)
     {
-      if(0 < tmp58++) { sb.Append(", "); }
+      if(0 < tmp83++) { sb.Append(", "); }
       sb.Append("CpuLimit: ");
       CpuLimit.ToString(sb);
     }
diff --git a/src/Apache.IoTDB/Rpc/Generated/TTimePartitionSlot.cs b/src/Apache.IoTDB/Rpc/Generated/TTimePartitionSlot.cs
index abf1d79..7ac09f7 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TTimePartitionSlot.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TTimePartitionSlot.cs
@@ -43,6 +43,13 @@
     this.StartTime = startTime;
   }
 
+  public TTimePartitionSlot DeepCopy()
+  {
+    var tmp12 = new TTimePartitionSlot();
+    tmp12.StartTime = this.StartTime;
+    return tmp12;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TTimedQuota.cs b/src/Apache.IoTDB/Rpc/Generated/TTimedQuota.cs
index 282ac91..153ed79 100644
--- a/src/Apache.IoTDB/Rpc/Generated/TTimedQuota.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/TTimedQuota.cs
@@ -46,6 +46,14 @@
     this.SoftLimit = softLimit;
   }
 
+  public TTimedQuota DeepCopy()
+  {
+    var tmp75 = new TTimedQuota();
+    tmp75.TimeUnit = this.TimeUnit;
+    tmp75.SoftLimit = this.SoftLimit;
+    return tmp75;
+  }
+
   public async global::System.Threading.Tasks.Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken)
   {
     iprot.IncrementRecursionDepth();
diff --git a/src/Apache.IoTDB/Rpc/Generated/TrainingState.cs b/src/Apache.IoTDB/Rpc/Generated/TrainingState.cs
new file mode 100644
index 0000000..4a68d2d
--- /dev/null
+++ b/src/Apache.IoTDB/Rpc/Generated/TrainingState.cs
@@ -0,0 +1,18 @@
+/**
+ * Autogenerated by Thrift Compiler (0.14.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+#pragma warning disable IDE0079  // remove unnecessary pragmas
+#pragma warning disable IDE1006  // parts of the code use IDL spelling
+
+public enum TrainingState
+{
+  PENDING = 0,
+  RUNNING = 1,
+  FINISHED = 2,
+  FAILED = 3,
+  DROPPING = 4,
+}
diff --git a/src/Apache.IoTDB/Rpc/Generated/client.Extensions.cs b/src/Apache.IoTDB/Rpc/Generated/client.Extensions.cs
index 49c8a7e..17fda94 100644
--- a/src/Apache.IoTDB/Rpc/Generated/client.Extensions.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/client.Extensions.cs
@@ -37,6 +37,18 @@
   }
 
 
+  public static Dictionary<string, int> DeepCopy(this Dictionary<string, int> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp743 = new Dictionary<string, int>(source.Count);
+    foreach (var pair in source)
+      tmp743.Add((pair.Key != null) ? pair.Key : null, pair.Value);
+    return tmp743;
+  }
+
+
   public static bool Equals(this Dictionary<string, string> instance, object that)
   {
     if (!(that is Dictionary<string, string> other)) return false;
@@ -52,6 +64,18 @@
   }
 
 
+  public static Dictionary<string, string> DeepCopy(this Dictionary<string, string> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp744 = new Dictionary<string, string>(source.Count);
+    foreach (var pair in source)
+      tmp744.Add((pair.Key != null) ? pair.Key : null, (pair.Value != null) ? pair.Value : null);
+    return tmp744;
+  }
+
+
   public static bool Equals(this List<Dictionary<string, string>> instance, object that)
   {
     if (!(that is List<Dictionary<string, string>> other)) return false;
@@ -67,6 +91,18 @@
   }
 
 
+  public static List<Dictionary<string, string>> DeepCopy(this List<Dictionary<string, string>> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp745 = new List<Dictionary<string, string>>(source.Count);
+    foreach (var elem in source)
+      tmp745.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp745;
+  }
+
+
   public static bool Equals(this List<List<int>> instance, object that)
   {
     if (!(that is List<List<int>> other)) return false;
@@ -82,6 +118,18 @@
   }
 
 
+  public static List<List<int>> DeepCopy(this List<List<int>> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp746 = new List<List<int>>(source.Count);
+    foreach (var elem in source)
+      tmp746.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp746;
+  }
+
+
   public static bool Equals(this List<List<string>> instance, object that)
   {
     if (!(that is List<List<string>> other)) return false;
@@ -97,6 +145,18 @@
   }
 
 
+  public static List<List<string>> DeepCopy(this List<List<string>> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp747 = new List<List<string>>(source.Count);
+    foreach (var elem in source)
+      tmp747.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp747;
+  }
+
+
   public static bool Equals(this List<TAggregationType> instance, object that)
   {
     if (!(that is List<TAggregationType> other)) return false;
@@ -112,6 +172,18 @@
   }
 
 
+  public static List<TAggregationType> DeepCopy(this List<TAggregationType> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp748 = new List<TAggregationType>(source.Count);
+    foreach (var elem in source)
+      tmp748.Add(elem);
+    return tmp748;
+  }
+
+
   public static bool Equals(this List<TSConnectionInfo> instance, object that)
   {
     if (!(that is List<TSConnectionInfo> other)) return false;
@@ -127,6 +199,18 @@
   }
 
 
+  public static List<TSConnectionInfo> DeepCopy(this List<TSConnectionInfo> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp749 = new List<TSConnectionInfo>(source.Count);
+    foreach (var elem in source)
+      tmp749.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp749;
+  }
+
+
   public static bool Equals(this List<TSStatus> instance, object that)
   {
     if (!(that is List<TSStatus> other)) return false;
@@ -142,6 +226,18 @@
   }
 
 
+  public static List<TSStatus> DeepCopy(this List<TSStatus> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp750 = new List<TSStatus>(source.Count);
+    foreach (var elem in source)
+      tmp750.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp750;
+  }
+
+
   public static bool Equals(this List<byte[]> instance, object that)
   {
     if (!(that is List<byte[]> other)) return false;
@@ -157,6 +253,18 @@
   }
 
 
+  public static List<byte[]> DeepCopy(this List<byte[]> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp751 = new List<byte[]>(source.Count);
+    foreach (var elem in source)
+      tmp751.Add((elem != null) ? elem.ToArray() : null);
+    return tmp751;
+  }
+
+
   public static bool Equals(this List<int> instance, object that)
   {
     if (!(that is List<int> other)) return false;
@@ -172,6 +280,18 @@
   }
 
 
+  public static List<int> DeepCopy(this List<int> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp752 = new List<int>(source.Count);
+    foreach (var elem in source)
+      tmp752.Add(elem);
+    return tmp752;
+  }
+
+
   public static bool Equals(this List<long> instance, object that)
   {
     if (!(that is List<long> other)) return false;
@@ -187,6 +307,18 @@
   }
 
 
+  public static List<long> DeepCopy(this List<long> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp753 = new List<long>(source.Count);
+    foreach (var elem in source)
+      tmp753.Add(elem);
+    return tmp753;
+  }
+
+
   public static bool Equals(this List<sbyte> instance, object that)
   {
     if (!(that is List<sbyte> other)) return false;
@@ -202,6 +334,18 @@
   }
 
 
+  public static List<sbyte> DeepCopy(this List<sbyte> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp754 = new List<sbyte>(source.Count);
+    foreach (var elem in source)
+      tmp754.Add(elem);
+    return tmp754;
+  }
+
+
   public static bool Equals(this List<string> instance, object that)
   {
     if (!(that is List<string> other)) return false;
@@ -217,4 +361,16 @@
   }
 
 
+  public static List<string> DeepCopy(this List<string> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp755 = new List<string>(source.Count);
+    foreach (var elem in source)
+      tmp755.Add((elem != null) ? elem : null);
+    return tmp755;
+  }
+
+
 }
diff --git a/src/Apache.IoTDB/Rpc/Generated/common.Extensions.cs b/src/Apache.IoTDB/Rpc/Generated/common.Extensions.cs
index 4fd2bad..306f9b7 100644
--- a/src/Apache.IoTDB/Rpc/Generated/common.Extensions.cs
+++ b/src/Apache.IoTDB/Rpc/Generated/common.Extensions.cs
@@ -37,6 +37,18 @@
   }
 
 
+  public static Dictionary<ThrottleType, TTimedQuota> DeepCopy(this Dictionary<ThrottleType, TTimedQuota> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp122 = new Dictionary<ThrottleType, TTimedQuota>(source.Count);
+    foreach (var pair in source)
+      tmp122.Add(pair.Key, (pair.Value != null) ? pair.Value.DeepCopy() : null);
+    return tmp122;
+  }
+
+
   public static bool Equals(this Dictionary<string, string> instance, object that)
   {
     if (!(that is Dictionary<string, string> other)) return false;
@@ -67,6 +79,18 @@
   }
 
 
+  public static List<TConfigNodeLocation> DeepCopy(this List<TConfigNodeLocation> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp124 = new List<TConfigNodeLocation>(source.Count);
+    foreach (var elem in source)
+      tmp124.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp124;
+  }
+
+
   public static bool Equals(this List<TDataNodeLocation> instance, object that)
   {
     if (!(that is List<TDataNodeLocation> other)) return false;
@@ -82,6 +106,18 @@
   }
 
 
+  public static List<TDataNodeLocation> DeepCopy(this List<TDataNodeLocation> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp125 = new List<TDataNodeLocation>(source.Count);
+    foreach (var elem in source)
+      tmp125.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp125;
+  }
+
+
   public static bool Equals(this List<TFile> instance, object that)
   {
     if (!(that is List<TFile> other)) return false;
@@ -97,6 +133,18 @@
   }
 
 
+  public static List<TFile> DeepCopy(this List<TFile> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp126 = new List<TFile>(source.Count);
+    foreach (var elem in source)
+      tmp126.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp126;
+  }
+
+
   public static bool Equals(this List<TSStatus> instance, object that)
   {
     if (!(that is List<TSStatus> other)) return false;
@@ -127,6 +175,18 @@
   }
 
 
+  public static List<TTestConnectionResult> DeepCopy(this List<TTestConnectionResult> source)
+  {
+    if (source == null)
+      return null;
+
+    var tmp128 = new List<TTestConnectionResult>(source.Count);
+    foreach (var elem in source)
+      tmp128.Add((elem != null) ? elem.DeepCopy() : null);
+    return tmp128;
+  }
+
+
   public static bool Equals(this List<string> instance, object that)
   {
     if (!(that is List<string> other)) return false;
diff --git a/src/Apache.IoTDB/SessionPool.cs b/src/Apache.IoTDB/SessionPool.cs
index aa25d04..6dfda4c 100644
--- a/src/Apache.IoTDB/SessionPool.cs
+++ b/src/Apache.IoTDB/SessionPool.cs
@@ -453,6 +453,26 @@
                 throw;
             }
         }
+
+        public async Task<int> CreateDatabase(string dbName)
+        {
+            return await ExecuteClientOperationAsync<int>(
+                async client =>
+                {
+                    var status = await client.ServiceClient.setStorageGroupAsync(client.SessionId, dbName);
+
+                    if (_debugMode)
+                    {
+                        _logger.LogInformation("create database {0} successfully, server message is {1}", dbName, status.Message);
+                    }
+
+                    return _utilFunctions.VerifySuccess(status);
+                },
+                errMsg: "Error occurs when creating database"
+            );
+        }
+
+        [Obsolete("This method is deprecated, please use createDatabase instead.")]
         public async Task<int> SetStorageGroup(string groupName)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -530,6 +550,24 @@
                 errMsg: "Error occurs when creating aligned time series"
             );
         }
+        public async Task<int> DeleteDatabaseAsync(string dbName)
+        {
+            return await ExecuteClientOperationAsync<int>(
+                async client =>
+                {
+                    var status = await client.ServiceClient.deleteStorageGroupsAsync(client.SessionId, new List<string> { dbName });
+
+                    if (_debugMode)
+                    {
+                        _logger.LogInformation("delete database {0} successfully, server message is {1}", dbName, status.Message);
+                    }
+
+                    return _utilFunctions.VerifySuccess(status);
+                },
+                errMsg: "Error occurs when deleting database"
+            );
+        }
+        [Obsolete("This method is deprecated, please use DeleteDatabaseAsync instead.")]
         public async Task<int> DeleteStorageGroupAsync(string groupName)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -547,6 +585,24 @@
                 errMsg: "Error occurs when deleting storage group"
             );
         }
+        public async Task<int> DeleteDatabasesAsync(List<string> dbNames)
+        {
+            return await ExecuteClientOperationAsync<int>(
+                async client =>
+                {
+                    var status = await client.ServiceClient.deleteStorageGroupsAsync(client.SessionId, dbNames);
+
+                    if (_debugMode)
+                    {
+                        _logger.LogInformation("delete database(s) {0} successfully, server message is {1}", dbNames, status.Message);
+                    }
+
+                    return _utilFunctions.VerifySuccess(status);
+                },
+                errMsg: "Error occurs when deleting database(s)"
+            );
+        }
+        [Obsolete("This method is deprecated, please use DeleteDatabasesAsync instead.")]
         public async Task<int> DeleteStorageGroupsAsync(List<string> groupNames)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1325,7 +1381,7 @@
                 errMsg: "Error occurs when executing last data query"
             );
         }
-
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> CreateSchemaTemplateAsync(Template template)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1345,6 +1401,8 @@
                 errMsg: "Error occurs when creating schema template"
             );
         }
+
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> DropSchemaTemplateAsync(string templateName)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1364,6 +1422,7 @@
                 errMsg: "Error occurs when dropping schema template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> SetSchemaTemplateAsync(string templateName, string prefixPath)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1383,6 +1442,7 @@
                 errMsg: "Error occurs when setting schema template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> UnsetSchemaTemplateAsync(string prefixPath, string templateName)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1402,6 +1462,7 @@
                 errMsg: "Error occurs when unsetting schema template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> DeleteNodeInTemplateAsync(string templateName, string path)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1421,6 +1482,7 @@
                 errMsg: "Error occurs when deleting node in template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<int> CountMeasurementsInTemplateAsync(string name)
         {
             return await ExecuteClientOperationAsync<int>(
@@ -1445,6 +1507,7 @@
                 errMsg: "Error occurs when counting measurements in template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<bool> IsMeasurementInTemplateAsync(string templateName, string path)
         {
             return await ExecuteClientOperationAsync<bool>(
@@ -1470,6 +1533,7 @@
                 errMsg: "Error occurs when checking measurement in template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<bool> IsPathExistInTemplateAsync(string templateName, string path)
         {
             return await ExecuteClientOperationAsync<bool>(
@@ -1495,6 +1559,7 @@
                 errMsg: "Error occurs when checking path exist in template"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<List<string>> ShowMeasurementsInTemplateAsync(string templateName, string pattern = "")
         {
             return await ExecuteClientOperationAsync<List<string>>(
@@ -1520,7 +1585,7 @@
                 errMsg: "Error occurs when showing measurements in template"
             );
         }
-
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<List<string>> ShowAllTemplatesAsync()
         {
             return await ExecuteClientOperationAsync<List<string>>(
@@ -1546,6 +1611,7 @@
             );
         }
 
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<List<string>> ShowPathsTemplateSetOnAsync(string templateName)
         {
             return await ExecuteClientOperationAsync<List<string>>(
@@ -1570,6 +1636,7 @@
                 errMsg: "Error occurs when getting paths template set on"
             );
         }
+        [Obsolete("This method is obsolete. Use SQL instead.", false)]
         public async Task<List<string>> ShowPathsTemplateUsingOnAsync(string templateName)
         {
             return await ExecuteClientOperationAsync<List<string>>(
diff --git a/src/Apache.IoTDB/Utils.cs b/src/Apache.IoTDB/Utils.cs
index 8132ee8..d50a08d 100644
--- a/src/Apache.IoTDB/Utils.cs
+++ b/src/Apache.IoTDB/Utils.cs
@@ -20,6 +20,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Text;
 
 namespace Apache.IoTDB
 {
@@ -93,5 +94,32 @@
             }
             return nodeUrls.Select(ParseTEndPointIpv4AndIpv6Url).ToList();
         }
+
+        public static DateTime ParseIntToDate(int dateInt)
+        {
+            if (dateInt < 10000101 || dateInt > 99991231)
+            {
+                throw new ArgumentException("Date must be between 10000101 and 99991231.");
+            }
+            return DateTime.TryParseExact(dateInt.ToString(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out DateTime date) ? date : throw new ArgumentException("Date must be between 10000101 and 99991231.");
+        }
+
+        public static int ParseDateToInt(DateTime? dateTime)
+        {
+          if (dateTime == null)
+          {
+              throw new ArgumentException("Date expression is none or empty.");
+          }
+          if(dateTime.Value.Year<1000)
+          {
+              throw new ArgumentException("Year must be between 1000 and 9999.");
+          }
+          return dateTime.Value.Year * 10000 + dateTime.Value.Month * 100 + dateTime.Value.Day;
+        }
+
+        public static string ByteArrayToHexString(byte[] bytes)
+        {
+            return "0x" + BitConverter.ToString(bytes).Replace("-", "").ToLowerInvariant();
+        }
     }
 }
\ No newline at end of file