If you have CREATE [TEMPORARY] TABLE syntax,  i.e. TEMPORARY being the
keyword to determine the type of table, would not the syntax ALTER
[TEMPORARY] TABLE satisfy the needs of altering a base table or a temporary
table as well as simply error handling.

I've not used the TEMPORARY table name ontop of a base table name, or ontop
of a Cluster table (one of those lovely quiz questions), but I see no reason
why you would want to restrict temporary names not being the same as base
tables, other then a best practice for sane object naming.

Having # as a reserved and invalid character I have no problem with.

On Thu, Mar 25, 2010 at 3:56 PM, Roland Bouman <[email protected]>wrote:

> Hi Brian, All,
>
> I can't seem to find anything in the (2003) standard that indicates a
> temporary table can in fact have the same name as an existing base
> table or view.
> Perhaps I am not looking in the right place, but that would solve it:
> simply don't allow creation of temporary tables if such a table exists
> already in that schema.
>
> For the ones that you create under the hood, you could either create
> them in a special schema reserved for that purpose, or otherwise
> prefix them with a reserved prefix.
>
> (I'd still like to learn where the standard says you can mask an
> existing table with a temporary one - genuinely interested, I just
> can't seem to find it)
>
> On Thu, Mar 25, 2010 at 11:06 AM, Brian Aker <[email protected]> wrote:
> > Hi!
> >
> > You can have a table which is both a temporary and a standard table in
> the
> > same schema. Awesome... there are a lot of good reasons for this.
> >
> > You cannot though do an alter table on the standard table if the
> temporary
> > table is around (which I personally think is bad).
> >
> > For error messages? You don't know what the error message was on... sure
> if
> > you are sitting there you might know that it was the temp table (since a
> > temporary table always gets referenced before the standard table), but in
> > error messages? There is no way to know.
> >
> > We internally have three basic forms of tables. Temporary, Standard, and
> > "Internal". We use internal for results/alter/etc. Those come up in error
> > messages from time to time, but since the names are gibberish it is
> pretty
> > simple to know when they are at fault (though not perfect).
> >
> > We have internally "temporary" reserved as a schema for our own use (same
> > with data_dictionary and information_schema). Temporary you can't see
> > though. Since "internal" tables live there, I've been having error
> messages
> > write out as "internal.#sql34324" as the sql path for error messages.
> Right
> > now temporary and standard are the same... but I would like to change
> that.
> >
> > SqlServer uses a # symbol to represent those tables. I think we should do
> > the same for error messages. In fact, I think we should reserve the "#"
> > character for our own internal use and not allow its usage as the first
> > character.
> >
> > Thoughts? I want some bit of difference in the names in the end. Trying
> to
> > figure out errors when I don't know if it was a transient table or not is
> a
> > bit of a pain.
> >
> > Cheers,
> >  -Brian
> >
> >
> > _______________________________________________
> > Mailing list: 
> > https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> > Post to     : [email protected]
> > Unsubscribe : 
> > https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> > More help   : https://help.launchpad.net/ListHelp
> >
>
>
>
> --
> Roland Bouman
> http://rpbouman.blogspot.com/
>
> Author of "Pentaho Solutions: Business Intelligence and Data
> Warehousing with Pentaho and MySQL",
> http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470484322.html
>
> _______________________________________________
> Mailing list: 
> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> Post to     : [email protected]
> Unsubscribe : 
> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> More help   : https://help.launchpad.net/ListHelp
>
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to