Subject Re: [firebird-support] Re: Doc/spec for Gbak backup format
Author Ann W. Harrison
At 04:59 AM 5/30/2004, Frederic G. MARAND wrote:

>Thanks for the answer, but it only marginally answers the question: I have
>noticed from reading the code that XDR (and luckily I already used it years
>ago) is used for the transformation format, but this only explains the
>difference between the transportable format and the normal format. I had
>thought there was more to that format difference, and reading the code
>showed this use of XDR.

The difference between transportable and other in gbak, as
in the remote client and server, is the use of XDR to create
a machine independent format. The non-transportable format
stores data in the backup file according to the data
representation and alignment rules of the local system.

The basic gbak file consists of a header, description of
the global database characteristics, table definitions, then
data. The format is generally tagged fields where the tag
is defined in burp.h. In the case of variable length data,
the format is "clumplet", which is a tag followed by a
length, followed by that many bytes. In the file backup.e,
look at the write_xxx functions to see how the data is acquired
and represented.

Borland never had documentation on the gbak format that
I know of. There really isn't much design documentation
except some written to describe a proposed feature. Since
backup is ancient, it's protocol was considered self-documenting.
And completely obvious to the designer...


Cheers,


Ann