Re: Patch for circular buffer in tuplestore to optimizemerge joins (v1) - Mailing list pgsql-patches

From Simon Riggs
Subject Re: Patch for circular buffer in tuplestore to optimizemerge joins (v1)
Date
Msg-id 1175034802.4386.239.camel@silverbirch.site
Whole thread Raw
In response to Patch for circular buffer in tuplestore to optimize merge joins (v1)  (stark <stark@enterprisedb.com>)
List pgsql-patches
On Tue, 2007-03-27 at 13:32 +0100, stark wrote:

> This patch implements a circular buffer in tuplestore which drops old tuples
> as they're no longer needed. It uses this for merge joins to avoid having to
> spill the tuplestore if no single value exceeds work_mem. It also is what's
> needed for both recursive query support and OLAP window functions (hence why
> it implements the more complex circular buffer rather than just moving the
> single tuple up to the head of the buffer).
>
> This was mostly already done by Simon, I just finished the logic in tuplesort.c.

Cool.

This item was previously discussed here:
http://archives.postgresql.org/pgsql-hackers/2007-01/msg00096.php

(this changes tuplestore.c not tuplesort.c, though its clear in the
patch)

> This is actually not quite polished so I guess it's still a WIP but it's
> certainly ready to be reviewed. All that remains is polishing. If there's
> anything in there people object to now I would like to know.

I guess a performance test would be a great eyecatcher here, but it does
seem otherwise complete. Any eager merge join testers out there?

--
  Simon Riggs
  EnterpriseDB   http://www.enterprisedb.com



pgsql-patches by date:

Previous
From: Alvaro Herrera
Date:
Subject: autovacuum: multiple workers
Next
From: "Simon Riggs"
Date:
Subject: Re: autovacuum: multiple workers