public async Task ExecuteNonQueryStatementAsync()

in src/Apache.IoTDB/SessionPool.cs [1378:1423]


        public async Task<int> ExecuteNonQueryStatementAsync(string sql)
        {
            return await ExecuteClientOperationAsync<int>(
                async client =>
                {
                    String previousDB = _database;
                    var req = new TSExecuteStatementReq(client.SessionId, sql, client.StatementId);

                    var resp = await client.ServiceClient.executeUpdateStatementAsync(req);
                    var status = resp.Status;

                    if (resp.__isset.database)
                    {
                        this._database = resp.Database;
                    }
                    if (_database != previousDB)
                    {
                        // all client should switch to the same database
                        foreach (var c in _clients.ClientQueue)
                        {
                            try
                            {
                                if (c != client)
                                {
                                    var switchReq = new TSExecuteStatementReq(c.SessionId, sql, c.StatementId);
                                    await c.ServiceClient.executeUpdateStatementAsync(switchReq);
                                }
                            }
                            catch (Exception e)
                            {
                                _logger.LogError("switch database from {0} to {1} failed for {2}, error: {3}", previousDB, _database, c.SessionId, e.Message);
                            }
                        }
                        _logger.LogInformation("switch database from {0} to {1}", previousDB, _database);
                    }

                    if (_debugMode)
                    {
                        _logger.LogInformation("execute non-query statement {0} message: {1}", sql, status.Message);
                    }

                    return _utilFunctions.VerifySuccess(status);
                },
                errMsg: "Error occurs when executing non-query statement"
            );
        }