From: | Matthew Schumacher <matt(dot)s(at)aptalaska(dot)net> |
---|---|
To: | John A Meinel <john(at)arbash-meinel(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Performance problems testing with Spamassassin 3.1.0 |
Date: | 2005-08-04 22:37:41 |
Message-ID: | 42F298B5.5010405@aptalaska.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
John A Meinel wrote:
> Surely this isn't what you have. You have *no* loop here, and you have
> stuff like:
> AND
> (bayes_token_tmp) NOT IN (SELECT token FROM bayes_token);
>
> I'm guessing this isn't your last version of the function.
>
> As far as putting the CREATE TEMP TABLE inside the function, I think the
> problem is that the first time it runs, it compiles the function, and
> when it gets to the UPDATE/INSERT with the temporary table name, at
> compile time it hard-codes that table id.
>
> I tried getting around it by using "EXECUTE" which worked, but it made
> the function horribly slow. So I don't recommend it.
>
> Anyway, if you want us to evaluate it, you really need to send us the
> real final function.
>
> John
> =:->
It is the final function. It doesn't need a loop because of the
bayes_token_tmp function I added. The array is passed to it and it
returns a record set so I can work off of it like it's a table. So the
function works the same way it before, but instead of using SELECT
intoken from TEMPTABLE, you use SELECT bayes_token_tmp from
bayes_token_tmp(intokenary).
I think this is more efficient than the create table overhead,
especially because the incoming record set won't be to big.
Thanks,
schu
From | Date | Subject | |
---|---|---|---|
Next Message | John A Meinel | 2005-08-04 22:42:52 | Re: Performance problems testing with Spamassassin 3.1.0 |
Previous Message | John A Meinel | 2005-08-04 19:36:12 | Re: Performance problems testing with Spamassassin 3.1.0 |