Thread: Migration issue

Migration issue

From
"Terminal Station"
Date:
Url : http://pugs.postgresql.org/directory

Error Msg:
"

   * warning: pg_query() [function.pg-query]: Query failed: ERROR:
function left(character varying, integer) does not exist LINE 1:
SELECT count(DISTINCT(LEFT(term_data.name, 1))) FROM node no... ^
HINT: No function matches the given name and argument types. You may
need to add explicit type casts. in
/usr/local/www/drupal5/includes/database.pgsql.inc on line 125.   * user warning: query: SELECT
count(DISTINCT(LEFT(term_data.name,
1))) FROM node node LEFT JOIN term_node term_node ON node.nid =
term_node.nid LEFT JOIN term_data term_data ON term_node.tid =
term_data.tid WHERE (node.status = '1') AND (term_data.name IS NOT
NULL) in /usr/local/www/drupal5/includes/database.pgsql.inc on line
144.   * warning: pg_query() [function.pg-query]: Query failed: ERROR:
function left(character varying, integer) does not exist LINE 1:
SELECT term_data.tid, LEFT(term_data.name, 1) AS letter, cou... ^
HINT: No function matches the given name and argument types. You may
need to add explicit type casts. in
/usr/local/www/drupal5/includes/database.pgsql.inc on line 125.   * user warning: query: SELECT term_data.tid,
LEFT(term_data.name,
1) AS letter, count(node.nid) AS num_nodes, term_data.weight AS
term_data_weight, term_data.name AS term_data_name, node.sticky AS
node_sticky, node.created AS node_created_created FROM node node LEFT
JOIN term_node term_node ON node.nid = term_node.nid LEFT JOIN
term_data term_data ON term_node.tid = term_data.tid WHERE
(node.status = '1') AND (term_data.name IS NOT NULL) GROUP BY
LEFT(term_data.name, 1), term_data_weight, term_data_name,
node_sticky, node_created_created ORDER BY term_data_weight ASC,
term_data_name ASC, node_sticky DESC, node_created_created DESC LIMIT
50 OFFSET 0 in /usr/local/www/drupal5/includes/database.pgsql.inc on
line 144.

"

Cause:
Automatic casting not supported!


Re: Migration issue

From
"Selena Deckelmann"
Date:
On Sun, Mar 2, 2008 at 3:18 PM, Terminal Station <terminale@gmail.com> wrote:
> Url : http://pugs.postgresql.org/directory

>     * warning: pg_query() [function.pg-query]: Query failed: ERROR:
>  function left(character varying, integer) does not exist LINE 1:
>  SELECT count(DISTINCT(LEFT(term_data.name, 1))) FROM node no... ^
>  HINT: No function matches the given name and argument types. You may
>  need to add explicit type casts. in
>  /usr/local/www/drupal5/includes/database.pgsql.inc on line 125.

[trimmed]

This is not a casting problem.

The problem is the LEFT() function call.  This is a mysql-specific
function that returns the left-most characters. I fixed it by creating
a function that just uses SUBSTR() instead.

But there's another bug :(

And, I fixed it.  There was a missing column in a GROUP BY.

-selena


-- 
Selena Deckelmann
PDXPUG - Portland PostgreSQL Users Group
http://pugs.postgresql.org/pdx
http://www.chesnok.com/daily