Fixes for intagg regression tests to match new array internal handling.
mlw
This commit is contained in:
parent
f68fe6716c
commit
81631ac435
contrib/intagg
@ -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 @@
|
|||||||
#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)
|
|||||||
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)
|
|||||||
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
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
-- 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[]);
|
|||||||
-- 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
|
|||||||
-- 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';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user