Questions about "varchar" NOT NULL default = char(1) ?

Started by Emi Luover 20 years ago2 messagesgeneral
Jump to latest
#1Emi Lu
emilu@cs.concordia.ca

Greetings,

If one column "col1" is defined as :

col1 varchar(1) not null default ''

Does it means that col1's definition is equal to

col1 char(1) not null default ''

Put it another way, will char '' be saved as char(1) or char '' does not
use space at all?

Thanks a lot,
Emi

#2Neil Conway
neilc@samurai.com
In reply to: Emi Lu (#1)
Re: Questions about "varchar" NOT NULL default = char(1)

Emi Lu wrote:

Greetings,

If one column "col1" is defined as :

col1 varchar(1) not null default ''

Does it means that col1's definition is equal to

col1 char(1) not null default ''

Not quite; for example,

neilc=# create table t1 (x char(1) not null);
CREATE TABLE
neilc=# create table t2 (x varchar(1) not null);
CREATE TABLE
neilc=# insert into t1 values ('');
INSERT 0 1
neilc=# insert into t2 values ('');
INSERT 0 1
neilc=# select octet_length(x) from t1;
octet_length
--------------
1
(1 row)

neilc=# select octet_length(x) from t2;
octet_length
--------------
0
(1 row)

Put it another way, will char '' be saved as char(1) or char '' does not
use space at all?

I'm not sure what you mean.

-Neil