Re: integer[] Update Questions

From: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
To: Ryan Mahoney <ryan(at)paymentalliance(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org, <pgsql-general(at)postgresql(dot)org>, <teodor(at)stack(dot)net>
Subject: Re: integer[] Update Questions
Date: 2002-08-23 16:40:43
Message-ID: Pine.GSO.4.44.0208231935310.15230-100000@ra.sai.msu.su
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Well, CVS version (7.3) of contrib/intarray has:
FUNCTIONS:

int icount(int[]) - the number of elements in intarray
int[] sort(int[], 'asc' | 'desc') - sort intarray
int[] sort(int[]) - sort in ascending order
int[] sort_asc(int[]),sort_desc(int[]) - shortcuts for sort
int[] uniq(int[]) - returns unique elements
int idx(int[], int item) - returns index of first intarray matching element to item, or
'0' if matching failed.
int[] subarray(int[],int START [, int LEN]) - returns part of intarray starting from
element number START (from 1) and length LEN.

OPERATIONS:

int[] && int[] - overlap - returns TRUE if arrays has at least one common elements.
int[] @ int[] - contains - returns TRUE if left array contains right array
int[] ~ int[] - contained - returns TRUE if left array is contained in right array
# int[] - return the number of elements in array
int[] + int - push element to array ( add to end of array)
int[] + int[] - merge of arrays (right array added to the end of left one)
int[] - int - remove entries matched by right argument from array
int[] - int[] - remove left array from right
int[] | int - returns intarray - union of arguments
int[] | int[] - returns intarray as a union of two arrays
int[] & int[] - returns intersection of arrays

I don't remember if I have a patch for 7.2

Oleg
On 23 Aug 2002, Ryan Mahoney wrote:

> Greeting Hackers! Had some questions about integer array type...
>
> If I have a integer[] field in a table, which already has the values
> {1,2,3,6,17} and I additionally want to add the value '45' to this
> array, is there any easier way than SELECTing the current values and
> then updating the entire record?
>
> I see that I could do:
> UPDATE table SET array_field[6] = 45 WHERE ...
>
> But how do I know that 6 is the correct index without first SELECTing
> all the data?
>
> Is there an array push/pop function? Is there a method of counting the
> number of integers in an array?
>
> Thanks for any help you can provide - indexable integer arrays are an
> incredible feature, thanks for the hard work!
>
> Ryan Mahoney
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sebastian Hetze 2002-08-23 16:53:23 OSS RDBMS Features Compared
Previous Message Stephan Szabo 2002-08-23 15:37:16 Re: How to retrieve a comment/description from a table

Browse pgsql-hackers by date

  From Date Subject
Next Message Roderick A. Anderson 2002-08-23 16:57:27 RPM Feature Request
Previous Message Joe Conway 2002-08-23 15:47:31 Re: v7.2.2 packaged ...