? int2vector.patch
? src/pl/plpgsql/src/pl_scan.c
Index: src/backend/utils/adt/int.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/int.c,v
retrieving revision 1.86
diff -c -r1.86 int.c
*** src/backend/utils/adt/int.c	4 Sep 2009 11:20:22 -0000	1.86
--- src/backend/utils/adt/int.c	2 Dec 2009 19:47:32 -0000
***************
*** 146,155 ****
  
  	for (n = 0; *intString && n < FUNC_MAX_ARGS; n++)
  	{
- 		if (sscanf(intString, "%hd", &result->values[n]) != 1)
- 			break;
  		while (*intString && isspace((unsigned char) *intString))
  			intString++;
  		while (*intString && !isspace((unsigned char) *intString))
  			intString++;
  	}
--- 146,156 ----
  
  	for (n = 0; *intString && n < FUNC_MAX_ARGS; n++)
  	{
  		while (*intString && isspace((unsigned char) *intString))
  			intString++;
+ 		if (*intString == '\0')
+ 			break;		
+ 		result->values[n] = pg_atoi(intString, sizeof(int16), ' ');
  		while (*intString && !isspace((unsigned char) *intString))
  			intString++;
  	}
