Błędy w zapytaniach SQL ezPublish 4.0.3
Pojawiał się błąd:
BŁĄD: błąd składni w lub blisko "DESC" LINE 14: ... FROM_UNIXTIME( ezcontentobject_attribute.data_int ) ) DESC
Żeby to poprawić to najpierw trzeba dodać funkcje które udają (emulują) MySQL'a (źródło):
CREATE OR REPLACE FUNCTION MONTH(TIMESTAMP without TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(MONTH FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE; CREATE OR REPLACE FUNCTION MONTH(TIMESTAMP WITH TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(MONTH FROM $1)::INTEGER; $$ LANGUAGE SQL STABLE; CREATE OR REPLACE FUNCTION MONTH(DATE) RETURNS INTEGER AS $$ SELECT EXTRACT(MONTH FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE;
dodatkowo jeszcze:
CREATE OR REPLACE FUNCTION YEAR(TIMESTAMP without TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(YEAR FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE;
oraz konwersji czasu (źródło):
CREATE OR REPLACE FUNCTION from_unixtime(integer) RETURNS timestamp AS ' SELECT $1::abstime::timestamp without time zone AS result ' LANGUAGE 'SQL'; CREATE OR REPLACE FUNCTION unix_timestamp() RETURNS integer AS ' SELECT ROUND(EXTRACT( EPOCH FROM abstime(now()) ))::int4 AS result; ' LANGUAGE 'SQL'; CREATE OR REPLACE FUNCTION unix_timestamp(timestamp with time zone) RETURNS integer AS ' SELECT ROUND(EXTRACT( EPOCH FROM ABSTIME($1) ))::int4 AS result; ' LANGUAGE 'SQL';
i na podstawie powyższych:
CREATE OR REPLACE FUNCTION unix_timestamp(text) RETURNS integer AS ' SELECT ROUND(EXTRACT( EPOCH FROM ABSTIME($1) ))::int4 AS result; ' LANGUAGE 'SQL';
i na koniec:
CREATE OR REPLACE FUNCTION "concat"(int, text, int, text, int) RETURNS text AS ' SELECT $1 || $2 || $3 || $4 || $5; ' LANGUAGE 'sql';
specjalnie dla zapytania w pliku extension/ezwebin/autoloads/ezarchive.php które też trzeba poprawić. W zapytaniu SQL w linii 54 jest błąd: GROUP BY nie służy do sortowania a poza tym skoro pola są zdefiniowane i nazwane to wystarczy użyć tej nazwy. Ja zmieniłem końcówkę na taką:
GROUP BY year, month ORDER BY year DESC, month DESC
niestety na tym nie koniec. Pojawiają się kolejne błędy, ale o tym w następnym odcinku ...
Komentarze
Log in or create a user account to comment.