On Fri, Oct 01, 2004 at 02:46:33PM +0600, Alexander Zhiltsov wrote:
> Executing the following query return an error 'ERROR: unrecognized node type: 656'.
> SELECT pg_get_expr(i.indexprs, i.indrelid) AS expr
> FROM pg_index i
> INNER JOIN pg_class c ON i.indrelid = c.oid
> WHERE c.relname = 'art'
>
> Expression tree is
> ({FUNCEXPR :funcid 4061872 :funcresulttype 25 :funcretset false :funcformat 0 :args ({RELABELTYPE :arg {VAR :varno 1
:varattno2 :vartype 1043 :vartypmod 64 :varlevelsup 0 :varnoold 1 :varoattno 2} :resulttype 25 :resulttypmod -1
:relabelformat1})})
pg_get_expr() in PostgreSQL 8.0.0beta3 doesn't like the parentheses
that surround the expression. This query works for me:
SELECT pg_get_expr(trim(BOTH '()' FROM i.indexprs), i.indrelid) AS expr
FROM pg_index i
INNER JOIN pg_class c ON i.indrelid = c.oid
WHERE c.relname = 'art';
pg_get_expr() in PostgreSQL 7.4.5 works both ways.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/