Subject Re: [Firebird-Architect] Multi-level name space
Author Jim Starkey
Alexandre Benson Smith wrote:

>I got the reasons, no problem here.
>
>The point I was talking about is how to (if there is a way) change the
>system tables names, create a system schema, and maintain backwards
>compatibility with previous clients.
>
> From what I read on this discussion, the majority of people like a
>column for schema name and another for the table name on the relations
>table. You argued about backward compatiblity, what I suggested is a way
>that it could be achieved (at least I see this way).
>
>The old clients will just see a "compound" table name trough the view
>rdb$relations, new clients will use the real system tables on the
>"System" schema.
>
>Why views doesn't solve this point ?
>
>
>
>
If it were just a question of display, views might be a good solution.
However, do remember that Firebird system tables are active -- insert
into RDB$RELATIONS and poof! the table appears. If the system tables
were replaced with views, we would have to define triggers for update
that map into a new set of system tables. We would also have to rewrite
vast quantities of substantially ugly code that handles system table
updates against a whole new system of system tables. It's that rewrite
that I want to avoid. I would rather we spent the effort into
completing the DDL implementation to support all appropriate
modifications then deprecate the active system tables than rewriting old
code.

Implementing namespaces with concatenation isn't ideal, but it is low
overhead, simple, and effective.


--

Jim Starkey
Netfrastructure, Inc.
978 526-1376