Skip to content

Commit e5c158f

Browse files
authored
Merge pull request #1464 from Particular/cherry-pick-1461-v7
Quote the catalog name when preparing the send command text in SQL Server
2 parents 7ec3284 + 8b508ed commit e5c158f

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
echo "Create extra databases"
5252
sqlcmd -Q "CREATE DATABASE nservicebus1"
5353
sqlcmd -Q "CREATE DATABASE nservicebus2"
54+
sqlcmd -Q "CREATE DATABASE [n service.bus&#]"
5455
5556
echo "Create additional schemas"
5657
sqlcmd -Q "CREATE SCHEMA receiver AUTHORIZATION db_owner" -d "nservicebus"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
namespace NServiceBus.Transport.SqlServer.AcceptanceTests.MultiCatalog
2+
{
3+
using System.Threading.Tasks;
4+
using AcceptanceTesting;
5+
using NUnit.Framework;
6+
7+
public class When_catalog_with_special_characters_configured_for_endpoint : MultiCatalogAcceptanceTest
8+
{
9+
static string EndpointConnectionString => WithCustomCatalog(GetDefaultConnectionString(), "n service.bus&#");
10+
11+
[Test]
12+
public async Task Should_be_able_to_send_messages_to_the_endpoint()
13+
{
14+
await Scenario.Define<Context>()
15+
.WithEndpoint<AnEndpoint>(c => c.When(s => s.SendLocal(new Message())))
16+
.Done(c => c.MessageReceived)
17+
.Run();
18+
19+
Assert.Pass();
20+
}
21+
22+
public class AnEndpoint : EndpointConfigurationBuilder
23+
{
24+
public AnEndpoint() =>
25+
EndpointSetup(new CustomizedServer(EndpointConnectionString), (_, __) => { });
26+
27+
class Handler : IHandleMessages<Message>
28+
{
29+
public Handler(Context scenarioContext)
30+
{
31+
ScenarioContext = scenarioContext;
32+
}
33+
34+
public Task Handle(Message message, IMessageHandlerContext context)
35+
{
36+
ScenarioContext.MessageReceived = true;
37+
38+
return Task.FromResult(0);
39+
}
40+
41+
Context ScenarioContext;
42+
}
43+
}
44+
45+
public class Message : ICommand
46+
{
47+
}
48+
49+
class Context : ScenarioContext
50+
{
51+
public bool MessageReceived { get; set; }
52+
}
53+
}
54+
}

src/NServiceBus.Transport.SqlServer/Queuing/SqlConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ THEN DATEADD(ms, @TimeToBeReceivedMs, GETUTCDATE()) END,
5050

5151
public static string CheckIfTableHasRecoverableText { get; set; } = @"
5252
SELECT COUNT(*)
53-
FROM {0}.sys.columns c
53+
FROM [{0}].sys.columns c
5454
WHERE c.object_id = OBJECT_ID(N'{1}')
5555
AND c.name = 'Recoverable'";
5656

0 commit comments

Comments
 (0)