I want numeric values returned as LEGACY, i.e. BIGINT instead of INT128.
However SET BIND converts only NUMERIC or DECIMAL, not NUMERIC with subtype 0.
(I tried with FB4 Beta 2 and snapshot Firebird-4.0.0.2126)
I am not sure whether this is a bug or I am just using SET BIND incorrectly?

Here is example - first SELECT returns all columns with INT128 as base type,
second SELECT will return BIGINTs, except columns CC and MM (they will remain INT128).

CREATE TABLE T(
  NN NUMERIC(34,2),
  DD DECIMAL(34,2),
  CC COMPUTED BY (NN*DD));
INSERT INTO T(NN,DD) VALUES(2,3);
COMMIT;

SET SQLDA_DISPLAY ON;

SELECT NN, DD, CC, CAST(123.456 AS NUMERIC(34,2)) AS NN2, 5.5*6.6 AS MM FROM T;

SET BIND OF NUMERIC TO LEGACY;  -- or SET BIND OF NUMERIC(34) TO LEGACY;

SELECT NN, DD, CC, CAST(123.456 AS NUMERIC(34,2)) AS NN2, 5.5*6.6 AS MM FROM T;



Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to