Gavin Sherry wrote:
> Hi all,
>
> I'm thinking that temporary views should be pretty trivial to
> implement.
>
> * Allow temporary views
>
> This should be as simple as modifying gram.y (to set
> ViewStmt->view->istemp) and some logic in RemoveTempRelations() to remove
> the view's rule
Yep, pretty simple.
> * Require view using temporary tables to be temporary views
>
> This is the non-trivial part. If you are creating a view on just a
> temporary table there's no problem. But what happens when do the
> following?
>
> CREATE VIEW abc AS select * from tab1,tab2,temp_tab3 ...
>
> SQL99 avoids this with syntax rule 6 of 11.21 <view definition>
>
> No <table reference> generally contained in the <query expression> shall
> identify any declared local temporary table.
>
> There are a few ways it could be implemented:
>
> 1) SQL99
> 2) Views whose <query epression> contains one or more <table references>
> to temporary tables are created as temporary views
> 3) Views whose <query epression> contains one or more <table references>
> to temporary tables must be explicitly include the TEMP[ORARY] syntax.
The idea is that if the temp table goes away, we don't want the view
continuing to exist. I think if there are any temp tables in the view,
the view _has_ to be specified by the user as temporary, or we throw an
error telling them it has to be temporary.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073