In the time since we migrated our Dataflex DB to Postgresql, I've always wondered why DF creates ASCII (and numeric) columns with NOT NULL and ''::bpchar as the default value (or "0" as default for numeric). In all of the SQL manager programs I've used, when creating a new column it defaults to allowing NULL values. Isn't this the same result?

What's the reasoning behind using a default value? NOT NULL has no effect if there's always a default value used when creating a new record.