* 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"
#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
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;
}
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
-- 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[]);
-- 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.
-- as a row.
create function int_array_enum(int4[])
returns setof integer
- as 'MODULE_FILENAME','int_enum'
+ as 'MODULE_PATHNAME','int_enum'
language 'c';