We are pleased to announce Teiid 7.4 is now available. Highlights of 7.4 features:
The Teiid Team
- Virtual procedure out params - virtual procedures can now have RETURN/OUT/INOUT parameters to return values.
- OLAP - OLAP translator is now part of the Teiid kit using OLAP4J
- Multi-source procedures - multi-source handling was expanded to cover stored procedure execution. See the Reference for more.
- Function Support - additional system functions were made available.
- uuid was added to generate type 4 UUIDs and the Hibernate dialect was updated to support the GUIDGenerator.
- array_get was added to extract values from java.sql.Array or java array values.
- array_length was added to get the length of java.sql.Array or java array values.
- ARRAYTABLE - the ARRAYTABLE table function was added to simplify array value extraction into a tabular format.
- Ingres - Ingres database translator is now available to use as supported source under Teiid.
- Optional Join Enhancements - the optional join hint no longer requires the use of ANSI joins and can will not remove optional bridging tables that are used by two other tables that are required.
- InterSystems Cache - InterSystems Cache database translator is now available to use as supported source under Teiid.
- userRequestSourceConcurrency - was added to control the number of concurrent source queries allowed for each user request.
- Memory Management Improvements - maxReserveBatchColumns and maxProcessingBatchesColumns will by default be determined automatically and will more reliably prevent memory issues. See the admin guide for more.
- Subquery optimization control - added the MJ and NO_UNNEST hints and the org.teiid.subqueryUnnestDefault system property to control the optimization of subqueries to traditional joins or to a merge join implementation of a semijoin or antijoin.
- Local connection threads - local connection calling threads will be used to process work rather than using an engine thread. This helps decouple the configuration of maxThreads.
- Dependent Join Improvements - several major improvements were made to increase performance and develop better plans.
- Improved Planning - the decision to create a dependent join is now considered earlier in planning and is much more effective for dependent joins involving multiple unrelated independent tables.
- IN predicate splitting - the planner can now split large dependent IN predicates into multiple IN predicates, which is controlled by the translator property MaxDepdendentInPredicates. This allows for much larger dependent joins to be performed as a single query.
- Dependent query parallelization - when multiple dependent queries are still required, then they will be run in parallel (up to MaxUserSourceRequestConcurrency), rather than sequentially.
- Cost based back-off - for cost based dependent joins if the number of independent values is too large, then the join will be performed as normal.
- Enhanced Sort Join - the partitioned merge join was replaced with an enhanced sort join. The enhanced sort join will use the actual row counts from each side of the relation to perform a index based join if one side is small enough, a partial sort of the larger side and a repeated merge join if the tuples are unbalanced but one side is not small enough to form an index, or a standard sort merge join if the tuples are balanced.
- JDK1.5 JDBC Client JAR - A retro-translated Teiid client JDBC jar now available to use with JDK 1.5 VM. Note only the JDBC API is supported, not the Admin API, or retrieving query plans as XML.
- Security Improvements - UDF and pushdown functions can now be protected with data roles. Also the CommandContext can provide the Subject for custom security checks in UDFs.
- Cache Invalidation - Prepared plan and result set caches have will invalidate entries based upon metadata and data changes respectively. See the cache configuration maxStaleness setting and the Admin and Developer Guides for more.
- Runtime Updates of Metadata - ALTER statements have been added to change view/procedure/INSTEAD OF trigger (update procedure) definitions. A CREATE TRIGGER statement is also available to add an INSTEAD OF trigger (update procedures) to views. System procedures were added to set extension metadata and stat values. By default all effects of metadata updates happen only on running vdbs across the cluster. To make the changes persistent see the Developers Guide Runtime Updates section.
The Teiid Team