Subject Fb 2.1 and TYPE OF in PSQL
Author Martijn Tonies
Hi,

I kinda raised this issue at the Firebird Conference allready, for those of
you
who weren't there or didn't care ;) ... Here's it again.

Firebird 2.1 has a new TYPE OF functionality that will allow to use the
datatype of a domain in Stored Procedure parameters and declared
variables in Procedures & Triggers. These "dependencies" will be tracked
as well. After modifying a datatype of a domain, a recompile of the
procedure would then recreate the procedure with the new datatypes.

To be able to create proper DDL statements, tools needs to know if
a domain was used as a source for the parameter datatype. The idea was
to use RDB$FIELD_SOURCE in RDB$PROCEDURE_PARAMETERS.

I have to objections against this, or perhaps just 1, depending on how you
look at it.

1) the parameter doesn't "use" the domain in full, only the datatype. So
that
means no check constraint, no NULL flag, so this would be invalid usuage
of that column.

2) if Firebird every allows full use of domains, there's no way to
distinguish
between "TYPE OF" or a real domain.


Now, if you still decide on using RDB$FIELD_SOURCE, fine by me. But
I would like to add a (minor?) ODS change then: a flag in PROC_PARAMS
that tells us tool developers that this is a "TYPE OF" construct and not a
real domain. This way, if a future version of Fb allows domains, the value
of field_source is always correct and will not change between versions
(namely:
type of versus real domain) when the flag is being added in a later version.


Comments?


Martijn Tonies
Database Workbench - tool for InterBase, Firebird, MySQL, NexusDB, Oracle &
MS SQL Server
Upscene Productions
http://www.upscene.com
My thoughts:
http://blog.upscene.com/martijn/
Database development questions? Check the forum!
http://www.databasedevelopmentforum.com