Package: lxr-cvs
Version: 0.9.4.0.20061001-2
Severity: normal
Tags: patch
Hello,
MySQL schema uses reserved word 'release' as field name (table
lxr_releases). To be handled correctly, it should be quoted in schema
initialization script (initdb-mysql) and MySQL access module (Mysql.pm).
MySQL error message:
/usr/share/doc/lxr-cvs/examples# cat initdb-mysql | mysql
ERROR 1064 (42000) at line 35: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near 'release)
)' at line 4
Patch which fix this in attachment.
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Versions of packages lxr-cvs depends on:
ii apache [httpd-cgi] 1.3.34-4.1 versatile, high-performance HTTP s
ii exuberant-ctags 1:5.6-1 build tag file indexes of source c
ii libfile-mmagic-perl 1.27-1 Perl module to guess file type
ii perl [perl5] 5.8.8-7 Larry Wall's Practical Extraction
Versions of packages lxr-cvs recommends:
ii libdbd-mysql-perl 3.0008-1 A Perl5 database interface to the
ii mysql-server 5.0.32-7etch1 mysql database server (meta packag
ii mysql-server-5.0 [mysql-se 5.0.32-7etch1 mysql database server binaries
-- no debconf information
diff -Nru lxr/initdb-mysql new/lxr/initdb-mysql
--- lxr/initdb-mysql 2006-10-03 10:18:37.000000000 +0400
+++ new/lxr/initdb-mysql 2007-06-25 13:57:27.000000000 +0400
@@ -35,7 +35,7 @@
create table lxr_releases
(fileid int not null references lxr_files,
`release` char(255) binary not null,
- primary key (fileid,release)
+ primary key (fileid,`release`)
);
create table lxr_useage
diff -Nru lxr/lib/LXR/Index/Mysql.pm new/lxr/lib/LXR/Index/Mysql.pm
--- lxr/lib/LXR/Index/Mysql.pm 2006-10-03 10:18:37.000000000 +0400
+++ new/lxr/lib/LXR/Index/Mysql.pm 2007-06-25 14:00:07.000000000 +0400
@@ -71,16 +71,16 @@
. "where s.symid = i.symid and i.fileid = f.fileid "
. "and f.fileid = r.fileid "
. "and i.langid = d.langid and i.type = d.declid "
- . "and s.symname = ? and r.release = ?");
+ . "and s.symname = ? and r.`release` = ?");
$self->{indexes_insert} =
$self->{dbh}->prepare(
"insert into ${prefix}indexes (symid, fileid, line, langid,
type, relsym) values (?, ?, ?, ?, ?, ?)"
);
$self->{releases_select} =
- $self->{dbh}->prepare("select * from ${prefix}releases where fileid =
? and release = ?");
+ $self->{dbh}->prepare("select * from ${prefix}releases where fileid =
? and `release` = ?");
$self->{releases_insert} =
- $self->{dbh}->prepare("insert into ${prefix}releases (fileid,
release) values (?, ?)");
+ $self->{dbh}->prepare("insert into ${prefix}releases (fileid,
`release`) values (?, ?)");
$self->{status_get} =
$self->{dbh}->prepare("select status from ${prefix}status where
fileid = ?");
@@ -102,7 +102,7 @@
. "where s.symid = u.symid "
. "and f.fileid = u.fileid "
. "and u.fileid = r.fileid "
- . "and s.symname = ? and r.release = ? "
+ . "and s.symname = ? and r.`release` = ? "
. "order by f.filename");
$self->{decl_select} =
$self->{dbh}->prepare(
@@ -115,24 +115,24 @@
$self->{dbh}->prepare("delete from ${prefix}indexes "
. "using ${prefix}indexes i, ${prefix}releases r "
. "where i.fileid = r.fileid "
- . "and r.release = ?");
+ . "and r.`release` = ?");
$self->{delete_useage} =
$self->{dbh}->prepare("delete from ${prefix}useage "
. "using ${prefix}useage u, ${prefix}releases r "
. "where u.fileid = r.fileid "
- . "and r.release = ?");
+ . "and r.`release` = ?");
$self->{delete_status} =
$self->{dbh}->prepare("delete from ${prefix}status "
. "using ${prefix}status s, ${prefix}releases r "
. "where s.fileid = r.fileid "
- . "and r.release = ?");
+ . "and r.`release` = ?");
$self->{delete_releases} =
- $self->{dbh}->prepare("delete from ${prefix}releases " . "where
release = ?");
+ $self->{dbh}->prepare("delete from ${prefix}releases " . "where
`release` = ?");
$self->{delete_files} =
$self->{dbh}->prepare("delete from ${prefix}files "
. "using ${prefix}files f, ${prefix}releases r "
. "where f.fileid = r.fileid "
- . "and r.release = ?");
+ . "and r.`release` = ?");
return $self;
}