vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| The following bug has been logged online: Bug reference: 2291 Logged by: Tim Kordas Email address: tkordas@greenplum.com PostgreSQL version: 8.1.3 Operating system: All Description: int2vectorrecv() and oidvectorrecv() are wrong (SIGBUS) Details: During Greenplum's ongoing effort to expand support for postgres datatypes in Bizgres-MPP; we discovered some issues with int2vectorrecv() and oidvectorrecv(). int2vectorrecv() and oidvectorrecv() both use DirectFunctionCall3 to call array_recv(). DirectFunctionCall3() leaves fcinfo->flinfo NULL. array_recv() uses fcinfo->flinfo. Calling array_recv() without a valid fcinfo->flinfo results in SIGBUS. It would be easy to modify array_recv(), but is probably better to fix the code in int2vectorrecv()/oidvectorrecv() by replacing the call to DirectFunctionCall3() with direct forwarded call (similar to int2vectorsend()): /* leave arg[0] alone, it is correct */ fcinfo->arg[1] = ObjectIdGetDatum(INT2OID); fcinfo->arg[2] = Int32GetDatum(-1); result = (int2vector *)array_recv(fcinfo); the flinfo->f_extra field used will be that passed in by array_recv()'s caller. ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| ||||
| "Tim Kordas" <tkordas@greenplum.com> writes: > During Greenplum's ongoing effort to expand support for postgres datatypes > in Bizgres-MPP; we discovered some issues with int2vectorrecv() and > oidvectorrecv(). Yeah, seems I broke them while changing these datatypes to be regular arrays :-(. Fix committed in HEAD and 8.1 branches. Thanks for the report. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |