Subject | Re: [firebird-support] Re: Record versioning/timestamping |
---|---|
Author | David Johnson |
Post date | 2004-12-22T13:27:36Z |
Is there a standard and portable C type? Even the lowly int is not
fully portable across all platforms.
One mechanism used by DB2 for transporting timestamp information is the
char *. If I pass a string in the target DBMS instance's date time
format it will be translated by the DB2 engine. Db2 supports 6 places
of sub-second precision in timestamps. :o)
Sreiously though ...
The current GDS32.dll (or whatever its current name is) explicitly
clears out the fractional seconds bytes of the time structure before
submitting them to the next layer for action. On the surface, it
appeared to me that dropping the masking code from the GDS32 might be
sufficient to allow fractional seconds to be stored. Once stored, it
appeared to me, on the surface, that retrieval did not impose a mask on
the time structure so times stored to 1/10000 second precision would be
returned with their correct values.
It has been over a year since I actually looked at this. A real
masochist can look for my notes on the archives. It would probably be
more useful to perform an exhaustive search of the engine's source code
an present a list of places where changes would be needed to allow the
interfaces to support the full extent of the DBMS's actual storage.
Changes to this structure must not break existing applications.
I can't guarantee that I will have that kind of time over the next few
weeks, but if I do I may get started. It appears that more than just I
are interested in overcoming this limitation. I presume Firebird will
compile with GCC?
fully portable across all platforms.
One mechanism used by DB2 for transporting timestamp information is the
char *. If I pass a string in the target DBMS instance's date time
format it will be translated by the DB2 engine. Db2 supports 6 places
of sub-second precision in timestamps. :o)
Sreiously though ...
The current GDS32.dll (or whatever its current name is) explicitly
clears out the fractional seconds bytes of the time structure before
submitting them to the next layer for action. On the surface, it
appeared to me that dropping the masking code from the GDS32 might be
sufficient to allow fractional seconds to be stored. Once stored, it
appeared to me, on the surface, that retrieval did not impose a mask on
the time structure so times stored to 1/10000 second precision would be
returned with their correct values.
It has been over a year since I actually looked at this. A real
masochist can look for my notes on the archives. It would probably be
more useful to perform an exhaustive search of the engine's source code
an present a list of places where changes would be needed to allow the
interfaces to support the full extent of the DBMS's actual storage.
Changes to this structure must not break existing applications.
I can't guarantee that I will have that kind of time over the next few
weeks, but if I do I may get started. It appears that more than just I
are interested in overcoming this limitation. I presume Firebird will
compile with GCC?
On Tue, 2004-12-21 at 23:44, Dimitry Sibiryakov wrote:
>
< ... snip ...>
> No. Is there a standard and portable C type, supporting
> milliseconds?
> --
> SY, Dimitry Sibiryakov.
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>