Simulating BOOLEAN in Firebird

No BOOLEAN field in Firebird?

There is no built-in boolean field, but you have several options:

1. use char(1)
2. use smallint
3. use domains

Domains are probably the best solution. You can create domain like this:

CREATE DOMAIN BOOLEAN
AS SMALLINT
CHECK (value is null or value in (0, 1));

Or

CREATE DOMAIN BOOLEANO AS
CHAR
(3) NOT NULL
CHECK
(VALUE IN ('YES', 'yes', 'NO', 'no'));

Later in table definition you can refer to it as a regular datatype.

CREATE TABLE t1
(
C1 VARCHAR(10),
B1 BOOLEAN,
B2 BOOLEAN NOT NULL
);