Re: Query caching - Mailing list pgsql-hackers

From devik@cdi.cz
Subject Re: Query caching
Date
Msg-id 3A0BD089.4ADD47C1@cdi.cz
Whole thread Raw
In response to Re: AW: Re: [GENERAL] Query caching  (Karel Zak <zakkr@zf.jcu.cz>)
Responses Re: Query caching  (Karel Zak <zakkr@zf.jcu.cz>)
List pgsql-hackers
Did someone think about query costs ? Is you prepare
query like SELECT id FROM t1 WHERE type=$1 and
execute it with $1=1 and 2. For 1 there is one record
in t1 a all other have type=2.
Without caching, first query will use index, second
not.
Should cached plan use index or not ?
devik

Christof Petig wrote:
> 
> Karel Zak wrote:
> 
> > On Wed, 8 Nov 2000, Christof Petig wrote:
> >
> > > Karel Zak wrote:
> > >
> > > > > What about parameters? Normally you can prepare a statement and execute it
> > > >
> > > >  We have in PG parameters, see SPI, but now it's used inside backend only
> > > > and not exist statement that allows to use this feature in be<->fe.
> > >
> > > Sad. Since ecpg would certainly benefit from this.
> 
> Postponed for future improvements ...
> 
> > > > PREPARE chris_query AS SELECT * FROM pg_class WHERE relname = $1 USING text;
> > >
> > > I would prefer '?' as a parameter name, since this is in the embedded sql standard
> > > (do you have a copy of the 94 draft? I can mail mine to you?)
> >
> >  This not depend on query cache. The '$n' is PostgreSQL query parametr
> > keyword and is defined in standard parser. The PREPARE statement not parsing
> > query it's job for standard parser.
> 
> I see.
> 
> > > Also the standard says a whole lot about guessing the parameter's type.
> > >
> > > Also I vote for  ?::type or type(?) or sql's cast(...) (don't know it's syntax)
> > > instead of abusing the using keyword.
> >
> > The postgresql executor expect types of parametrs in separate input (array).
> > I not sure how much expensive/executable is survey it from query.
> 
> That would involve changing the parser. Future project.
> 
> > > > EXECUTE chris_query USING 'pg_shadow';
> > >
> > > Great idea of yours to implement this! Since I was thinking about implementing a
> > > more decent schema for ecpg but had no mind to touch the backend and be-fe
> > > protocol (yet).
> > > It would be desirable to do an 'execute immediate using', since using input
> > > parameters would take a lot of code away from ecpg.
> >
> > By the way, PREPARE/EXECUTE is face only. More interesting in this period is
> > query-cache-kernel. SQL92 is really a little unlike my PREPARE/EXECUTE.
> 
> I'm looking forward to get first experiences with the query cache kernel. I think it's
> the right way to go.
> 
> Christof



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Unhappy thoughts about pg_dump and objects inherited from template1
Next
From: Zeugswetter Andreas SB
Date:
Subject: AW: Could turn on -O2 in AIX