Re: char column with a single space as the default not working

From: Ron Johnson <ronljohnsonjr(at)gmail(dot)com>
To: Pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org>
Subject: Re: char column with a single space as the default not working
Date: 2023-11-30 22:00:24
Message-ID: CANzqJaA5Az_2z8X3_T3ieypvqQkFDuEbbtF7Uu0L0tXEKiyXjw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Thu, Nov 30, 2023 at 2:56 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Peter Gram <peter(dot)m(dot)gram(at)gmail(dot)com> writes:
> > I think it behaves as expected. Look at my select "select
> > encode(charcol::bytea, 'hex') , intcol from z;" it returns 20 which is a
> > space in hex
>
> Yeah, the space is stored. What is probably surprising the OP
> is that applying the || operator involves a coercion from "char"
> to "text", which strips the defined-to-be-insignificant trailing
> space(s) of the "char" value.
>
> As David said, you're best off not using the char type.
> The semantics around trailing spaces are too squishy for
> my taste, and there's no real advantage compared to varchar
> or text.
>

How do you get a trailing space when trailing spaces are significant?

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2023-11-30 22:34:25 Re: char column with a single space as the default not working
Previous Message Tom Lane 2023-11-30 19:55:56 Re: char column with a single space as the default not working