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

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


The following commit(s) were added to refs/heads/main by this push:
     new 6ca5ce0d update go example code (#1045)
6ca5ce0d is described below

commit 6ca5ce0d7c6b2844b0171bc362ff70dd44e7123b
Author: leto-b <[email protected]>
AuthorDate: Thu Mar 26 19:09:28 2026 +0800

    update go example code (#1045)
---
 .../Table/API/Programming-Go-Native-API_apache.md  | 520 +++++++++++----------
 .../Table/API/Programming-Go-Native-API_timecho.md | 520 +++++++++++----------
 .../API/Programming-Go-Native-API_apache.md        | 520 +++++++++++----------
 .../API/Programming-Go-Native-API_timecho.md       | 520 +++++++++++----------
 .../Table/API/Programming-Go-Native-API_apache.md  | 520 +++++++++++----------
 .../Table/API/Programming-Go-Native-API_timecho.md | 520 +++++++++++----------
 .../API/Programming-Go-Native-API_apache.md        | 520 +++++++++++----------
 .../API/Programming-Go-Native-API_timecho.md       | 520 +++++++++++----------
 8 files changed, 2096 insertions(+), 2064 deletions(-)

diff --git a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md 
b/src/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
index 0d7cc435..41ab8637 100644
--- a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
+++ b/src/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
@@ -196,143 +196,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -415,158 +420,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md 
b/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
index 18fa3dc0..41ab8637 100644
--- a/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
+++ b/src/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
@@ -196,143 +196,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -415,158 +420,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git a/src/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md 
b/src/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
index 0d7cc435..41ab8637 100644
--- a/src/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
+++ b/src/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
@@ -196,143 +196,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -415,158 +420,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md 
b/src/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
index 18fa3dc0..41ab8637 100644
--- a/src/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
+++ b/src/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
@@ -196,143 +196,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -415,158 +420,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //before V2.0.6 it is root
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md 
b/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
index 2892a321..ad109f41 100644
--- a/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
+++ b/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_apache.md
@@ -218,143 +218,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -437,158 +442,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md 
b/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
index 8866227d..ad109f41 100644
--- a/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
+++ b/src/zh/UserGuide/Master/Table/API/Programming-Go-Native-API_timecho.md
@@ -218,143 +218,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -437,158 +442,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md 
b/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
index 2892a321..ad109f41 100644
--- a/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
+++ b/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_apache.md
@@ -218,143 +218,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -437,158 +442,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "root",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
diff --git 
a/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md 
b/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
index 8866227d..ad109f41 100644
--- a/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
+++ b/src/zh/UserGuide/latest-Table/API/Programming-Go-Native-API_timecho.md
@@ -218,143 +218,148 @@ func NewClusterTableSession(clusterConfig 
*ClusterConfig, enableRPCCompression b
 package main
 
 import (
-   "flag"
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "math/rand"
-   "strconv"
-   "time"
+       "flag"
+       "log"
+       "math/rand"
+       "strconv"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   flag.Parse()
-   config := &client.Config{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_session",
-   }
-   session, err := client.NewTableSession(config, false, 0)
-   if err != nil {
-      log.Fatal(err)
-   }
-   defer session.Close()
-
-   checkError(session.ExecuteNonQueryStatement("create database test_db"))
-   checkError(session.ExecuteNonQueryStatement("use test_db"))
-   checkError(session.ExecuteNonQueryStatement("create table t1 (id1 string 
tag, id2 string tag, s1 text field, s2 text field)"))
-   insertRelationalTablet(session)
-   showTables(session)
-   query(session)
+       flag.Parse()
+       config := &client.Config{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_session",
+       }
+       session, err := client.NewTableSession(config, false, 0)
+       if err != nil {
+               log.Fatal(err)
+       }
+       defer session.Close()
+
+       checkError(session.ExecuteNonQueryStatement("create database test_db"))
+       checkError(session.ExecuteNonQueryStatement("use test_db"))
+       checkError(session.ExecuteNonQueryStatement("create table t1 (tag1 
string tag, tag2 string tag, s1 text field, s2 text field)"))
+       insertRelationalTablet(session)
+       showTables(session)
+       query(session)
 }
 
 func getTextValueFromDataSet(dataSet *client.SessionDataSet, columnName 
string) string {
-   if dataSet.IsNull(columnName) {
-      return "null"
-   } else {
-      return dataSet.GetText(columnName)
-   }
+       if isNull, err := dataSet.IsNull(columnName); err != nil {
+               log.Fatal(err)
+       } else if isNull {
+               return "null"
+       }
+       v, err := dataSet.GetString(columnName)
+       if err != nil {
+               log.Fatal(err)
+       }
+       return v
 }
 
 func insertRelationalTablet(session client.ITableSession) {
-   tablet, err := client.NewRelationalTablet("t1", []*client.MeasurementSchema{
-      {
-         Measurement: "id1",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "id2",
-         DataType:    client.STRING,
-      },
-      {
-         Measurement: "s1",
-         DataType:    client.TEXT,
-      },
-      {
-         Measurement: "s2",
-         DataType:    client.TEXT,
-      },
-   }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
-   if err != nil {
-      log.Fatal("Failed to create relational tablet {}", err)
-   }
-   ts := time.Now().UTC().UnixNano() / 1000000
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_"+strconv.Itoa(row), 0, row)
-      tablet.SetValueAt("id2_field_"+strconv.Itoa(row), 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
-
-   tablet.Reset()
-
-   for row := 0; row < 16; row++ {
-      ts++
-      tablet.SetTimestamp(ts, row)
-      tablet.SetValueAt("id1_field_1", 0, row)
-      tablet.SetValueAt("id2_field_1", 1, row)
-      tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
-      tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
-
-      nullValueColumn := rand.Intn(4)
-      tablet.SetValueAt(nil, nullValueColumn, row)
-      tablet.RowSize++
-   }
-   checkError(session.Insert(tablet))
+       tablet, err := client.NewRelationalTablet("t1", 
[]*client.MeasurementSchema{
+               {
+                       Measurement: "tag1",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "tag2",
+                       DataType:    client.STRING,
+               },
+               {
+                       Measurement: "s1",
+                       DataType:    client.TEXT,
+               },
+               {
+                       Measurement: "s2",
+                       DataType:    client.TEXT,
+               },
+       }, []client.ColumnCategory{client.TAG, client.TAG, client.FIELD, 
client.FIELD}, 1024)
+       if err != nil {
+               log.Fatal("Failed to create relational tablet {}", err)
+       }
+       ts := time.Now().UTC().UnixNano() / 1000000
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_"+strconv.Itoa(row), 0, row)
+               tablet.SetValueAt("tag2_value_"+strconv.Itoa(row), 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
+
+       tablet.Reset()
+
+       for row := 0; row < 16; row++ {
+               ts++
+               tablet.SetTimestamp(ts, row)
+               tablet.SetValueAt("tag1_value_1", 0, row)
+               tablet.SetValueAt("tag2_value_1", 1, row)
+               tablet.SetValueAt("s1_value_"+strconv.Itoa(row), 2, row)
+               tablet.SetValueAt("s2_value_"+strconv.Itoa(row), 3, row)
+
+               nullValueColumn := rand.Intn(4)
+               tablet.SetValueAt(nil, nullValueColumn, row)
+               tablet.RowSize++
+       }
+       checkError(session.Insert(tablet))
 }
 
 func showTables(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("tableName is", dataSet.GetText("TableName"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               value, err := dataSet.GetString("TableName")
+               if err != nil {
+                       log.Fatal(err)
+               }
+               log.Printf("tableName is %v", value)
+       }
 }
 
 func query(session client.ITableSession) {
-   timeout := int64(2000)
-   dataSet, err := session.ExecuteQueryStatement("select * from t1", &timeout)
-   if err != nil {
-      log.Fatal(err)
-   }
-   for {
-      hasNext, err := dataSet.Next()
-      if err != nil {
-         log.Fatal(err)
-      }
-      if !hasNext {
-         break
-      }
-      log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, "id1"), 
getTextValueFromDataSet(dataSet, "id2"), getTextValueFromDataSet(dataSet, 
"s1"), getTextValueFromDataSet(dataSet, "s2"))
-   }
+       timeout := int64(2000)
+       dataSet, err := session.ExecuteQueryStatement("select * from t1", 
&timeout)
+       defer dataSet.Close()
+       if err != nil {
+               log.Fatal(err)
+       }
+       for {
+               hasNext, err := dataSet.Next()
+               if err != nil {
+                       log.Fatal(err)
+               }
+               if !hasNext {
+                       break
+               }
+               log.Printf("%v %v %v %v", getTextValueFromDataSet(dataSet, 
"tag1"), getTextValueFromDataSet(dataSet, "tag2"), 
getTextValueFromDataSet(dataSet, "s1"), getTextValueFromDataSet(dataSet, "s2"))
+       }
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 
@@ -437,158 +442,157 @@ func NewTableSessionPool(conf *PoolConfig, maxSize, 
connectionTimeoutInMs, waitT
 package main
 
 import (
-   "github.com/apache/iotdb-client-go/client"
-   "github.com/apache/iotdb-client-go/common"
-   "log"
-   "strconv"
-   "sync"
-   "sync/atomic"
-   "time"
+       "log"
+       "strconv"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "github.com/apache/iotdb-client-go/v2/client"
 )
 
 func main() {
-   sessionPoolWithSpecificDatabaseExample()
-   sessionPoolWithoutSpecificDatabaseExample()
-   putBackToSessionPoolExample()
+       sessionPoolWithSpecificDatabaseExample()
+       sessionPoolWithoutSpecificDatabaseExample()
+       putBackToSessionPoolExample()
 }
 
 func putBackToSessionPoolExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
-   defer sessionPool.Close()
-
-   num := 4
-   successGetSessionNum := int32(0)
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database "+dbName+"because ", err)
-            return
-         }
-         atomic.AddInt32(&successGetSessionNum, 1)
-         defer func() {
-            time.Sleep(6 * time.Second)
-            // put back to session pool
-            session.Close()
-         }()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table table_of_" 
+ dbName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
-   log.Println("success num is", successGetSessionNum)
-
-   log.Println("All session's database have been reset.")
-   // the using database will automatically reset to session pool's database 
after the session closed
-   wg.Add(5)
-   for i := 0; i < 5; i++ {
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to get session because ", err)
-         }
-         defer session.Close()
-         timeout := int64(3000)
-         dataSet, err := session.ExecuteQueryStatement("show tables", &timeout)
-         for {
-            hasNext, err := dataSet.Next()
-            if err != nil {
-               log.Fatal(err)
-            }
-            if !hasNext {
-               break
-            }
-            log.Println("table is", dataSet.GetText("TableName"))
-         }
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 4000, false)
+       defer sessionPool.Close()
+
+       num := 4
+       successGetSessionNum := int32(0)
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database 
"+dbName+"because ", err)
+                               return
+                       }
+                       atomic.AddInt32(&successGetSessionNum, 1)
+                       defer func() {
+                               time.Sleep(6 * time.Second)
+                               // put back to session pool
+                               session.Close()
+                       }()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table table_of_" + dbName + " (tag1 string tag, tag2 string tag, s1 text field, 
s2 text field)"))
+               }()
+       }
+       wg.Wait()
+       log.Println("success num is", successGetSessionNum)
+
+       log.Println("All session's database have been reset.")
+       // the using database will automatically reset to session pool's 
database after the session closed
+       wg.Add(5)
+       for i := 0; i < 5; i++ {
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to get session because ", 
err)
+                       }
+                       defer session.Close()
+                       timeout := int64(3000)
+                       dataSet, err := session.ExecuteQueryStatement("show 
tables", &timeout)
+                       for {
+                               hasNext, err := dataSet.Next()
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               if !hasNext {
+                                       break
+                               }
+                               value, err := dataSet.GetString("TableName")
+                               if err != nil {
+                                       log.Fatal(err)
+                               }
+                               log.Println("table is", value)
+                       }
+                       dataSet.Close()
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithSpecificDatabaseExample() {
-   // should create database test_db before executing
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-      Database: "test_db",
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      tableName := "t" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create table "+tableName+"because ", err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create table " + 
tableName + " (id1 string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       // should create database test_db before executing
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+               Database: "test_db",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               tableName := "t" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create table 
"+tableName+"because ", err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
table " + tableName + " (tag1 string tag, tag2 string tag, s1 text field, s2 
text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
 func sessionPoolWithoutSpecificDatabaseExample() {
-   config := &client.PoolConfig{
-      Host:     "127.0.0.1",
-      Port:     "6667",
-      UserName: "root",
-      Password: "TimechoDB@2021", //V2.0.6.x 之前默认密码是root 
-   }
-   sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
-   defer sessionPool.Close()
-   num := 10
-   var wg sync.WaitGroup
-   wg.Add(num)
-   for i := 0; i < num; i++ {
-      dbName := "db" + strconv.Itoa(i)
-      go func() {
-         defer wg.Done()
-         session, err := sessionPool.GetSession()
-         if err != nil {
-            log.Println("Failed to create database ", dbName, err)
-            return
-         }
-         defer session.Close()
-         checkError(session.ExecuteNonQueryStatement("create database " + 
dbName))
-         checkError(session.ExecuteNonQueryStatement("use " + dbName))
-         checkError(session.ExecuteNonQueryStatement("create table t1 (id1 
string tag, id2 string tag, s1 text field, s2 text field)"))
-      }()
-   }
-   wg.Wait()
+       config := &client.PoolConfig{
+               Host:     "127.0.0.1",
+               Port:     "6667",
+               UserName: "root",
+               Password: "root",
+       }
+       sessionPool := client.NewTableSessionPool(config, 3, 60000, 8000, false)
+       defer sessionPool.Close()
+       num := 10
+       var wg sync.WaitGroup
+       wg.Add(num)
+       for i := 0; i < num; i++ {
+               dbName := "db" + strconv.Itoa(i)
+               go func() {
+                       defer wg.Done()
+                       session, err := sessionPool.GetSession()
+                       if err != nil {
+                               log.Println("Failed to create database ", 
dbName, err)
+                               return
+                       }
+                       defer session.Close()
+                       checkError(session.ExecuteNonQueryStatement("create 
database " + dbName))
+                       checkError(session.ExecuteNonQueryStatement("use " + 
dbName))
+                       checkError(session.ExecuteNonQueryStatement("create 
table t1 (tag1 string tag, tag2 string tag, s1 text field, s2 text field)"))
+               }()
+       }
+       wg.Wait()
 }
 
-func checkError(status *common.TSStatus, err error) {
-   if err != nil {
-      log.Fatal(err)
-   }
-
-   if status != nil {
-      if err = client.VerifySuccess(status); err != nil {
-         log.Println(err)
-      }
-   }
+func checkError(err error) {
+       if err != nil {
+               log.Fatal(err)
+       }
 }
 ```
 

Reply via email to