Also, what I'm really saying is: Is there a way to access *org.h2.command.dml.Select* from my TableEngine implementation through some field/superclass method/ property of the RegularTable that I extend? Perhaps through "session" or something else?
On Jul 29, 10:07 pm, Atul <[email protected]> wrote: > Hi - > > In order to pre-filter my custom Table ( using "MyTableEngine" and > "MyTable <extends RegularTable> " ), I need to: > > a) determine what the components of the SQL select being fired by the > client are (including select expressions, condition expressions) > b) parse this SQL > c) pre-filter my list of java objects > d) add the now-filtered object rows to my custom table's ScanIndex > > Currently I can do this without any problem by hooking into: > > protected LocalResult queryWithoutCache(int maxRows, ResultTarget > target) > > Inside this, I perform a call to getTables() and retrieve any > TableFilter that's an instanceof MyTable. When it is, I call to a > utility class method "MyTablePreparer(Expression[] conditions, > Expression[] selectExpressions, Set<Column> columns, TableFilter > tableFilter)" > > ...where I read through the select columns and ultimately build by own > Rows (i.e. Value [] data ) using something like: > MyTable.getScanIndex(session).add(session, row); > > However, I'd like to understand if, within the query lifecycle, I can > utilize any overridable/implementable methods in MyTable (which > extends RegularTable) which allow me to NOT have to use > Select.queryWithoutCache(int maxRows, ResultTarget target) to perform > these same activities. > > The closest thing I've found is a fire-before-select but even here I'm > unable to get a handle on the running query (I tried > session.getCurrentCommand() but it's mostly empty at the times where > it's of any use to me inside my RegularTable). > > It's really only three lines of code to the H2 codebase that I've > added for the time being that I'd like to get rid of completely in > order to not have to modify any part of H2. > > Thanks for any help in advance ! -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/h2-database?hl=en.
