FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.26k stars 217 forks source link

new Client 2.5.8 to server 2.5.7 server caused problem [CORE5709] #5975

Open firebird-automations opened 6 years ago

firebird-automations commented 6 years ago

Submitted by: Tommi Prami (mwaltari)

We accidentally updated 2.5.8 client to environment where is older 2.5.7 server.

With field defined as

CREATE DOMAIN CMN_BOOLEAN AS SMALLINT CHECK (VALUE IS NULL OR VALUE IN (0, 1));

Now it crashes in our Delphi client application (Using IbDAC from DevArt) that field can't be accessed AsBoolean. (Just fixed from reading it AsInteger to AsBoolean to work with new client and server and with pure 2.5.7 environment)

This might be IbDAC issue, or Firebird issue.

Just filed this ticket to Firebird team can check is there some difference reading same field with 2.5.7 or 2.5.8 client when server is 2.5.7.

I have feeling that using mismatched fbclient.dll have not been much of a problem in past versions, (If it is same major version at least)

-Tee-

firebird-automations commented 6 years ago

Commented by: Tommi Prami (mwaltari)

Seems that this is caused by nested Query in 2.5.7

SELECT BOOLFIELD ... FROM ( ... SELECT DS2.BOOLFIELD INNER JOIN TABLE2 DS2 ON ..

UNION ALL

... SELECT DS2.BOOLFIELD INNER JOIN TABLE2 DS2 ON .. )

So the CMN_BOOLEAN domain don't got passed trough some how.

If we put that field as Inner join at the outer SELECT it works just fine.