Re: How can I pass an array to SPI_execute_with_args()? - Mailing list pgsql-general

From Boszormenyi Zoltan
Subject Re: How can I pass an array to SPI_execute_with_args()?
Date
Msg-id 4AF270D5.6060908@cybertec.at
Whole thread Raw
In response to Re: How can I pass an array to SPI_execute_with_args()?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: How can I pass an array to SPI_execute_with_args()?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane írta:
> Boszormenyi Zoltan <zb@cybertec.at> writes:
>
>> I would like to execute the code below.
>>
>
> Since you're apparently deconstructing and reconstructing the array
> anyway, why don't you do the insertion at the C-array stage, and
> do just one construct_array() that yields the final result?
>

Okay, that's a good idea. :-)

>> If the above marked line sets oids[1] = INT8OID, I get this error:
>>
>
>
>> ERROR:  function array_append(anyarray, bigint) does not exist
>> LINE 1: UPDATE product.t_product_inv SET ids = array_append($1, $2) ...
>>                                                ^
>>
>
> You'd need to use the types int8[] and int8, explicitly.  No ANYARRAY.
>

OK, so the OID for int8[] is (looking at pg_type.h...) 1016,
i.e. for type "_int8"? It worked this way. Thank you very much.

A question, though: why are there symbolic names for certain
array types (FLOAT4ARRAYOID, etc) but not for the most?

Best regards,
Zoltán Böszörményi

--
Bible has answers for everything. Proof:
"But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
than these cometh of evil." (Matthew 5:37) - basics of digital technology.
"May your kingdom come" - superficial description of plate tectonics

----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: error caused by FOREIGN KEY on composite type
Next
From: Hitoshi Harada
Date:
Subject: Re: sudoku in an sql statement