[QUESTION/PROPOSAL] loose quadtree in spgist

From: Peter Griggs <petergriggs33(at)gmail(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: [QUESTION/PROPOSAL] loose quadtree in spgist
Date: 2020-01-07 16:33:31
Message-ID: CACEwj4p2C9Nhi=r10O98ms6st8kNewt+Nbx5rn-Z_E8A-gMguQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello, I wanted some guidance/suggestions about creating an spgist
extension. For context, i am a grad student doing research that involves
comparing the performance of different indexes for spatial data. We've
built a system that uses Postgres and one of the data structures we want to
use is a loose quadtree, but there is no implementation of this data
structure in spgist. The reason why I think this is pretty do-able is that
it is quite similar to a quadtree on boxes, which is implemented in
src/backend/utils/adt/geo_spgist.c.

Additionally, I found by grepping through the repo for the existing
functions in spgist/box_ops operator class that several catalog files need
to be updated to reflect a new operator class in spgist. The files that I
believe need to be changed to create a new
spgist_loose_box_ops operator class are:

src/include/catalog/pg_amop.dat
src/include/catalog/pg_amproc.dat
src/include/catalog/pg_opclass.dat
src/include/catalog/pg_opfamily.dat

I've poked around quite a bit in the spgist code and have tried making
minimal changes to geo_spgist.c, but I haven't done any development on
postgres before, so i'm running into some issues that I couldn't find help
with on the postgres slack, by searching the mailing list, or by scouring
the development wikis. For example, I wanted to just print out some data to
see what quadrant a box is being placed into in the geo_spgist.c code. I
understand that printing to stdout won't work in postgres, but I thought
that I could possibly write some data to the logfile. I tried updating a
function to use both elog and ereport and re-built the code. However, I
can't get anything to print out to the logfile no matter what I try. Does
anyone have tips for printing out and debugging in general for postgres
development?

Any tips or guidance would be much appreciated. Also, if there's a
different route I should go to turn this into a proposal for a patch please
let me know. I'm new to postgres dev.

Best,
Peter

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-01-07 16:53:19 Re: ERROR: attribute number 6 exceeds number of columns 5
Previous Message Robert Haas 2020-01-07 16:33:07 Re: RFC: seccomp-bpf support