Skip to content

Commit e71b76f

Browse files
authored
Merge pull request #222 from glennsarti/fm-5021-escape-db-names
(FM-5021) Escaping identifiers when creating a database
2 parents e52e9f0 + 088e1ad commit e71b76f

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

spec/defines/database_spec.rb

+9-3
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,15 @@
4141
end
4242
it_behaves_like 'sqlserver_tsql command' do
4343
let(:additional_params) { {
44-
:filespec_filename => 'c:/test/test.mdf', :filespec_name => 'myCreCre',
45-
:log_filename => "c:/test/logfile.ldf", :log_name => "myCrazyLog"} }
46-
let(:should_contain_command) { [/c\:\/test\/logfile\.ldf/] }
44+
:filespec_filename => 'c:/test/test.mdf', :filespec_name => 'myCre-Cre',
45+
:log_filename => "c:/test/logfile.ldf", :log_name => "myCrazy_Log"} }
46+
# Ensure that the parameters are in the TSQL and are correctly escaped
47+
let(:should_contain_command) {[
48+
/NAME = N'myCre-Cre'/,
49+
/FILENAME = N'c\:\/test\/test\.mdf'/,
50+
/NAME = N'myCrazy_Log'/,
51+
/FILENAME = N'c\:\/test\/logfile\.ldf'/
52+
]}
4753
end
4854
end
4955
describe 'collation_name' do

templates/create/database.sql.erb

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ CREATE DATABASE [<%= @db_name %>]
1111
CONTAINMENT = <%= @containment %>
1212
<% if @filespec_name && @filespec_filename -%>
1313
ON (
14-
NAME = <%= @filespec_name %>,
14+
NAME = N'<%= @filespec_name %>',
1515
FILENAME = N'<%= @filespec_filename %>'
1616
<% if @filespec_size %>, SIZE = <%= @filespec_size %><% end %>
1717
<% if @filespec_maxsize %>, MAXSIZE = <%= @filespec_maxsize %><% end %>
@@ -21,7 +21,7 @@ CREATE DATABASE [<%= @db_name %>]
2121
<% if @log_name && @log_filename -%>
2222
LOG ON
2323
(
24-
NAME = <%= @log_name %>,
24+
NAME = N'<%= @log_name %>',
2525
FILENAME = N'<%= @log_filename %>'
2626
<% if @log_size %>, SIZE = <%= @log_size %> <% end %>
2727
<% if @log_maxsize %>, MAXSIZE = <%= @log_maxsize %><% end %>

0 commit comments

Comments
 (0)