lxr-cvs uses wrong syntax in MySQL delete statement
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lxr-cvs (Debian) |
Fix Released
|
Unknown
|
|||
lxr-cvs (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: lxr-cvs
The genxref program from lxr-cvs produces errors when used with the --reindexall option.
To reproduce set up an LXR inastallation and run
genxref --url=http://
Output:
DBD::mysql::st execute failed: Unknown table 'lxr_indexes' in MULTI DELETE at /usr/share/
DBD::mysql::st execute failed: Unknown table 'lxr_useage' in MULTI DELETE at /usr/share/
DBD::mysql::st execute failed: Unknown table 'lxr_status' in MULTI DELETE at /usr/share/
DBD::mysql::st execute failed: Unknown table 'lxr_files' in MULTI DELETE at /usr/share/
The problem lies with the MySQL statements used for "delete_indexes", "delete_useage", "delete_status" and "delete_files" in /usr/share/
Between lines 114 and 131 the statements are defines as
"delete from ${prefix}indexes using ${prefix}indexes i, ${prefix}releases r where ...".
This is not working and according to the MySQL manual not correct syntax. Since aliases are used, the alias has to be used with DELETE, too. The correct synax would be:
"delete from i using ${prefix}indexes i, ${prefix}releases r where ..."
Changed in lxr-cvs: | |
status: | Unknown → Unconfirmed |
Changed in lxr-cvs (Debian): | |
status: | New → Fix Released |
I found I had to make that change, plus rename the "lxr_releases. release" field to "lxr_release. xrelease" in both the initdb-mysql and the /usr/share/ perl5/LXR/ Index/Mysql. pm file.