mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Update fmgr to allow 32 arguments.
This commit is contained in:
parent
8a093d0ae3
commit
0bdd0cdd98
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.34 2000/01/10 17:14:39 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.35 2000/01/10 18:18:30 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -233,6 +233,238 @@ fmgr_c(FmgrInfo *finfo,
|
|||||||
values->data[14], values->data[15]);
|
values->data[14], values->data[15]);
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16]);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17]);
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18]);
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19]);
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20]);
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21]);
|
||||||
|
break;
|
||||||
|
case 23:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22]);
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23]);
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24]);
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25]);
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26]);
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27]);
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27],
|
||||||
|
values->data[28]);
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27],
|
||||||
|
values->data[28], values->data[29]);
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27],
|
||||||
|
values->data[28], values->data[29],
|
||||||
|
values->data[30]);
|
||||||
|
break;
|
||||||
|
case 32:
|
||||||
|
returnValue = (*user_fn) (values->data[0], values->data[1],
|
||||||
|
values->data[2], values->data[3],
|
||||||
|
values->data[4], values->data[5],
|
||||||
|
values->data[6], values->data[7],
|
||||||
|
values->data[8], values->data[9],
|
||||||
|
values->data[10], values->data[11],
|
||||||
|
values->data[12], values->data[13],
|
||||||
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27],
|
||||||
|
values->data[28], values->data[29],
|
||||||
|
values->data[30], values->data[31]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX Note that functions with >FUNC_MAX_ARGS arguments can only be
|
* XXX Note that functions with >FUNC_MAX_ARGS arguments can only be
|
||||||
@ -247,7 +479,15 @@ fmgr_c(FmgrInfo *finfo,
|
|||||||
values->data[8], values->data[9],
|
values->data[8], values->data[9],
|
||||||
values->data[10], values->data[11],
|
values->data[10], values->data[11],
|
||||||
values->data[12], values->data[13],
|
values->data[12], values->data[13],
|
||||||
values->data[14], values->data[15]);
|
values->data[14], values->data[15],
|
||||||
|
values->data[16], values->data[17],
|
||||||
|
values->data[18], values->data[19],
|
||||||
|
values->data[20], values->data[21],
|
||||||
|
values->data[22], values->data[23],
|
||||||
|
values->data[24], values->data[25],
|
||||||
|
values->data[26], values->data[27],
|
||||||
|
values->data[28], values->data[29],
|
||||||
|
values->data[30], values->data[31]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
elog(ERROR, "fmgr_c: function %u: too many arguments (%d > %d)",
|
elog(ERROR, "fmgr_c: function %u: too many arguments (%d > %d)",
|
||||||
|
@ -93,8 +93,13 @@
|
|||||||
#define INDEXSCAN_PATCH
|
#define INDEXSCAN_PATCH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Maximum number of columns in an index and maximum number of args
|
* Maximum number of columns in an index and maximum number of arguments
|
||||||
* to a function. They must be the same value.
|
* to a function. They must be the same value.
|
||||||
|
*
|
||||||
|
* There is no maximum value, though if you want to pass more than 32
|
||||||
|
* arguments to a function, you will have to modify
|
||||||
|
* pgsql/src/backend/utils/fmgr/fmgr.c and add additional entries
|
||||||
|
* to the 'case' statement for the additional arguments.
|
||||||
*/
|
*/
|
||||||
#define INDEX_MAX_KEYS 8
|
#define INDEX_MAX_KEYS 8
|
||||||
#define FUNC_MAX_ARGS INDEX_MAX_KEYS
|
#define FUNC_MAX_ARGS INDEX_MAX_KEYS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user