[firebase-br] bug?

Maycon Ferraça maycon em nucleosistemas.com.br
Qua Maio 17 09:42:13 -03 2006


--------------------------------
-- FB Version: Firebird 2.0 RC1
-- OS: Windows 2000 SP4
-- Tool: IB Expert 2005.09.25
--------------------------------

------------------------------------
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
CREATE DATABASE 'C:\test.fdb' USER 'SYSDBA' PASSWORD 'masterkey' 
PAGE_SIZE 8192 DEFAULT CHARACTER SET ISO8859_1;

------------------------------------
CREATE TABLE A (
     CODA  INTEGER NOT NULL,
     DES   VARCHAR(80) CHARACTER SET ISO8859_1
);

CREATE TABLE B (
     CODB  INTEGER NOT NULL,
     CODA  INTEGER,
     DES   VARCHAR(80) CHARACTER SET ISO8859_1
);

INSERT INTO A (CODA, DES) VALUES (1, '1');
INSERT INTO A (CODA, DES) VALUES (2, '2');
INSERT INTO A (CODA, DES) VALUES (3, '3');
INSERT INTO A (CODA, DES) VALUES (4, '4');
INSERT INTO A (CODA, DES) VALUES (5, '5');
INSERT INTO A (CODA, DES) VALUES (6, '6');
INSERT INTO A (CODA, DES) VALUES (7, '7');
INSERT INTO A (CODA, DES) VALUES (8, '8');
INSERT INTO A (CODA, DES) VALUES (9, '9');
COMMIT WORK;

INSERT INTO B (CODB, CODA, DES) VALUES (1, 9, '1 - 9');
COMMIT WORK;

------------------------------------
ALTER TABLE A ADD PRIMARY KEY (CODA);
ALTER TABLE B ADD PRIMARY KEY (CODB);

------------------------------------
ALTER TABLE B ADD CONSTRAINT FK_A FOREIGN KEY (CODA) REFERENCES A (CODA);

------------------------------------
-- Resulta uma linha (resultado certo!)
------------------------------------
SELECT * FROM A
WHERE
A.CODA = ALL(SELECT 9 FROM B);

------------------------------------
-- Resulta mais de uma linha (resultado errado!)
------------------------------------
SELECT * FROM A
WHERE
A.CODA = ALL(SELECT CODA FROM B);

------------------------------------
-- O resultado das duas sub-consultas são iguais
------------------------------------
SELECT 9 FROM B;
SELECT CODA FROM B;





Mais detalhes sobre a lista de discussão lista