Subject | Re: [firebird-support] RDB$DESCRIPTION missing |
---|---|
Author | Helen Borrie |
Post date | 2008-03-06T02:36:57Z |
At 01:00 PM 6/03/2008, you wrote:
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
>All,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.
>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.
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