There are two parts of the issue :
a) make engine to use 64-bit integers for statistics
b) teach tools (isql and qli) to work with 64-bit values
a) we need to change internals of AtomicCounter to use 64-bit values
On Win64 we will use InterlockedXXX64 functions while on Win32 it is enough to continue usage of InterlockedXXX
For POSIX platforms i already asked Alex about its implementation of AtomicCounter
b) to report statistics, isql\qli used perf_xxx functions imported from fbclient. This functions works with
"struct perf" which used platform-dependent "long" data type. As we want 32-bit isql to work correctly
with 64-bit server we need to always use 64-bit values within "perf". To not change (not so) public API, i
will introduce new "struct perf64" and perf64_xxx functions and change isql and qli to use this new API.
Note, this will make isql and qli not compatible with older fbclient. This is not a first time, so i see no problem there.
Vlad Khorsun added a comment - 09/Sep/09 12:04 AM There are two parts of the issue :
a) make engine to use 64-bit integers for statistics
b) teach tools (isql and qli) to work with 64-bit values
a) we need to change internals of AtomicCounter to use 64-bit values
On Win64 we will use InterlockedXXX64 functions while on Win32 it is enough to continue usage of InterlockedXXX
For POSIX platforms i already asked Alex about its implementation of AtomicCounter
b) to report statistics, isql\qli used perf_xxx functions imported from fbclient. This functions works with
"struct perf" which used platform-dependent "long" data type. As we want 32-bit isql to work correctly
with 64-bit server we need to always use 64-bit values within "perf". To not change (not so) public API, i
will introduce new "struct perf64" and perf64_xxx functions and change isql and qli to use this new API.
Note, this will make isql and qli not compatible with older fbclient. This is not a first time, so i see no problem there.
a) make engine to use 64-bit integers for statistics
b) teach tools (isql and qli) to work with 64-bit values
a) we need to change internals of AtomicCounter to use 64-bit values
On Win64 we will use InterlockedXXX64 functions while on Win32 it is enough to continue usage of InterlockedXXX
For POSIX platforms i already asked Alex about its implementation of AtomicCounter
b) to report statistics, isql\qli used perf_xxx functions imported from fbclient. This functions works with
"struct perf" which used platform-dependent "long" data type. As we want 32-bit isql to work correctly
with 64-bit server we need to always use 64-bit values within "perf". To not change (not so) public API, i
will introduce new "struct perf64" and perf64_xxx functions and change isql and qli to use this new API.
Note, this will make isql and qli not compatible with older fbclient. This is not a first time, so i see no problem there.