Subject Re: [Firebird-Architect] Atomic DDL and Metadata Transactions.
Author Martijn Tonies
Hi Jim,

> >>>a non-standard behavior at best.
> >>>
> >>>
> >>Could you provide a reference? I wasn't able to confirm a
non-transactional
> >>nature of DDL statements in the SQL spec.
> >>
> >>
> >
> >Having spent some time in the SQL2003 spec, I haven't found any real
> >meat covering how to do a lot of the fundamental things :)
> >Some 4000 pages of toilet paper ;)
> >
> Without even looking at the spec, I can tell you that the description of
> the "create table" statement creates a table. In Firebird, "create
> table" doesn't create a table, it sets up the metadata for a table to be
> created (or not) sometime in the future. Looking to the specification
> for something that says its ok not to create the table is a lot like
> Bush's lawyer's looking though the Geneva Conventions for something that
> says that it doesn't apply to a US President who thinks he was appointed
> by God.

Oh, let's not start politics :-)

Anyway, for example, MS SQL allows you do this inside a transaction
as well. You can ROLLBACK a CREATE TABLE.

That being said,

DELETE FROM mytable

doesn't delete rows either. It deletes rows, but only for this transaction
;-)

> That said, if the feature is useful, well-defined, supportable, and
> already in use, the standard shouldn't determine whether or not it is
> implemented by Firebird.
>
> What we're trying to do here is determine whether it is useful,
> well-defined, and supportable. I think the "already in use" has been
> established. [Useful is still in play because I still think that
> alternative features could provide better solutions to the problem
> currently solved by metadating without commitment.]

IMO, it's in use and useful. Please do keep it!

With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server.
Upscene Productions
http://www.upscene.com