Re: Trivial function query optimized badly

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Craig A(dot) James" <cjames(at)modgraph-usa(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Trivial function query optimized badly
Date: 2007-01-04 05:46:50
Message-ID: 12930.1167889610@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

"Craig A. James" <cjames(at)modgraph-usa(dot)com> writes:
> CREATE OR REPLACE FUNCTION cansmiles(text) RETURNS text
> AS '/usr/local/pgsql/lib/libchem.so', 'cansmiles'
> LANGUAGE 'C' STRICT IMMUTABLE;

Umm ... this is a single-argument function.

> db=> explain analyze select version_id, 'Brc1ccc2nc(cn2c1)C(=O)O' from version where version.isosmiles = cansmiles('Brc1ccc2nc(cn2c1)C(=O)O', 1);

And this query is invoking some other, two-argument function; which
apparently hasn't been marked IMMUTABLE, else it'd have been folded
to a constant.

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Craig A. James 2007-01-04 06:57:05 Re: Trivial function query optimized badly
Previous Message Craig A. James 2007-01-04 05:42:20 Re: Trivial function query optimized badly