Re: ERROR: value too long for type character - Mailing list pgsql-general

From Doug Fields
Subject Re: ERROR: value too long for type character
Date
Msg-id 5.1.0.14.2.20020521165042.01ed2b50@mail.pexicom.com
Whole thread Raw
In response to Re: ERROR: value too long for type character varying(255)  (Neil Conway <nconway@klamath.dyndns.org>)
Responses Re: ERROR: value too long for type character
List 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


pgsql-general by date:

Previous
From: Neil Conway
Date:
Subject: Re: ERROR: value too long for type character varying(255)
Next
From: "Gaston Micheri"
Date:
Subject: Graphical Tool