W dniu 12.03.2012 14:24, Przemysław Kudyba napisał(a):
Witam.
Witaj.
Zabrałem się dzisiaj za SIIS i widze, że lms-teryt nie znajduje ulic ani miejscowosci. Znajduje troche, jezeli uzupelnie pole location w nodes.
Ten patch troche to naprawia:
devel bin # diff -u lms-teryt /tmp/lmsgit-lms-e75b2dd/bin/lms-teryt --- lms-teryt 2012-03-12 14:14:03.000000000 +0100 +++ /tmp/lmsgit-lms-e75b2dd/bin/lms-teryt 2012-03-12 05:33:18.000000000 +0100 @@ -688,7 +688,7 @@ my $street_get = $dbase->prepare("SELECT s.id, s.cityid FROM location_streets s JOIN location_cities c ON (s.cityid = c.id)
WHERE ".($dbtype =~ /mysql/ ? "CONCAT(COALESCE(s.name2,''),
s.name)" : "(s.name2 || s.name)")." = ? AND c.name = ?
WHERE ".($dbtype =~ /mysql/ ? "CONCAT(s.name2, s.name)" :
"(s.name2 || s.name)")." = ? AND c.name = ? ORDER BY c.cityid LIMIT 1"); my $city_get = $dbase->prepare("SELECT id FROM location_cities
Problemem wydaje się być w mysql CONCAT null ze stringiem..
mysql> select CONCAT(NULL, 'string') -> ; +------------------------+ | CONCAT(NULL, 'string') | +------------------------+ | NULL | +------------------------+ 1 row in set (0.00 sec)
mysql> select CONCAT('string', NULL) -> ; +------------------------+ | CONCAT('string', NULL) | +------------------------+ | NULL | +------------------------+ 1 row in set (0.00 sec)
Pozdrawiam.
Zobacz: mysql> SELECT CONCAT(COALESCE(NULL, ''), 'ala'); +-----------------------------------+ | CONCAT(COALESCE(NULL, ''), 'ala') | +-----------------------------------+ | ala | +-----------------------------------+ 1 row in set (0.00 sec)
więc akurat zmiana na CONCAT(s.name2, s.name) to krok nie w tym kierunku co trzeba. Chyba, że coś źle zroxumiałem...