From: | Mike Martin <mike(at)redtux(dot)plus(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-sql <pgsql-sql(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Weird issue with truncation of values in array with some tables |
Date: | 2020-08-16 21:19:50 |
Message-ID: | CAOwYNKYDMyx3_-vJX_HpsKjHEE6hAwn=F6X99Vz44yjTNRpPEQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Thanks!
Possibly the use of name type in pg_tables could be emphasized and maybe a
note about name type in docs somewhere
On Sun, 16 Aug 2020, 18:12 Tom Lane, <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Mike Martin <redtux1(at)gmail(dot)com> writes:
> > I have come across a weird issue with truncation of text in an array (in
> > this case using pg_indexes view)
> > This query truncates the second array element at 63 characters
> > SELECT ARRAY[indexname,indexdef] FROM pg_indexes
> > However reversing the order doesn't truncate
> > SELECT ARRAY[indexdef,indexname] FROM pg_indexes
> > Anyone know why this behaviour occurs?
>
> indexname is of type name, indexdef is of type text, and the rules
> for inferring the type of an array[] construct are such that the
> first element's type wins in these cases.
>
> regression=# SELECT pg_typeof(ARRAY[indexname,indexdef]) FROM pg_indexes
> limit 1;
> pg_typeof
> -----------
> name[]
> (1 row)
>
> regression=# SELECT pg_typeof(ARRAY[indexdef,indexname]) FROM pg_indexes
> limit 1;
> pg_typeof
> -----------
> text[]
> (1 row)
>
> You could insert an explicit cast to text to avoid the truncation
> of indexdef to name:
>
> regression=# SELECT pg_typeof(ARRAY[indexname::text,indexdef]) FROM
> pg_indexes limit 1;
> pg_typeof
> -----------
> text[]
> (1 row)
>
> The documentation about that is here:
> https://www.postgresql.org/docs/current/typeconv-union-case.html
> although looking at this example it seems like that description isn't
> telling the full truth.
>
> regards, tom lane
>
From | Date | Subject | |
---|---|---|---|
Next Message | Mike Martin | 2020-08-22 12:52:02 | Stored procedure and returning clause |
Previous Message | Tom Lane | 2020-08-16 17:12:50 | Re: Weird issue with truncation of values in array with some tables |