Skip to content

Commit d986a87

Browse files
committed
mysql_database: prevent syntax error with collate=>'binary'
On MySQL v5.5.38, creating a database such as: CREATE DATABASE `mydb` CHARACTER SET binary COLLATE binary; seems to hit a parser bug. A workaround is simply to quote COLLATE `binary`. As the quoting is harmless, and for aesthetics, quote both the CHARACTER SET and COLLATE arguments.
1 parent fbef97d commit d986a87

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

lib/puppet/provider/mysql_database/mysql.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def self.prefetch(resources)
3131
end
3232

3333
def create
34-
mysql([defaults_file, '-NBe', "create database if not exists `#{@resource[:name]}` character set #{@resource[:charset]} collate #{@resource[:collate]}"].compact)
34+
mysql([defaults_file, '-NBe', "create database if not exists `#{@resource[:name]}` character set `#{@resource[:charset]}` collate `#{@resource[:collate]}`"].compact)
3535

3636
@property_hash[:ensure] = :present
3737
@property_hash[:charset] = @resource[:charset]

spec/unit/puppet/provider/mysql_database/mysql_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
describe 'create' do
5858
it 'makes a database' do
59-
provider.expects(:mysql).with([defaults_file, '-NBe', "create database if not exists `#{resource[:name]}` character set #{resource[:charset]} collate #{resource[:collate]}"])
59+
provider.expects(:mysql).with([defaults_file, '-NBe', "create database if not exists `#{resource[:name]}` character set `#{resource[:charset]}` collate `#{resource[:collate]}`"])
6060
provider.expects(:exists?).returns(true)
6161
expect(provider.create).to be_truthy
6262
end

tests/mysql_database.pp

+5
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,8 @@
1010
ensure => present,
1111
charset => 'latin1',
1212
}
13+
database{ 'test5':
14+
ensure => present,
15+
charset => 'binary',
16+
collate => 'binary',
17+
}

0 commit comments

Comments
 (0)