Re: ERROR: value too long for type character

Doug Fields <dfields-pg-general@pexicom.com>

From: Doug Fields <dfields-pg-general@pexicom.com>
To: Neil Conway <nconway@klamath.dyndns.org>
Cc: pgsql-general@postgresql.org
Date: 2002-05-21T20:54:10Z
Lists: pgsql-general
> > Do you know how I can tell it to "silently truncate" the data as I believe
> > it used to?
>
>Is there a reason you can't just use TEXT? It will be stored the same
>internally...

The only reason being that I don't want to waste space storing arbitrarily 
long pieces of information.

I was not aware that TEXT is just as (in)efficient as VARCHAR, though. If 
that is truly the case, I will consider using TEXT in some places, but only 
when I am very careful in the INSERT and UPDATE clauses so as not to store 
too long things.

>But the most obvious way I can think of to do what you're asking is
>to define a rule to replace the value inserted with a call to
>substring().

So, basically:

1) There's absolutely no way to get back the 7.1.3 "silent truncation" 
behavior (which is, IMO, stupid, I like the non-standard truncation behavior)
2) You have to truncate on INSERT/UPDATE and continue using VARCHAR(x)
3) Instead of 2, you can use TEXT

Several others have asked this question since 7.2 appeared but none 
received a response to #1.

Thanks,

Doug