This built and worked on my system.
famous last words, huh?

Bruce Momjian wrote:
> 
> Can someone address the intagg issue here, or is the code OK?
> 
> ---------------------------------------------------------------------------
> 
> Tom Lane wrote:
> > Joe Conway and I have just committed some changes in the internal
> > representation of Postgres arrays: an element-type-OID field is added to
> > the array header, and alignment calculations are now done the same way
> > as in ordinary tuple storage, instead of taking shortcuts.  I believe
> > that these changes need to be reflected into the intarray, ltree, and
> > intagg contrib modules.
> >
> > intarray and ltree both seem to be mapping their own declarations onto
> > arrays using largely-similar code.  But while intarray fails its
> > regression test, I find ltree still passes.  So I'm confused about what
> > that code is really doing and don't want to touch it.
> >
> > I tried to fix intagg, but since there is no regression test for it
> > I'm unsure whether it's okay.
> >
> > Could you folks take a look at CVS tip and see what changes are needed,
> > if any?
> >
> > In the longer run, it might be possible to improve these routines to be
> > array-type-polymorphic using the new features.  But with the 7.3 beta
> > date nearly upon us, I'd counsel first making the existing functionality
> > work again...
> >
> >                       regards, tom lane
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 3: if posting/reading through Usenet, please send an appropriate
> > subscribe-nomail command to [EMAIL PROTECTED] so that your
> > message can get through to the mailing list cleanly
> >
> 
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   [EMAIL PROTECTED]               |  (610) 359-1001
>   +  If your life is a hard drive,     |  13 Roberts Road
>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
? int_aggregate.sql
? intagg.patch
? intagg_test.sql
Index: int_aggregate.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/contrib/intagg/int_aggregate.c,v
retrieving revision 1.4
diff -u -r1.4 int_aggregate.c
--- int_aggregate.c     2002/08/30 00:28:40     1.4
+++ int_aggregate.c     2002/08/30 15:22:03
@@ -11,7 +11,8 @@
  * This file is the property of the Digital Music Network (DMN).
  * It is being made available to users of the PostgreSQL system
  * under the BSD license.
- *
+ * 
+ * NOTE: This module requires sizeof(void *) to be the same as sizeof(int)
  */
 #include "postgres.h"
 
@@ -37,6 +38,9 @@
 #include "utils/lsyscache.h"
 
 
+/* Uncomment this define if you are compiling for postgres 7.2.x */
+/* #define PG_7_2 */
+
 /* This is actually a postgres version of a one dimensional array */
 
 typedef struct
@@ -96,7 +100,9 @@
                p->a.size = cb;
                p->a.ndim = 0;
                p->a.flags = 0;
+#ifndef PG_7_2
                p->a.elemtype = INT4OID;
+#endif
                p->items = 0;
                p->lower= START_NUM;
        }
@@ -149,7 +155,9 @@
                        pnew->a.size = cb;
                        pnew->a.ndim=1;
                        pnew->a.flags = 0;
+#ifndef PG_7_2
                        pnew->a.elemtype = INT4OID;
+#endif
                        pnew->lower = 0;
                }
                else
Index: int_aggregate.sql.in
===================================================================
RCS file: /projects/cvsroot/pgsql-server/contrib/intagg/int_aggregate.sql.in,v
retrieving revision 1.1
diff -u -r1.1 int_aggregate.sql.in
--- int_aggregate.sql.in        2002/02/25 03:45:27     1.1
+++ int_aggregate.sql.in        2002/08/30 15:22:03
@@ -1,7 +1,7 @@
 -- Drop functions
+drop aggregate int_array_aggregate(int4);
 drop function int_agg_state (int4, int4);
 drop function int_agg_final_array (int4);
-drop aggregate int_array_aggregate(int4);
 drop function int_array_enum (int4[]);
 
 
@@ -9,14 +9,14 @@
 -- Is called for each item in an aggregation
 create function int_agg_state (int4, int4)
        returns int4
-       as 'MODULE_FILENAME','int_agg_state'
+       as 'MODULE_PATHNAME','int_agg_state'
        language 'c';
 
 -- Internal function for the aggregate
 -- Is called at the end of the aggregation, and returns an array.
 create function int_agg_final_array (int4)
        returns int4[]
-       as 'MODULE_FILENAME','int_agg_final_array'
+       as 'MODULE_PATHNAME','int_agg_final_array'
        language 'c';
 
 -- The aggration funcion.
@@ -35,6 +35,6 @@
 -- as a row.
 create function int_array_enum(int4[])
        returns setof integer
-       as 'MODULE_FILENAME','int_enum'
+       as 'MODULE_PATHNAME','int_enum'
        language 'c';
 

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to