*** /home/pgsrc/mirrored_source/pgsql_ver_7.3/pgsql-server/src/interfaces/python/pgmodule.c	Wed Aug 14 23:31:45 2002
--- ./src/interfaces/python/pgmodule.c	Thu Aug 22 15:00:51 2002
***************
*** 1788,1828 ****
  	n = PQnfields(self->last_result);
  	reslist = PyList_New(m);
  
! 	if ((typ = malloc(sizeof(int) * n)) == NULL)
! 	{
! 		PyErr_SetString(PyExc_SyntaxError, "memory error in getresult().");
! 		return NULL;
! 	}
! 
! 	for (j = 0; j < n; j++)
! 	{
! 		switch (PQftype(self->last_result, j))
! 		{
! 			case INT2OID:
! 			case INT4OID:
! 			case OIDOID:
! 				typ[j] = 1;
! 				break;
! 
! 			case INT8OID:
! 				typ[j] = 2;
! 				break;
! 
! 			case FLOAT4OID:
! 			case FLOAT8OID:
! 			case NUMERICOID:
! 				typ[j] = 3;
! 				break;
! 
! 			case CASHOID:
! 				typ[j] = 4;
! 				break;
! 
! 			default:
! 				typ[j] = 5;
! 				break;
! 		}
! 	}
  
  	for (i = 0; i < m; i++)
  	{
--- 1788,1794 ----
  	n = PQnfields(self->last_result);
  	reslist = PyList_New(m);
  
! 	typ = get_type_array(self->last_result, n);
  
  	for (i = 0; i < m; i++)
  	{
***************
*** 1944,1984 ****
  	n = PQnfields(self->last_result);
  	reslist = PyList_New(m);
  
! 	if ((typ = malloc(sizeof(int) * n)) == NULL)
! 	{
! 		PyErr_SetString(PyExc_SyntaxError, "memory error in dictresult().");
! 		return NULL;
! 	}
! 
! 	for (j = 0; j < n; j++)
! 	{
! 		switch (PQftype(self->last_result, j))
! 		{
! 			case INT2OID:
! 			case INT4OID:
! 			case OIDOID:
! 				typ[j] = 1;
! 				break;
! 
! 			case INT8OID:
! 				typ[j] = 2;
! 				break;
! 
! 			case FLOAT4OID:
! 			case FLOAT8OID:
! 			case NUMERICOID:
! 				typ[j] = 2;
! 				break;
! 
! 			case CASHOID:
! 				typ[j] = 3;
! 				break;
! 
! 			default:
! 				typ[j] = 4;
! 				break;
! 		}
! 	}
  
  	for (i = 0; i < m; i++)
  	{
--- 1910,1916 ----
  	n = PQnfields(self->last_result);
  	reslist = PyList_New(m);
  
! 	typ = get_type_array(self->last_result, n);
  
  	for (i = 0; i < m; i++)
  	{
***************
*** 2034,2042 ****
  												 * one */
  								s++;
  
! 							for (k = 0; *s; s++)
  								if (*s != ',')
  									cashbuf[k++] = *s;
  
  							cashbuf[k] = 0;
  							val = PyFloat_FromDouble(strtod(cashbuf, NULL) * mult);
--- 1966,1978 ----
  												 * one */
  								s++;
  
! 							for (k = 0; 
! 								*s && k < sizeof(cashbuf)/sizeof(cashbuf[0])-1; 
! 								s++)
! 							{
  								if (*s != ',')
  									cashbuf[k++] = *s;
+ 							}
  
  							cashbuf[k] = 0;
  							val = PyFloat_FromDouble(strtod(cashbuf, NULL) * mult);
