Thread
-
boolean over char(1)
Thomas T. Thai <tom@minnesota.com> — 2003-01-03T19:58:46Z
Is there any advantages of using datatype boolean over char(1)? If there isn't I think char(1) is more portable across other DBM?
-
Re: boolean over char(1)
Tom Lane <tgl@sss.pgh.pa.us> — 2003-01-03T21:27:21Z
"Thomas T. Thai" <tom@minnesota.com> writes: > Is there any advantages of using datatype boolean over char(1)? boolean fits in 1 byte; char(1) requires 5 bytes (maybe more, depending on alignment considerations). boolean will be considerably faster to operate on, being pass-by-value. char(1) will happily accept values that don't correspond to booleans (eg, if you use 't' and 'f' to represent booleans in a char(1), what will you do with 'y' or 'z'?) You could possibly fix that with a check constraint, but that slows things down still more. boolean is, um, boolean: it behaves as expected in boolean expressions. You can't do AND, OR, NOT directly on chars. > If there isn't I think char(1) is more portable across other DBM? The boolean datatype is standard in SQL99. regards, tom lane
-
Re: boolean over char(1)
Bruce Momjian <pgman@candle.pha.pa.us> — 2003-01-04T00:50:33Z
Also, we do support "char", which is one byte. You need to specify the quotes when creating the column. --------------------------------------------------------------------------- Tom Lane wrote: > "Thomas T. Thai" <tom@minnesota.com> writes: > > Is there any advantages of using datatype boolean over char(1)? > > boolean fits in 1 byte; char(1) requires 5 bytes (maybe more, depending > on alignment considerations). > > boolean will be considerably faster to operate on, being pass-by-value. > > char(1) will happily accept values that don't correspond to booleans > (eg, if you use 't' and 'f' to represent booleans in a char(1), what > will you do with 'y' or 'z'?) You could possibly fix that with a > check constraint, but that slows things down still more. > > boolean is, um, boolean: it behaves as expected in boolean expressions. > You can't do AND, OR, NOT directly on chars. > > > > If there isn't I think char(1) is more portable across other DBM? > > The boolean datatype is standard in SQL99. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
-
Re: boolean over char(1)
Tom Lane <tgl@sss.pgh.pa.us> — 2003-01-04T01:04:13Z
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Also, we do support "char", which is one byte. You need to specify the > quotes when creating the column. But he's looking for "more standard", which "char" surely is not. regards, tom lane