> Jim,
>
>> I have a 40M row table I need to import data into, then use to create
>> a bunch of more normalized tables. Right now all fields are varchar,
>> but I'm going to change this so that fields that are less than a
>> certain size are just char. Question is, how much impact is there from
>> char being nullable vs. not nullable? src/include/access/htup.h
>> indicates that nulls are stored in a bitmap, so I'd suspect that I
>> should see a decent space savings from not having to include length
>> information all the time... (most of these small fields are always the
>> same size no matter what...)
>
> This is moot. PostgreSQL stores CHAR(x), VARCHAR, and TEXT in the same
> internal format, which includes length information in the page header.
> So you save no storage space by converting to CHAR(x) ... you might
> even make your tables *larger* because of the space padding.
So if the internal format is identical, why does the INFERNAL database
ignore indexes when you have a text compared to a varchar?
Ryan