private async Task CreateGlobalStateTableAsync()

in src/TriggersBinding/MySqlTriggerListener.cs [282:307]


        private async Task<long> CreateGlobalStateTableAsync(MySqlConnection connection, MySqlTransaction transaction, CancellationToken cancellationToken)
        {
            string createGlobalStateTableQuery = $@"
                    CREATE TABLE IF NOT EXISTS {GlobalStateTableName} (
                        {GlobalStateTableUserFunctionIDColumnName} char(16) NOT NULL,
                        {GlobalStateTableUserTableIDColumnName} char(64) NOT NULL,
                        {GlobalStateTableLastPolledTimeColumnName} Datetime NOT NULL DEFAULT {MYSQL_FUNC_CURRENTTIME},
                        PRIMARY KEY ({GlobalStateTableUserFunctionIDColumnName}, {GlobalStateTableUserTableIDColumnName})
                    );
            ";

            using (var createGlobalStateTableCommand = new MySqlCommand(createGlobalStateTableQuery, connection, transaction))
            {
                var stopwatch = Stopwatch.StartNew();
                try
                {
                    await createGlobalStateTableCommand.ExecuteNonQueryAsyncWithLogging(this._logger, cancellationToken);
                }
                catch (Exception ex)
                {
                    this._logger.LogError($"Exception encountered while creating Global State table. Message: {ex.Message}");
                    throw;
                }
                return stopwatch.ElapsedMilliseconds;
            }
        }