In our multi client environment we need to extend every query with the specific client identifier ( select * from table where client_identifier = :id ). How does Teiid addresses this issue?
You can use any proxy JDBC driver on top of Teiid Driver and modify the SQL query to fit your needs. for example:http://www.p6spy.com/. This is more decoupled way.
Also, we have been wanting to provide a hook in the query engine that users can extend such that they can modify statement as they require before it gets submitted for processing. This is more integrated with Teiid. If you prefer this approach you can submit a JIRA.
How does Teiid (and especially designer tools) perform in a 500 table environment?
We have tested with some very large models before, I do not have exact numbers, hopefully some others will comment on this. Also, if you want you can break 500 tables into multiple logical models, that point to same data source underneath to make modelling exercise easier to navigate.
500 tables shouldn't tax Teiid Designer from a memory standpoint. 500 Tables in one diagram will take a little time to render and layout, especially if there are PK-FK relationships displayed. But a diagram with 500 objects in it can't be reasonably displayed and understood in any tool, unless you have a very large printer.
In Designer you can create Custom Diagrams of selected tables allowing you to create and persist snapshots of critical data.
Thanks both of you for the explanations.