From: John V. S. <js...@gm...> - 2008-09-02 22:24:49
|
One last update on this...using ConnectorJ 5.1.6, I added some LucidDB breakpoints, and it seems like MySQL's JDBC driver actually is supporting retrieval of metadata before execution. So I think what may have changed instead is the way the prepared statements get logged; I'm guessing that now the SQL text is getting logged at prepare time instead of at execute time (where with 3.1.4 I would only see the line Prepare with no text). If that is correct, then all is well with the newer JDBC driver. JVS John V. Sichi wrote: > Joni Freeman wrote: >> On Tue, 2008-09-02 at 00:32 -0700, John V. Sichi wrote: >>> For my test, I'm only seeing the second (filtered) query in the MySQL >>> log. I'm using MySQL server 5.0.22, and the JDBC driver from an old >>> MySQL ConnectorJ 3.1.14. What client and server versions are you using? >> >> MySQL server 5.0.45 and MySQL ConnectorJ 5.1.5. > > I tried with MySQL ConnectorJ 5.1.6 and saw the same behavior as you. So > it looks like somewhere in between 3.1.14 and 5.1.5 MySQL's JDBC driver > stopped supporting getMetadata before execution. (It turns out that > Oracle's JDBC driver also has this limitation.) > >> Ah ok, I see. It could be that it doesn't fetch anything since there was >> many accounts in my test instance and fetching them all must take more >> than 9 secs. >> >> Thanks a lot, I'll do some more tests and report back if I find that >> filtering does not work as expected. > > I've logged an issue to see if we can eliminate the dummy select in some > cases, since opening up a full-table scan can add a small drag even if > LucidDB doesn't fetch anything (some remote servers might start > firehosing data even without a fetch, and I think MySQL's performance > logging will flag full-table scans): > > http://issues.eigenbase.org/browse/FRG-340 > > JVS > |