From: Ashutosh B. <ash...@en...> - 2013-05-24 02:22:30
|
On Thu, May 23, 2013 at 9:21 PM, Abbas Butt <abb...@en...>wrote: > Hi, > > While working on test case plancache it was brought up as a review comment > that solving bug id 3607975 should solve the problem of the test case. > However there is some confusion in the statement of bug id 3607975. > > "When a user does and PREPARE and then EXECUTEs multiple times, the > coordinator keeps on preparing and executing the query on datanode al > times, as against preparing once and executing multiple times. This is > because somehow the remote query is being prepared as an unnamed statement." > > Consider this test case > > A. create table abc(a int, b int); > B. insert into abc values(11, 22); > C. prepare p1 as select * from abc; > D. execute p1; > E. execute p1; > F. execute p1; > > Here are the confusions > > 1. The coordinator never prepares on datanode in response to a prepare > issued by a user. > In fact step C does nothing on the datanodes. > Step D simply sends "SELECT a, b FROM abc" to all datanodes. > > 2. In step D, ExecuteQuery calls BuildCachedPlan to build a new generic > plan, > and steps E and F use the already built generic plan. > For details see function GetCachedPlan. > This means that executing a prepared statement again and again does > use cached plans > and does not prepare again and again every time we issue an execute. > > The problem is not here. The problem is in do_query() where somehow the name of prepared statement gets wiped out and we keep on preparing unnamed statements at the datanode. > My conclusion is that the bug ID 3607975 is not reproducible. > > Did you verify it under the debugger? If that would have been the case, we would not have seen this problem if search_path changed in between steps D and E. > Comments are welcome. > > -- > *Abbas* > Architect > > Ph: 92.334.5100153 > Skype ID: gabbasb > www.enterprisedb.co <http://www.enterprisedb.com/>m<http://www.enterprisedb.com/> > * > Follow us on Twitter* > @EnterpriseDB > > Visit EnterpriseDB for tutorials, webinars, whitepapers<http://www.enterprisedb.com/resources-community>and more<http://www.enterprisedb.com/resources-community> > > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |