Search Postgresql Archives

Re: Multidimensional array definition in composite type appears parsed as string

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



miller_2555 <nabble.30.miller_2555@xxxxxxxxxxxxxxx> writes:
> I am trying to declare an array of the following compound type:
> CREATE TYPE myschema.mytype AS (
> 	sometext			text,
> 	onedimarray		text[],
> 	multidimarray		text[][]
> );

> The current assignment occurs as follows:
> 	myvar	myschema.mytype[] := ARRAY[
				
> ROW('textaa',ARRAY['textab'],ARRAY[ARRAY['textac1','textac2']])::myschema.mytype,
				
> ROW('textba',ARRAY['textbb'],ARRAY[ARRAY['textbc1','textbc2']])::myschema.mytype
> 				];

Looks okay so far ...

> However, each multidimarray in the assignment appears as a string on the
> output from the following statement (declared within a pgSQL function):
> statement: RAISE INFO '%',myvar;
> outputt: INFO: 
> {"(textaa,{textab},\"{{textac1,textac2}}\")","(textba,{textbb},\"{{textbc1,textbc2}}\")"}

> I believe that I would have expected the following output from the RAISE
> INFO statement:
> INFO: 
> {"(textaa,{textab},{{textac1,textac2}})","(textba,{textbb},{{textbc1,textbc2}})"}

No, you're wrong --- that output is perfectly correct.  The
multidimarray value contains a comma, and therefore it needs to be
double-quoted according to the rules for composite type I/O.  The 1-dim
array value would have gotten quoted, too, had it contained more than
one element.

> I have attempted different explicit typecasts and syntax and have also tried
> adding additional elements to the arrays to see if a one-element array was
> the cause. So far, I have not been able to access the multidimensional array
> in the composite type as an array (though I can perform string functions).

It sounds like you are using some code that mistakenly thinks that
double quotes have a semantic meaning here.  They do not.  They are just
there to delimit members of the row value, not to tell you what type the
members are.

			regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux