I just began to learn rules with 6.5 and notice:
test=> \dt
Database    = test
 +------------------+----------------------------------+----------+
 |  Owner           |             Relation             |   Type   |
 +------------------+----------------------------------+----------+
 | megera           | access_log                       | table    |
 | megera           | hits                             | table    |
 | megera           | junk_qwerty                      | table    |
 +------------------+----------------------------------+----------+

test=>  create rule log_hits as on update to hits  do instead insert into hits values ( NEW.msg_id, 1);
CREATE
test=> \dt
Database    = test
 +------------------+----------------------------------+----------+
 |  Owner           |             Relation             |   Type   |
 +------------------+----------------------------------+----------+
 | megera           | access_log                       | table    |
 | megera           | hits                             | view?    |
 | megera           | junk_qwerty                      | table    |
 +------------------+----------------------------------+----------+

Table hits now becomes view ? 


	Regards,

		Oleg

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


Sun, 11 Jul 1999 21:27:22 +0400 (MSD)
Oleg Bartunov <oleg@sai.msu.su>
create rule changes table to view ?
Can someone comment on this?

> I just began to learn rules with 6.5 and notice:
> test=> \dt
> Database    = test
>  +------------------+----------------------------------+----------+
>  |  Owner           |             Relation             |   Type   |
>  +------------------+----------------------------------+----------+
>  | megera           | access_log                       | table    |
>  | megera           | hits                             | table    |
>  | megera           | junk_qwerty                      | table    |
>  +------------------+----------------------------------+----------+
> 
> test=>  create rule log_hits as on update to hits  do instead insert into hits values ( NEW.msg_id, 1);
> CREATE
> test=> \dt
> Database    = test
>  +------------------+----------------------------------+----------+
>  |  Owner           |             Relation             |   Type   |
>  +------------------+----------------------------------+----------+
>  | megera           | access_log                       | table    |
>  | megera           | hits                             | view?    |
>  | megera           | junk_qwerty                      | table    |
>  +------------------+----------------------------------+----------+
> 
> Table hits now becomes view ? 
> 
> 
> 	Regards,
> 
> 		Oleg
> 
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
> 
> 
> 


-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Thu, 23 Sep 1999 13:27:11 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] create rule changes table to view ?
I have noticed and lived with this problem for quite a while.

There's nothing in pg_class that tells a table from a view, they're both
"relations". Since a view is implemented as in effect an empty table with
on select rules on it, psql thinks every table with a rule on it is a
view. This is just the output, nothing on the table changes.

A fix would be to display both tables and views as "relation". As far as I
know there is now 100% deterministic way to tell a table from a view. I
think one fine day Jan is going to change that but for now we don't have
to worry about it.

Peter

On Sep 23, Bruce Momjian mentioned:

> Can someone comment on this?
> 
> > I just began to learn rules with 6.5 and notice:
> > test=> \dt
> > Database    = test
> >  +------------------+----------------------------------+----------+
> >  |  Owner           |             Relation             |   Type   |
> >  +------------------+----------------------------------+----------+
> >  | megera           | access_log                       | table    |
> >  | megera           | hits                             | table    |
> >  | megera           | junk_qwerty                      | table    |
> >  +------------------+----------------------------------+----------+
> > 
> > test=>  create rule log_hits as on update to hits  do instead insert into hits values ( NEW.msg_id, 1);
> > CREATE
> > test=> \dt
> > Database    = test
> >  +------------------+----------------------------------+----------+
> >  |  Owner           |             Relation             |   Type   |
> >  +------------------+----------------------------------+----------+
> >  | megera           | access_log                       | table    |
> >  | megera           | hits                             | view?    |
> >  | megera           | junk_qwerty                      | table    |
> >  +------------------+----------------------------------+----------+
> > 
> > Table hits now becomes view ? 
> > 
> > 
> > 	Regards,
> > 
> > 		Oleg
> > 
> > _____________________________________________________________
> > Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> > Sternberg Astronomical Institute, Moscow University (Russia)
> > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> > phone: +007(095)939-16-83, +007(095)939-23-83
> > 
> > 
> > 
> 
> 
> 

