New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong client version is returned by API [CORE4847] #5143
Comments
Commented by: @AlexPeshkoff Hmm.. Suppose that's something 'as designed' to be compatible with old IB versions. Number 6 definitely came from open-sourced IB6.0. |
Commented by: @aafemt gds32.dll (http://libgds.so) is supposed for backward compatibility. fbclient.dll (http://libfclient.so) is clearly Firebird-only client. Thus this ticket mention fbclient explicitly. PS: My actual problem is to tell whether multithreaded synchronization is required during API calls or not, but IMHO, returning the real client version is the best way to solve it. |
Commented by: @AlexPeshkoff http://libgds.so is symlink to http://libfbclient.so PS. I do not remember why was it decided to keep reporting IB version numbers, may be you can find something in devel archive, pre-2005 I suppose |
Commented by: @aafemt It was decided so to allow IBX show administrative components in Delphi. AFAIK, it has no point now, as IBX changed services discovering method and then was replaced with FireDAC. BTW, the library is not only copied, but binary patched as well. |
Commented by: Bjoern Reimer (bnreimer) As far as I remember it had something to do at least with IBX as the service api and some components arround was availible with a minimum client version at least in delphi ide. |
Commented by: @livius2 And this should stay as it is - but maybe new api should be created? |
Commented by: Sean Leyne (seanleyne) Perhaps v3 is the right time to drop this concern about truly legacy functionality and move forward as the differentiated product that Firebird is. |
Commented by: @dyemanov isc_* functions are intended to return the IB emulation version and I believe this should stay as is. We already tried to be "differentiated" in this regard but IBX users complained. If anyone needs the FB client version, we could created the necessary fb_* functions instead. |
Commented by: @aafemt Ok, we can put fix for isc_get_client_major_version() off till Firebid version 7. But in meantime, isc_get_cient_minor_version() could return 20, 21, 25 and 30 for Firebird 2.0, 2.1, 2.5 and 3.0 respecitively. Summary result will be 6.20, 6.21, 6.25, 6.30 that will make the API useful and leave IBX unbroken. |
Submitted by: @aafemt
Votes: 1
Results of functions isc_get_client_major_version() and isc_get_client_minor_version() don't match real client version even if they are called from fbclient library.
Test program is:
#include <stdio.h>
#include "ibase.h"
int main()
{
printf("Client version is %d.%d\n", isc_get_client_major_version(), isc_get_client_minor_version());
}
The text was updated successfully, but these errors were encountered: