Thread: Re: [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

Re: [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

From
Vincenzo Campanella
Date:
Il 28.05.2015 08:23, Shashwat Arghode ha scritto:
> Hi all,
> I am using postgres 9.3.4 and have an on_select rule "_return" on a view.
> I want to drop or disable or bypass that rule.
> Is there any way it can be done without dropping the view??
>
> Because when i try to drop it, it returns
>
> ERROR:  cannot drop rule _RETURN on view viewname because view
> viewname requires it
> HINT:  You can drop viewname instead.
> CONTEXT:  SQL statement "drop rule "_RETURN" on viewname"
> PL/pgSQL function inline_code_block line 12 at EXECUTE statement
>
> and i don't want to drop the view.
>
> when i try to disable it using :
> alter table viewname disable rule _return
> it returns
> ERROR:  "viewname" is not a table
>
>
> Bypassing rule for a single query or disabling it for some time and
> then enable it will also work for me.
>
> Can it be done ?
>
> Thanks,
> Shashwat.

Hi Shashwat

I am no PG guru but I guess that, since "viewname" is a view and not a
table, you should use "alter view" and not "alter table". See:
http://www.postgresql.org/docs/9.3/static/sql-alterview.html




Re: [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

From
Shashwat Arghode
Date:
Hi Vincenzo,
There is no option like disable rule in alter view documentation.
Still after trying it, it gives same error as follows.

ERROR:  "viewname" is not a table

Thanks,
Shashwat.

On Thu, May 28, 2015 at 2:49 PM, Vincenzo Campanella <vinz65@gmail.com> wrote:
Il 28.05.2015 08:23, Shashwat Arghode ha scritto:
Hi all,
I am using postgres 9.3.4 and have an on_select rule "_return" on a view.
I want to drop or disable or bypass that rule.
Is there any way it can be done without dropping the view??

Because when i try to drop it, it returns

ERROR:  cannot drop rule _RETURN on view viewname because view viewname requires it
HINT:  You can drop viewname instead.
CONTEXT:  SQL statement "drop rule "_RETURN" on viewname"
PL/pgSQL function inline_code_block line 12 at EXECUTE statement

and i don't want to drop the view.

when i try to disable it using :
alter table viewname disable rule _return
it returns
ERROR:  "viewname" is not a table


Bypassing rule for a single query or disabling it for some time and then enable it will also work for me.

Can it be done ?

Thanks,
Shashwat.

Hi Shashwat

I am no PG guru but I guess that, since "viewname" is a view and not a table, you should use "alter view" and not "alter table". See:
http://www.postgresql.org/docs/9.3/static/sql-alterview.html



Did you mean ALTER VIEW Viewname instead of ALTER TABLE Viewname?

 

From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Shashwat Arghode
Sent: Thursday, May 28, 2015 4:45 AM
To: Vincenzo Campanella
Cc: pgsql-novice@postgresql.org; pgsql-sql@postgresql.org
Subject: Re: [SQL] [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

 

Hi Vincenzo,
There is no option like disable rule in alter view documentation.
Still after trying it, it gives same error as follows.

ERROR:  "viewname" is not a table

Thanks,

Shashwat.

 

On Thu, May 28, 2015 at 2:49 PM, Vincenzo Campanella <vinz65@gmail.com> wrote:

Il 28.05.2015 08:23, Shashwat Arghode ha scritto:

Hi all,
I am using postgres 9.3.4 and have an on_select rule "_return" on a view.
I want to drop or disable or bypass that rule.
Is there any way it can be done without dropping the view??

Because when i try to drop it, it returns

ERROR:  cannot drop rule _RETURN on view viewname because view viewname requires it
HINT:  You can drop viewname instead.
CONTEXT:  SQL statement "drop rule "_RETURN" on viewname"
PL/pgSQL function inline_code_block line 12 at EXECUTE statement

and i don't want to drop the view.

when i try to disable it using :
alter table viewname disable rule _return
it returns
ERROR:  "viewname" is not a table


Bypassing rule for a single query or disabling it for some time and then enable it will also work for me.

Can it be done ?

Thanks,
Shashwat.

 

Hi Shashwat

I am no PG guru but I guess that, since "viewname" is a view and not a table, you should use "alter view" and not "alter table". See:
http://www.postgresql.org/docs/9.3/static/sql-alterview.html

 

Re: [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

From
Shashwat Arghode
Date:
Oh yes. i should update the rule and redirect it accordingly as dropping or disabling it will leave the view non-functional.
Thanks tom and merlin.
Thanks all.

-shashwat.

On Fri, May 29, 2015 at 1:04 AM, Faisal Karim <faisalk@furniture-pro.com> wrote:

Did you mean ALTER VIEW Viewname instead of ALTER TABLE Viewname?

 

From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Shashwat Arghode
Sent: Thursday, May 28, 2015 4:45 AM
To: Vincenzo Campanella
Cc: pgsql-novice@postgresql.org; pgsql-sql@postgresql.org
Subject: Re: [SQL] [NOVICE] Drop or disable or bypass "_return" rule on select on a view.

 

Hi Vincenzo,
There is no option like disable rule in alter view documentation.
Still after trying it, it gives same error as follows.

ERROR:  "viewname" is not a table

Thanks,

Shashwat.

 

On Thu, May 28, 2015 at 2:49 PM, Vincenzo Campanella <vinz65@gmail.com> wrote:

Il 28.05.2015 08:23, Shashwat Arghode ha scritto:

Hi all,
I am using postgres 9.3.4 and have an on_select rule "_return" on a view.
I want to drop or disable or bypass that rule.
Is there any way it can be done without dropping the view??

Because when i try to drop it, it returns

ERROR:  cannot drop rule _RETURN on view viewname because view viewname requires it
HINT:  You can drop viewname instead.
CONTEXT:  SQL statement "drop rule "_RETURN" on viewname"
PL/pgSQL function inline_code_block line 12 at EXECUTE statement

and i don't want to drop the view.

when i try to disable it using :
alter table viewname disable rule _return
it returns
ERROR:  "viewname" is not a table


Bypassing rule for a single query or disabling it for some time and then enable it will also work for me.

Can it be done ?

Thanks,
Shashwat.

 

Hi Shashwat

I am no PG guru but I guess that, since "viewname" is a view and not a table, you should use "alter view" and not "alter table". See:
http://www.postgresql.org/docs/9.3/static/sql-alterview.html