diff --git a/src/Hangfire.PostgreSql/Install.v10.sql b/src/Hangfire.PostgreSql/Install.v10.sql new file mode 100644 index 00000000..4d80c66f --- /dev/null +++ b/src/Hangfire.PostgreSql/Install.v10.sql @@ -0,0 +1,15 @@ +SET search_path = 'hangfire'; +-- +-- Table structure for table `Schema` +-- + +DO +$$ +BEGIN + IF EXISTS (SELECT 1 FROM "schema" WHERE "version"::integer >= 9) THEN + RAISE EXCEPTION 'version-already-applied'; + END IF; +END +$$; + +ALTER TABLE "jobqueue" ALTER COLUMN "queue" TYPE TEXT; \ No newline at end of file diff --git a/tests/Hangfire.PostgreSql.Tests/PostgreSqlJobQueueFacts.cs b/tests/Hangfire.PostgreSql.Tests/PostgreSqlJobQueueFacts.cs index b553f891..5125617c 100644 --- a/tests/Hangfire.PostgreSql.Tests/PostgreSqlJobQueueFacts.cs +++ b/tests/Hangfire.PostgreSql.Tests/PostgreSqlJobQueueFacts.cs @@ -426,6 +426,23 @@ public void Enqueue_AddsAJobToTheQueue_WithoutUseNativeDatabaseTransactions() Enqueue_AddsAJobToTheQueue(false); } + [Fact, CleanDatabase] + public void Queues_Should_Support_Long_Queue_Names() + { + UseConnection(connection => + { + var queue = CreateJobQueue(connection, false); + + var name = "very_long_name_that_is_over_20_characters_long_or_something"; + + Assert.True(name.Length > 21); + + queue.Enqueue(name, "1"); + + var record = connection.Query(@"select * from """ + GetSchemaName() + @""".""jobqueue""").Single(); + Assert.Equal(name, record.queue.ToString()); + }); + } private void Enqueue_AddsAJobToTheQueue(bool useNativeDatabaseTransactions) {