Commit 81631ac4 authored by Bruce Momjian's avatar Bruce Momjian

Fixes for intagg regression tests to match new array internal handling.

mlw
parent f68fe671
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
* It is being made available to users of the PostgreSQL system * It is being made available to users of the PostgreSQL system
* under the BSD license. * under the BSD license.
* *
* NOTE: This module requires sizeof(void *) to be the same as sizeof(int)
*/ */
#include "postgres.h" #include "postgres.h"
...@@ -37,6 +38,9 @@ ...@@ -37,6 +38,9 @@
#include "utils/lsyscache.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 */ /* This is actually a postgres version of a one dimensional array */
typedef struct typedef struct
...@@ -96,7 +100,9 @@ static PGARRAY * GetPGArray(int4 state, int fAdd) ...@@ -96,7 +100,9 @@ static PGARRAY * GetPGArray(int4 state, int fAdd)
p->a.size = cb; p->a.size = cb;
p->a.ndim = 0; p->a.ndim = 0;
p->a.flags = 0; p->a.flags = 0;
#ifndef PG_7_2
p->a.elemtype = INT4OID; p->a.elemtype = INT4OID;
#endif
p->items = 0; p->items = 0;
p->lower= START_NUM; p->lower= START_NUM;
} }
...@@ -149,7 +155,9 @@ static PGARRAY *ShrinkPGArray(PGARRAY *p) ...@@ -149,7 +155,9 @@ static PGARRAY *ShrinkPGArray(PGARRAY *p)
pnew->a.size = cb; pnew->a.size = cb;
pnew->a.ndim=1; pnew->a.ndim=1;
pnew->a.flags = 0; pnew->a.flags = 0;
#ifndef PG_7_2
pnew->a.elemtype = INT4OID; pnew->a.elemtype = INT4OID;
#endif
pnew->lower = 0; pnew->lower = 0;
} }
else else
......
-- Drop functions -- Drop functions
drop aggregate int_array_aggregate(int4);
drop function int_agg_state (int4, int4); drop function int_agg_state (int4, int4);
drop function int_agg_final_array (int4); drop function int_agg_final_array (int4);
drop aggregate int_array_aggregate(int4);
drop function int_array_enum (int4[]); drop function int_array_enum (int4[]);
...@@ -9,14 +9,14 @@ drop function int_array_enum (int4[]); ...@@ -9,14 +9,14 @@ drop function int_array_enum (int4[]);
-- Is called for each item in an aggregation -- Is called for each item in an aggregation
create function int_agg_state (int4, int4) create function int_agg_state (int4, int4)
returns int4 returns int4
as 'MODULE_FILENAME','int_agg_state' as 'MODULE_PATHNAME','int_agg_state'
language 'c'; language 'c';
-- Internal function for the aggregate -- Internal function for the aggregate
-- Is called at the end of the aggregation, and returns an array. -- Is called at the end of the aggregation, and returns an array.
create function int_agg_final_array (int4) create function int_agg_final_array (int4)
returns int4[] returns int4[]
as 'MODULE_FILENAME','int_agg_final_array' as 'MODULE_PATHNAME','int_agg_final_array'
language 'c'; language 'c';
-- The aggration funcion. -- The aggration funcion.
...@@ -35,6 +35,6 @@ create aggregate int_array_aggregate ...@@ -35,6 +35,6 @@ create aggregate int_array_aggregate
-- as a row. -- as a row.
create function int_array_enum(int4[]) create function int_array_enum(int4[])
returns setof integer returns setof integer
as 'MODULE_FILENAME','int_enum' as 'MODULE_PATHNAME','int_enum'
language 'c'; language 'c';
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment