Re: deparsing utility commands

From: Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com>
To: "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: David Steele <david(at)pgmasters(dot)net>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: deparsing utility commands
Date: 2015-08-05 19:20:29
Message-ID: 55C261FD.9020201@BlueTreble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 7/31/15 8:45 AM, Shulgin, Oleksandr wrote:
> While running deparsecheck suite I'm getting a number of oddly looking
> errors:
>
> WARNING: state: 42883 errm: operator does not exist: pg_catalog.oid =
> pg_catalog.oid
>
> This is caused by deparsing create view, e.g.:
>
> STATEMENT: create view v1 as select * from t1 ;
> ERROR: operator does not exist: pg_catalog.oid = pg_catalog.oid at
> character 52
> HINT: No operator matches the given name and argument type(s). You
> might need to add explicit type casts.
> QUERY: SELECT * FROM pg_catalog.pg_rewrite WHERE ev_class = $1 AND
> rulename = $2
> CONTEXT: PL/pgSQL function test_ddl_deparse() line 1 at FOR over SELECT
> rows
>
> The pg_rewrite query comes from ruleutils.c, while ddl_deparse.c calls
> it through pg_get_viewdef_internal() but don't understand how is it
> different from e.g., select pg_get_viewdef(...), and that last one is
> not affected.

I'm not sure what test_ddl_deparse is doing, is that where the oid = oid
is coming from?

It might be enlightening to replace = with OPERATOR(pg_catalog.=) and
see if that works.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Data in Trouble? Get it in Treble! http://BlueTreble.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-05 19:21:22 pgsql: Fix BRIN to use SnapshotAny during summarization
Previous Message Andreas Seltenreich 2015-08-05 19:07:39 Re: [sqlsmith] Failed assertion in joinrels.c