-the purpose of yachts.gdb/metadata.gdb- 
metadata_gdb.txt version 1.0.4 last revised Dec 27, 2000

The latest version of this file is available at
http://sourceforge.net/docman/display_doc.php?docid=345&group_id=9028

Please send comments and corrections to
rfm@cruzers.com or the ib-build mailing list at mers.com
the ib-build mailing list is also available as a newsgroup at
news.mers.com:mers.interbase.build


The build process uses a database, which is refered to in the .e files
as yachts.gdb, yachts.lnk etc. gpre expects to be able to connect
to this database when processing the .e files. In the win32 build 
process, this database is actually created as metatdata.gdb (which
is a more informative name)

Historically on unix, each build directory that needed it had a
symbolic link to yachts.gdb on a remote server. On windows,
this is obviously not possible, so two batch files (expand_dbs.bat
and compress_dbs.bat) use 'sed' to expand the database name in
the .e file to a complete path (optionally including a remote
server name) before gpre is run. 

The purpose of yachts is to allow gpre to know about the system
table structure of interbase databases. This means that yachts
can normally be an ordinary empty database (the reason for the name
yachts is that originally the yachts example from 3.x was used)
(actually, yachts also has a couple of 'system' tables that
are specific to QLI, so it can't be just any database)

Anyway, during development, yachts can become a very strange database,
because it needs to contain the system relations for the current
ODS and the NEXT one. Thus, if a system relation is added for 7.x,
the yachts.gdb for 7.x will have to include the relation, possibly
>before< 7.x is built. So if you are using a 6.x server to build
a 7.x server, you would need to create your yachts.gdb, and add a
normal table with the same name as your new system table. If you
try to back up and restore this db with 7.x (after you've got 
it built) you will fail (on the restore) because it has a user
table with the same name as a system table.

Additionally, if gbak must understand system relations that existed
only in an earlier release, then yachts would have to have those
as well. Currently this is not the case.

Hope that helps everyone understand the purpose of yachts.
