From 98b7d48aeaa0baf9257c998f94e14d55af40cd75 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Sun, 1 Sep 2019 15:26:02 -0400 Subject: [PATCH] Bug 23289: Quote new 'rows' MariaDB reserved word Since MariaDB 10.2.4 rows is a reserved word: https://mariadb.com/kb/en/library/mariadb-1024-release-notes/ """ New reserved word: ROWS. This can no longer be used as an identifier without being quoted. """ Test plan: With MariaDB >= 10.2.4, create a new label template. Also, prove t/db_dependent/Labels/t_Template.t Without this patch you will get the following SQL error: DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows, creator, template_code, page_height, --- C4/Creators/Template.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/Creators/Template.pm b/C4/Creators/Template.pm index ee504d7308..fe876f7a82 100644 --- a/C4/Creators/Template.pm +++ b/C4/Creators/Template.pm @@ -166,7 +166,7 @@ sub save { foreach my $key (keys %{$self}) { next if ($key eq 'template_id') || ($key eq 'template_stat') || ($key eq 'creator'); push (@params, $self->{$key}); - $query .= "$key=?, "; + $query .= "`$key`=?, "; } $query = substr($query, 0, (length($query)-2)); push (@params, $self->{'template_id'}, $self->{'creator'}); @@ -186,7 +186,7 @@ sub save { foreach my $key (keys %{$self}) { next if $key eq 'template_stat'; push (@params, $self->{$key}); - $query .= "$key, "; + $query .= "`$key`, "; } $query = substr($query, 0, (length($query)-2)); $query .= ") VALUES ("; -- 2.11.0