mirror of
https://github.com/postgres/postgres.git
synced 2025-06-29 10:41:53 +03:00
Support window functions a la SQL:2008.
Hitoshi Harada, with some kibitzing from Heikki and Tom.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.150 2008/11/14 00:51:46 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.151 2008/12/28 18:53:59 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -4208,7 +4208,7 @@ makeArrayResult(ArrayBuildState *astate,
|
||||
dims[0] = astate->nelems;
|
||||
lbs[0] = 1;
|
||||
|
||||
return makeMdArrayResult(astate, 1, dims, lbs, rcontext);
|
||||
return makeMdArrayResult(astate, 1, dims, lbs, rcontext, true);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -4219,13 +4219,15 @@ makeArrayResult(ArrayBuildState *astate,
|
||||
*
|
||||
* astate is working state (not NULL)
|
||||
* rcontext is where to construct result
|
||||
* release is true if okay to release working state
|
||||
*/
|
||||
Datum
|
||||
makeMdArrayResult(ArrayBuildState *astate,
|
||||
int ndims,
|
||||
int *dims,
|
||||
int *lbs,
|
||||
MemoryContext rcontext)
|
||||
MemoryContext rcontext,
|
||||
bool release)
|
||||
{
|
||||
ArrayType *result;
|
||||
MemoryContext oldcontext;
|
||||
@ -4246,7 +4248,8 @@ makeMdArrayResult(ArrayBuildState *astate,
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
|
||||
/* Clean up all the junk */
|
||||
MemoryContextDelete(astate->mcontext);
|
||||
if (release)
|
||||
MemoryContextDelete(astate->mcontext);
|
||||
|
||||
return PointerGetDatum(result);
|
||||
}
|
||||
|
Reference in New Issue
Block a user