Version: git (using KDE 4.3.2)
Compiler: gcc 4.1.2
Installed from: Gentoo Packages
The collection scanners fails to update the collection (i.e. incremental or full rescan).
LANG is set to de_DE.utf8.
Running amarok --debug --nofork reveals the problem:
amarok: [ERROR!] GREPME MySQL query failed! Column count doesn't match value count at row 13 on "INSERT INTO tracks_temp VALUES
(5248,4866,545,643,41,1,2,'Like a Book','',3,NULL,190,215000,44100,5142970,NULL,NULL,1249858959,1248132709,NULL,NULL,NULL,NULL),
(5249,4867,545,643,41,1,2,'Same Ground Again','',4,NULL,210,280000,44100,7376364,NULL,NULL,1249858960,1248132710,NULL,NULL,NULL,NULL),
(5252,4870,545,643,41,1,2,'Out of This World','',7,NULL,207,291000,44100,7563245,NULL,NULL,1249858961,1248132711,NULL,NULL,NULL,NULL),
(5253,4871,545,643,41,1,2,'Wish You Were Here','',8,NULL,172,297000,44100,6441457,NULL,NULL,1249858960,1248132711,NULL,NULL,NULL,NULL),
(5256,4874,545,643,41,1,2,'Not Enough Love','',11,NULL,189,317000,44100,7530109,NULL,NULL,1249858962,1248132712,NULL,NULL,NULL,NULL),
(5260,4878,730,644,56,1,32,'Jerk of Life','',1,NULL,1010,309000,44100,39029834,NULL,NULL,1249859017,1248132742,-7,3,-0,00981166,-6,91,-0,0103424),
The floating point numbers have incorrect formatting (i.e. -0,0098.. instead of -0.0098).
A quickfix for me was changing LANG to en_GB.utf8.
Though, the amarok collection was totally broken and I had to recover it from a backup :/
After all, why aren't prepared statements used?
Creating the SQL statement by hand is a very bad idea IMO.
CC'ing Jeff Mitchell, who knows the scanner code best. Jeff, any ideas? :)
Prepared statements aren't used because they won't provide any sort of a significant speedup and are a total and complete pain in the ass in the C API.
Also I don't see how prepared statements are even related to this bug, considering the problem is bad data being passed in, not the query itself.
Regardless, it should be fixed in 6685d27. Please let me know.
Thanks for your work Jeff, but I still get the very same ERROR. More debugging needed?
Don't know what to say. I just tested it and it's fixed for me. You sure you're using a new enough version from git?
What is the exact ERROR you get in the debug output? It might be something new; please repaste from debug output. Also please tell me what git version you're using.
It's entirely possible that you built a version from Git but aren't actually using it (or it's using the wrong libraries), due to your PATH or LDPATH.
The problem seems to be fixed for me since e38986b54701. Thanks Jeff!