On 17.11.2010 19:36, Teodor Sigaev wrote:
Hmm, will have to do some benchmarking on that. I'm using the Consistent
function when walking down to check if the downlink needs to be updated,
and assumed that it would be insignificant compared to the cost of
calling Penalty on all the keys on the page.
Why consistent?! It's impossible - you don't know right strategy number,
index with storage type/over type could do not accept the same type as
query. Index over tsvector is an example.

Sorry, I was confused. I'm calling the gistgetadjusted() function, which uses the Union function. Ie. I'm doing the same we did before when propagating the changes up the tree. I'm just doing it on the way down instead.

I ran some quick performance tests on my laptop, and couldn't see any measurable difference with the patch. So I think we're good on performance. I used the attached scripts, with \timing.

Have you had a chance to look at the patch yet? I'm hesitant to commit before you take a look at it, though I still have to proofread it myself as well.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com
DROP TABLE IF EXISTS tt;
CREATE TABLE tt (a int4);
CREATE INDEX i_tt ON tt USING gist (a);

checkpoint;
INSERT INTO tt
SELECT i FROM generate_series(1, 200000) i;
DROP TABLE IF EXISTS tt;
CREATE TABLE tt (a tsvector);
CREATE INDEX i_tt ON tt USING gist (a);

checkpoint;
INSERT INTO tt
SELECT (chr(97+(i%27)) || chr(97+(i%29)) || repeat(chr(97+(i%23)), (i%11) + 1))::tsvector AS a
FROM generate_series(1, 200000) i;
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to