Hello to all of you! I'm new of this newsletter but I hope that this is the good place to send this help request! I'm a student and I'm developing a quadtree index using postgresql 8.0.15 under Linux Ubuntu 7.10 Gusty Gibbon, but I have the following problem:
I downloaded the GIST extension SPGIST from the website http://www.cs.purdue.edu/spgist/ and I tried to modify some C functions used by the operators (for instance the == used between Point and Point) here there is a function in the ./spgist-pquad/spgist_pquad.cc that is: SPGIST_FUNCTION(pquad_equals_op) { PG_RETURN_BOOL(true); } That is the one that is used by the operator == defined as follows: CREATE OR REPLACE FUNCTION pquad_equals_op(point,point) RETURNS bool AS '/usr/local/lib/libspgist_pquad' LANGUAGE 'C'; CREATE OPERATOR == ( LEFTARG = point, RIGHTARG = point, PROCEDURE = pquad_equals_op, RESTRICT = eqsel, JOIN = eqjoinsel); I first want to implement it and to make it works, like this: SPGIST_FUNCTION(pquad_equals_op) { elog (NOTICE, "1"); Point *p1 = (Point *)PG_GETARG_POINTER(0); Point *p2 = (Point *)PG_GETARG_POINTER(1); elog (NOTICE, "2"); if((p1->x == p2->x) && (p1->y == p2->y)) { PG_RETURN_BOOL(true); } else { PG_RETURN_BOOL(false); } } I can compile it without problem but when I use that operator in a sql query like: select * from tablepoints p1 where p1.point == '(1,1)'; then the process simply crash by signal 11 and without any useful feedback on the motivation (it just prints out the notice "1" and "2"). Is that an already known problem? Honestly I found it very hard to discover the problem and I still don't have a solution. Could anyone suggest me a good runtime debugger for that purpose? Thanks to all of you!! Simone -- Campora Simone, ________________________ School of computer science Swiss Federal Institute of Technology, Lausanne EPFL E-MAIL: [EMAIL PROTECTED] [EMAIL PROTECTED] WWW: www.simonecampora.com MOBILE: +41 762 563466 +39 347 8036605 SKYPE: sim0ne.