Přeskočit přímo na text


Odstránenie chybových hlásení z fóra na Drupal.SK

Na Drupal.SK sa po konverzii z Drupalu 4.6 na 4.7 a následne na Drupal 5.1 objavila jedna chyba, ktorú som si sprvu nevšimol (keďže nové príspevky nesledujem priamo z odkazu na fórum ale cez položku menu Posledné príspevky). Až neskôr na ňu upozornili niektorí používatelia. Povedal som si že ok, je to chyba niekde v PostgreSQL ale nemám priamo do databázy prístup tak asi nič neporiešim.

Dnes som si povedal že skúsim nahodiť phpPgAdmina (ktorý predtým nechcel na Drupal.SK bežať) a skúsim sa na to pozrieť. Super beŽalo to a tak som začal pátrať. Podľa chybovej hlášky ktorá ukazovala chybu na SQL otázke:

SELECT
  ncs.last_comment_timestamp,
  IF (ncs.last_comment_uid != 0, u2.name, ncs.last_comment_name) AS last_comment_name,
  ncs.last_comment_uid
FROM node n
INNER JOIN users u1 ON n.uid = u1.uid
INNER JOIN term_node tn ON n.nid = tn.nid
INNER JOIN node_comment_statistics ncs ON n.nid = ncs.nid
INNER JOIN users u2 ON ncs.last_comment_uid=u2.uid
WHERE
  n.status = 1 AND
  n.type='forum' AND
  tn.tid = 5
ORDER BY ncs.last_comment_timestamp DESC
LIMIT 1 OFFSET 0;

porovnaním s funkčnou inštaláciou Drupalu som zistil, že chyba je v definícii PL/PGSQL funkcie:

CREATE OR REPLACE FUNCTION if(boolean, anyelement, anyelement)
  RETURNS anyelement AS
    'SELECT CASE WHEN $1 THEN $2 ELSE $3 END;'
  LANGUAGE 'sql' VOLATILE;

ktorú bolo treba nahradiť touto funkciou:

CREATE OR REPLACE FUNCTION if(boolean, text, text)
  RETURNS text AS
    'SELECT CASE WHEN $1 THEN $2 ELSE $3 END;'
  LANGUAGE 'sql' VOLATILE;

S touto chybou sa pravdepodobne stretnete len pri nejakom rozsiahlejšom upgrade Drupalu, z novou inštaláciou by ste mali byť pred podobným chovaním bezpečný. A tak mi zostáva len pozdraviť,

Happy Drupaling!

About the author

Autor je zamestnancom firmy Mogdesign, venuje sa tvorbe a správe WWW stránok ako aj všeličomu inému. :-D

 

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Drupal meet-up mobilni web 2011

Hledat

Přihlášení

Poslední komentáře