Re: Why Oracle does not allow rollback of DDL statements?

From: Bob Jones <email_at_me.not>
Date: Mon, 10 Nov 2008 20:51:46 -0600
Message-ID: <5r6Sk.7954$YU2.6401@nlpi066.nbdc.sbc.com>


> That's the first I hear about that. Can you point to any docs explaining
> the behavior you imply? I'm also told that SQL Server (like DB2) has
> transactional DDL. Even TRUNCATE table is transactional.
>

Transactional TRUNCATE? Why not use DELETE?

> Oracle has to deal with that today!
> No matter how you call it the CREATE statement still needs to be ATMIC.
> And atomic implies that there is a statement level savepoint. If any of
> the work against the db schema fails for any reason teh DDL statement
> needs to be rolled back.

Why do you think the "CREATE statement" is not "ATMIC"? Have you ever seen a partially created table? I haven't.

> And that CREATE INDEX statement must not be permitted until the CREATE
> TABLE statement successfully COMPLETEs.
> What if someone else tries to create a table with the same name? If
> someone else drops the original table conflicting with the table I'm
> trying to create.

Correct, you cannot create an index on a table that does not exist.

> Obviously the table also cannot be used by anyone until that commit
> happens.
> Call it a lock or call it a latch, doesn't matter.

Yes, you cannot use a table that is not yet created. Sorry I am not seeing what the issue is here.

> Oracle has to sort out timing today. The only difference is that it has a
> statement level view on things rather than a transaction level view.
>

What? Now you really lost me. Received on Mon Nov 10 2008 - 20:51:46 CST

Original text of this message