[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