From 376d7489d0bc1065f5dde7416049b9346b54d2e8 Mon Sep 17 00:00:00 2001 From: giordanol Date: Tue, 23 Jul 2024 09:29:52 +0200 Subject: [PATCH] use select pg_advisory_xact_lock to serialize access to message table creation --- src/Blumchen/Database/Run.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Blumchen/Database/Run.cs b/src/Blumchen/Database/Run.cs index eca94a5..6ffc326 100644 --- a/src/Blumchen/Database/Run.cs +++ b/src/Blumchen/Database/Run.cs @@ -13,11 +13,11 @@ private static async Task Execute( CancellationToken ct) { await using var command = dataSource.CreateCommand(sql); - await command.ExecuteNonQueryAsync(ct).ConfigureAwait(false); + await command.ExecuteNonQueryAsync(ct); } public static async Task EnsureTableExists(this NpgsqlDataSource dataSource, TableDescriptorBuilder.MessageTable tableDescriptor, CancellationToken ct) - => await dataSource.Execute(tableDescriptor.ToString(), ct).ConfigureAwait(false); + => await dataSource.Execute(string.Concat("select pg_advisory_xact_lock(12345);", tableDescriptor), ct).ConfigureAwait(false); public static async Task Exists( this NpgsqlDataSource dataSource,