-- 
Peter Eisentraut - peter_e@gmx.net
http://yi.org/peter-e



Fri, 24 Sep 1999 12:37:24 +0200 (CEST)
Peter Eisentraut <peter_e@gmx.net>
Re: [HACKERS] create rule changes table to view ?


Bruce Momjian ha scritto:

> Can someone comment on this?

This an old question.
psql suppose that table "test" is a view because it checks for  pg_class.relhasrules and it prints "view?"
if the value is TRUE and the value is if there's a rule for the table.
The only way to distinguish a table from a view is the pg_get_viewdef.

Some time ago I suggested to use  pg_get_viewdef('tablename') to check for views
to print "view or table" instead of "view?".
I made a patch to my psql and it now recognize views perfectly and I can display
only tables using \d and/or only views using \v

Comments.


>
>
> > I just began to learn rules with 6.5 and notice:
> > test=> \dt
> > Database    = test
> >  +------------------+----------------------------------+----------+
> >  |  Owner           |             Relation             |   Type   |
> >  +------------------+----------------------------------+----------+
> >  | megera           | access_log                       | table    |
> >  | megera           | hits                             | table    |
> >  | megera           | junk_qwerty                      | table    |
> >  +------------------+----------------------------------+----------+
> >
> > test=>  create rule log_hits as on update to hits  do instead insert into hits values ( NEW.msg_id, 1);
> > CREATE
> > test=> \dt
> > Database    = test
> >  +------------------+----------------------------------+----------+
> >  |  Owner           |             Relation             |   Type   |
> >  +------------------+----------------------------------+----------+
> >  | megera           | access_log                       | table    |
> >  | megera           | hits                             | view?    |
> >  | megera           | junk_qwerty                      | table    |
> >  +------------------+----------------------------------+----------+
> >
> > Table hits now becomes view ?
> >
> >
> >       Regards,
> >
> >               Oleg
> >
> > _____________________________________________________________
> > Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> > Sternberg Astronomical Institute, Moscow University (Russia)
> > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
> > phone: +007(095)939-16-83, +007(095)939-23-83
> >
> >
> >
>
> --
>   Bruce Momjian                        |  http://www.op.net/~candle
>   maillist@candle.pha.pa.us            |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
>
> ************


Fri, 24 Sep 1999 15:19:52 +0200
=?iso-8859-1?Q?Jos=E9?= Soares <jose@sferacarta.com>
Re: [HACKERS] create rule changes table to view ?
Peter Eisentraut wrote:

> A fix would be to display both tables and views as "relation". As far as I
> know there is now 100% deterministic way to tell a table from a view. I
> think one fine day Jan is going to change that but for now we don't have
> to worry about it.

    There is currently a 100% failsafe way.

    Actually,  rules  ON  SELECT  are totally restricted to rules
    that are INSTEAD, return  a  targetlist  that's  exactly  the
    relations  (views) schema and there could only be one single-
    action rule on the SELECT event. These checks  are  performed
    during CREATE RULE.

    In short: If there's a rule ON SELECT, then the relation MUST
    BE A VIEW.

    The detail psql is doing wrong is that it treats any rule  as
    if  it  is  indicating  a view. It must look for SELECT rules
    only.

    And I'm not planning to take out this restriction again.


Jan


--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#========================================= wieck@debis.com (Jan Wieck) #



Sat, 25 Sep 1999 15:01:17 +0200 (MET DST)
wieck@debis.com (Jan Wieck)
Re: [HACKERS] create rule changes table to view ?
> I have noticed and lived with this problem for quite a while.
> 
> There's nothing in pg_class that tells a table from a view, they're both
> "relations". Since a view is implemented as in effect an empty table with
> on select rules on it, psql thinks every table with a rule on it is a
> view. This is just the output, nothing on the table changes.
> 
> A fix would be to display both tables and views as "relation". As far as I
> know there is now 100% deterministic way to tell a table from a view. I
> think one fine day Jan is going to change that but for now we don't have
> to worry about it.

OK.  Nothing added to TODO list.


-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Sun, 26 Sep 1999 20:08:56 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] create rule changes table to view ?