Subject Re: [firebird-support] RDB$DESCRIPTION missing
Author Helen Borrie
At 01:00 PM 6/03/2008, you wrote:
>All,
>In a number of different Firebird 1.5.3 databases, on different hosts, I've recently noticed that all RDB$DESCRIPTION values in RDB$RELATIONS and RDB$RELATION_FIELDS tables have been lost. As an experiment, I updated those system tables directly for one database, and could query the new values, so it is not an issue of being unable to view data in those BLOB fields; they were null before the update.
>Is there anything that might cause that loss of data in Firebird 1.5.3 databases that are otherwise functioning normally? Thanks for any insights.

It's not "loss of data", but loss of illicit changes to metadata. User-entered values in RDB$DESCRIPTION fields (or any other fields) won't survive backup/restore, and that is by design.

Obviously, from a database integrity POV, this is the right and proper way to protect a database from stupidity. However, from a self-documentation POV, there's not really any harm to be done by making RDB$DESCRIPTION data changes persistent. So, from Fb 2.0 onwards, you have to ability to enter a string into an RDB$DESCRIPTION field and it will become persistent. It is achieved by way of the new DDL statement COMMENT:

COMMENT ON COLUMN tblviewname.fieldname IS {'txt'|NULL};

AFAIK, the rule about doing your own custom changes to system tables via direct DML still applies and won't ever change.

./heLen