Re: [Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2021-07-20 Thread Dmitry Yemanov

20.07.2021 14:50, Mark Rotteveel пишет:
According to the Firebird Language Reference[1], the 
RDB$RELATION_FIELDS.RDB$UPDATE_FLAG signals whether a column is a 
computed column (0) or a regular column (1) (or I guess, updatable (1) 
vs not-updatable (0)).


Updatable vs non-updatable is correct.

In practice, this doesn't seem to be the case (see 


This should be a bug. Maybe an old one, with wrong RDB$UPDATE_FLAG being 
then preserved through backup-restore.


https://stackoverflow.com/questions/68451712/finding-computed-fields-in-firebird-2-5 
and https://github.com/FirebirdSQL/firebird-documentation/issues/157). 
Helen's Firebird Book lists this column as 'not used by Firebird'.


So, is this column truly not used by Firebird?


It's set as explained above by Firebird, but the engine does not use 
this information. It's intended for users.



Dmitry


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2021-07-20 Thread Mark Rotteveel
According to the Firebird Language Reference[1], the 
RDB$RELATION_FIELDS.RDB$UPDATE_FLAG signals whether a column is a 
computed column (0) or a regular column (1) (or I guess, updatable (1) 
vs not-updatable (0)). In practice, this doesn't seem to be the case 
(see 
https://stackoverflow.com/questions/68451712/finding-computed-fields-in-firebird-2-5 
and https://github.com/FirebirdSQL/firebird-documentation/issues/157). 
Helen's Firebird Book lists this column as 'not used by Firebird'.


So, is this column truly not used by Firebird?

Mark


 [1]: 
https://www.firebirdsql.org/file/documentation/html/en/refdocs/fblangref25/firebird-25-language-reference.html#fblangref-appx04-relfields



Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2012-01-03 Thread Mark Rotteveel
I am currently going over the JDBC metadata returned by Jaybird, and I 
was looking for a way to see if a column is COMPUTER BY / GENERATED 
ALWAYS AS.

I found that I should probably look at RDB$FIELDS.RDB$COMPUTED_BLR or 
RDB$COMPUTED_SOURCE for this, but I noticed that 
RDB$RELATION_FIELDS.RDB$UPDATE_FLAG is 0 for a computed column, while it 
is 1 for 'normal' fields.

What is the exact meaning of this field? Is it only 0 for computed 
columns, or also in other cases (eg views)? Both the Interbase 6 as 
Helen's book mention it is not used, but apparently it is used (or at 
least: being set).

Mark
-- 
Mark Rotteveel

--
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2012-01-03 Thread Ann Harrison
Mark,

 I am currently going over the JDBC metadata returned by Jaybird, and I
 was looking for a way to see if a column is COMPUTER BY / GENERATED
 ALWAYS AS.

 I found that I should probably look at RDB$FIELDS.RDB$COMPUTED_BLR or
 RDB$COMPUTED_SOURCE for this, but I noticed that
 RDB$RELATION_FIELDS.RDB$UPDATE_FLAG is 0 for a computed column, while it
 is 1 for 'normal' fields.

The definitive sign of a computed field is RDB$COMPUTED_BLR in either
RDB$FIELDS or RDB$DOMAINS if the field is defined through a domain.
The computed source is kept for the convenience of utilities that
recreate the DDL, but can be deleted without changing the semantics of
the field.  I wouldn't rely on the update flag which could be used in
the future for other types of fields that can't be modified.


Best regards,

Ann

--
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2012-01-03 Thread Mark Rotteveel
On 3-1-2012 22:25, Mark Rotteveel wrote:
 What is the exact meaning of this field? Is it only 0 for computed
 columns, or also in other cases (eg views)? Both the Interbase 6 as
 Helen's book mention it is not used, but apparently it is used (or at
 least: being set).

Ok, I already answered part of my question: it is also set to 0 for 
views and some columns on some system tables.

Mark
-- 
Mark Rotteveel

--
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] Meaning of RDB$RELATION_FIELDS.RDB$UPDATE_FLAG

2012-01-03 Thread Ann Harrison
On Tue, Jan 3, 2012 at 4:56 PM, Mark Rotteveel m...@lawinegevaar.nl wrote:

 The definitive sign of a computed field is RDB$COMPUTED_BLR in either
 RDB$FIELDS or RDB$DOMAINS if the field is defined through a domain

 There is no RDB$DOMAINS ...

Too many databases... indeed, it's RDB$FIELDS not system.domains.

Cheers,

Ann

--
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel