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.

Reply via email to