Booleans - Why in Postgres and not in Oracle or Mysql?

Started by CSNalmost 21 years ago5 messagesgeneral
Jump to latest
#1CSN
cool_screen_name90001@yahoo.com

I like Postgres's boolean type - why do you suppose
neither Mysql nor Oracle has bothered to implement it?
Booleans are in the SQL-99 spec.

CSN

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

#2Dann Corbit
DCorbit@connx.com
In reply to: CSN (#1)
Re: Booleans - Why in Postgres and not in Oracle or Mysql?

-----Original Message-----
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-
owner@postgresql.org] On Behalf Of CSN
Sent: Thursday, May 05, 2005 11:57 AM
To: pgsql-general@postgresql.org
Subject: [GENERAL] Booleans - Why in Postgres and not in Oracle or

Mysql?

I like Postgres's boolean type -

Me too.

why do you suppose
neither Mysql nor Oracle has bothered to implement it?

Probably they just create a domain using a char which can take on two
values (e.g. 't'/'f' or 1/0). Oracle 10 has a bit data type (which is a
boolean for all intents and purposes):
B.1 BIGINT
B.2 BINARY
B.3 BIT
B.4 BLOB
B.5 CHAR
B.6 CLOB
B.7 DATE
B.8 DECIMAL
B.9 DOUBLE PRECISION
B.10 FLOAT
B.11 INTEGER
B.12 LONG
B.13 LONG RAW
B.14 LONG VARBINARY
B.15 LONG VARCHAR
B.16 NUMBER
B.17 NUMERIC
B.18 RAW
B.19 REAL
B.20 ROWID
B.21 SMALLINT
B.22 TIME
B.23 TIMESTAMP
B.24 TINYINT
B.25 VARBINARY
B.26 VARCHAR
B.27 VARCHAR2

MySql has a partial Boolean implementation. From
http://dev.mysql.com/doc/mysql/en/numeric-type-overview.html:

BOOL , BOOLEAN

These are synonyms for TINYINT(1). The BOOLEAN synonym was added in
MySQL 4.1.0. A value of zero is considered false. Non-zero values are
considered true.

In the future, full boolean type handling will be introduced in
accordance with standard SQL.

Booleans are in the SQL-99 spec.

Probably, MySQL and Oracle will have Boolean types eventually with full
compatibility to the standard.

CSN

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

---------------------------(end of

broadcast)---------------------------

TIP 9: the planner will ignore your desire to choose an index scan if

your

Show quoted text

joining column's datatypes do not match

#3CSN
cool_screen_name90001@yahoo.com
In reply to: Dann Corbit (#2)
Re: Booleans - Why in Postgres and not in Oracle or Mysql?
--- Dann Corbit <DCorbit@connx.com> wrote:

why do you suppose
neither Mysql nor Oracle has bothered to implement

it?

Probably they just create a domain using a char
which can take on two
values (e.g. 't'/'f' or 1/0). Oracle 10 has a bit
data type (which is a
boolean for all intents and purposes):

Could a bit handle NULL's though?

CSN

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

#4Peter Eisentraut
peter_e@gmx.net
In reply to: CSN (#1)
Re: Booleans - Why in Postgres and not in Oracle or Mysql?

CSN wrote:

I like Postgres's boolean type - why do you suppose
neither Mysql nor Oracle has bothered to implement it?
Booleans are in the SQL-99 spec.

Fear of breaking old applications

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#5Robert Treat
xzilla@users.sourceforge.net
In reply to: CSN (#3)
Re: Booleans - Why in Postgres and not in Oracle or Mysql?

On Thu, 2005-05-05 at 15:28, CSN wrote:

--- Dann Corbit <DCorbit@connx.com> wrote:

why do you suppose
neither Mysql nor Oracle has bothered to implement

it?

Probably they just create a domain using a char
which can take on two
values (e.g. 't'/'f' or 1/0). Oracle 10 has a bit
data type (which is a
boolean for all intents and purposes):

Could a bit handle NULL's though?

ISTR there is some debate on whether Booleans should allow NULL and
thats why the boolean type is still in the extended set of sql spec and
not core.

Inceidentally MySQL's boolean is really scary... it's not just than 0 =
false and 1 = true, its 0 = false and (n >= 1) is true. IMHO that
sounds like a recipe for creating subtle bugs.

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL