Thread: confused by int2vector typdelim

confused by int2vector typdelim

From
jian he
Date:

hi.
select
        pt.typtype
        , pt.typcategory
        , pt.typdelim
        , pt.typelem  
        , pt1.typname   as elem_type
        ,pt.typsubscript
        ,pt.typname
from    pg_type pt  join pg_type pt1 on pt.typelem = pt1.oid
where   pt.typname = 'int2vector';

returns
 typtype | typcategory | typdelim | typelem | elem_type |      typsubscript       |  typname
---------+-------------+---------+----------+-----------+-------------------------+------------
 b        | A          | ,        |      21  | int2     | array_subscript_handler | int2vector
(1 row)


from manual:
typdelim char
Character that separates two values of this type when parsing array input. Note that the delimiter is associated with the array element data type, not the array data type.
 
should I expect the typdelim be a white space? Since '1 2'::int2vector works, '1,2'::int2vector does not work.

Re: confused by int2vector typdelim

From
Tom Lane
Date:
jian he <jian.universality@gmail.com> writes:
> should I expect the typdelim be a white space? Since '1 2'::int2vector
> works, '1,2'::int2vector does not work.

typdelim applies to the type's associated array type, that is
int2vector[].

regression=# select '{1 2,3 4 5}'::int2vector[];
   int2vector    
-----------------
 {"1 2","3 4 5"}
(1 row)

            regards, tom lane