Subject Re: [firebird-support] Applying DDL sentences while others online.
Author unordained
---------- Original Message -----------
From: Aldo Caruso <aldo.caruso@...>
> Hello,
>
> I've restructured a table ( added a field ) while another
> connection was still active and selecting from that table.
> Is there a possibility of data corruption ? Should I have to
> shutdown the database before applying any DDL sentence ?
>
> Thanks,
> Aldo Caruso
------- End of Original Message -------

Having done the same myself, I've not seen any such corruption.

AFAIK, internally, Firebird versions changes to tables, which allows it to add/
drop a field without touching every record of the table. Concurrent transactions
could continue to see (and modify) the table as it was when they started.

See http://tech.groups.yahoo.com/group/firebird-support/message/51699 for more
discussion, but no hard documentation. Of note: there's a limit to how many times
you can change a table definition before you need to backup/restore.

Also see http://www.ibexpert.info/ibe/index.php?n=Doc.StructureOfADataPage and
search for "rhd_format", for documentation. Of note: old records get updated to
the newest format when visited, so adding a field may not be expensive, but you
may incur the cost of relocated records (if there's not enough room on the
current page) later?

-Philip