Re: pgadmin Bogus Varno: 3 - Mailing list pgadmin-support

From Andreas Pflug
Subject Re: pgadmin Bogus Varno: 3
Date
Msg-id 41E64C3F.8080200@pse-consulting.de
Whole thread Raw
In response to pgadmin Bogus Varno: 3  (laurie.burrow@powerconv.alstom.com)
List pgadmin-support
Please stay on the list!


laurie.burrow@powerconv.alstom.com wrote:
> Andreas,
> 
> Here are the results of my tests
> 
> Test 1
> -----------
> This query run interactively gives ERROR:  bogus varno: 3
> 
> SELECT c.oid, c.relname, pg_get_userbyid(c.relowner) AS viewowner,
> c.relacl, description, pg_get_viewdef(c.oid, true) AS definition
>   FROM pg_class c
>   LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and
> des.objsubid=0)
>  WHERE ((c.relhasrules AND (EXISTS (
>            SELECT r.rulename FROM pg_rewrite r
>             WHERE ((r.ev_class = c.oid)
>               AND (bpchar(r.ev_type) = '1'::bpchar)) ))) OR (c.relkind
> = 'v'::char))
>    AND relnamespace = 2200::oid
>  ORDER BY relname
> 
> Test 2
> -----------
> This query with the field   pg_get_viewdef(c.oid, true) AS definition
> removed run interactively works and returns a list of 55 view OIDs which is
> correct in my case.
> 
> SELECT c.oid, c.relname, pg_get_userbyid(c.relowner) AS viewowner,
> c.relacl, description
>   FROM pg_class c
>   LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and
> des.objsubid=0)
>  WHERE ((c.relhasrules AND (EXISTS (
>            SELECT r.rulename FROM pg_rewrite r
>             WHERE ((r.ev_class = c.oid)
>               AND (bpchar(r.ev_type) = '1'::bpchar)) ))) OR (c.relkind
> = 'v'::char))
>    AND relnamespace = 2200::oid
>  ORDER BY relname
> 
> Test 3
> ---------
> This query which runs the function using one of the OID's as an example
> returns the definition without error
> 
> select pg_get_viewdef(17391, true) AS definition
> 
> Test 4
> ----------
> Altering the original query to return only one (the same) OID fails with
> Error Bogus Varno: 3, as in,
> 
> SELECT c.oid, c.relname, pg_get_userbyid(c.relowner)
> AS viewowner, c.relacl, description, pg_get_viewdef(c.oid, true) AS
> definition
>   FROM pg_class c
>   LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and
> des.objsubid=0)
>  WHERE ((c.relhasrules AND (EXISTS (
>            SELECT r.rulename FROM pg_rewrite r
>             WHERE ((r.ev_class = c.oid)
>               AND (bpchar(r.ev_type) = '1'::bpchar)) ))) OR (c.relkind
> = 'v'::char))
>    AND relnamespace = 2200::oid
>  ORDER BY relname
>  offset 0 limit 1



Check this query again without OFFSET 0 LIMIT 1.
Use .... WHERE c.OID = 17391 instead.
I suspect that this will work, and you'll have to try which oid is the 
offending one (binary search using WHERE c.OID BETWEEN ....).


> 
> Test 5
> ----------
> Hardwiring pg_get_viewdef(c.oid, true)  works
> 
> SELECT c.oid, c.relname, pg_get_userbyid(c.relowner)
> AS viewowner, c.relacl, description, pg_get_viewdef(17391, true) AS
> definition
>   FROM pg_class c
>   LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid and
> des.objsubid=0)
>  WHERE ((c.relhasrules AND (EXISTS (
>            SELECT r.rulename FROM pg_rewrite r
>             WHERE ((r.ev_class = c.oid)
>               AND (bpchar(r.ev_type) = '1'::bpchar)) ))) OR (c.relkind
> = 'v'::char))
>    AND relnamespace = 2200::oid
>  ORDER BY relname
>  offset 0 limit 1
> 
> Other Points
> ------------------
> Changing pg_get_viewdef(c.oid, true) to pg_get_viewdef(c.oid, false) has no
> effect.
> 
> Other databases that I have transferred to Postgres 8 don't exhibit this
> problem.
> 
> I have checked the operation of all the views in the Postgres 8 database
> that exhibits the problem and they all seem to work fine so I don't believe
> that the problem is a corrupted view or some such. The main obvious feature
> of the database exhibiting the problem is that it is much bigger and more
> complex than any other database I have ported from Postgres 7 to Postgres 8
> but I guess this may be irelevent.
> 
> I hope I have covered all useful points
> Thanks for the support
> Laurie
> 
> 
> 
> 
> 
> 
> :.________________
> CONFIDENTIALITY : This  e-mail  and  any attachments are confidential and
> may be privileged. If  you are not a named recipient, please notify the
> sender immediately and do not disclose the contents to another person, use
> it for any purpose or store or copy the information in any medium.
> 
> 
> 



pgadmin-support by date:

Previous
From: "Dave Page"
Date:
Subject: Re: pgAdmin Firewall, SSH problem
Next
From: laurie.burrow@powerconv.alstom.com
Date:
Subject: Re: pgadmin Bogus Varno: 3