Teiid 7.1.0.Final Release Notes
Teiid 7.1.0.Final adds ODBC, SQL, performance, and caching features.
Overview
Highlights
- ODBC Support - Support for ODBC access is now available through PostgreSQL ODBC driver clients. See the Client Developer's Guide for more on how
to use Teiid's ODBC access.
- Native Materialized Tables - views marked as materialized without a target table will be materialized internally by Teiid. Materialized view tables will
be indexed by the primary key of the view if present and can be controlled through the expanded cache hint.
There are also new system procedures refreshMatView and refreshMatViewRow to refresh internal materialized view contents.
- Expanded Cache Hint - The cache hint can now specify pref_mem to indicate that data should prefer to be held in memory, ttl to indicate the time-to-live,
and updatable to indicate that a materialized view with a primary key can be updated by row with the refreshMatViewRow system procedure.
- SQL Support
- Added NULLS FIST/LAST handling - including pushdown support.
- Added enhanced numeric stat aggregate functions STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP, with pushdown and aggregate decomposition.
- Added support for the boolean aggregate functions ANY, SOME, EVERY.
- Added support for using boolean value expression as both criteria and expressions, e.g. "... where boolean_value" or "select x = 1 as boolean_value ...".
- Changed named procedure syntax to accept param=>value, rather than param=value.
- Added PRIMARY KEY and the associated index support to temp tables.
-
- Parallel Source Queries - reestablished parallel execution of source queries within a query plan along with a prioritized work system to help prevent resource contention.
- Improved Insert Support - Cross source inserts using a query expression can defer to the source to perform the entire insert atomically with source controlled batching.
See maxPreparedInsertBatchSize on any JDBC translator supporting the InsertWithIterator capability.
- SHOW Statement - added client handling for the SHOW statement to retrieve query plan information and see parameter values.
- User Identity - Teiid DataSources in JBossAS connecting to a local Teiid instance can preserve the thread's user identity, rather than requiring
a new authentication. See TeiidDataSource.setPassthroughAuthentication.
- VDB Versioning - The VDB version may be determined by the deployed file name. The expected pattern is <VDB Name>.<Version>.vdb. See the Admin Guide
for more on how to use VDB versioning.
- Support for named parameter syntax using param=value has been deprecated, since it is ambiguous with a comparison predicate boolean value expression. param=>value should be used instead.
from 7.0
- The term data policy was replaced with data role. The AdminAPI methods for adding role mappings have changed from addRoleToDataPolicy and removeRoleFromDataPolicy to addDataRoleMapping and removeDataRoleMapping respectively.
from 6.2
- The connector API has changed substantially. Custom connectors need to be retargeted to the new Translator API. See TEIID-1003 and the Developer's Guide for more information.
- Connector bindings are no longer valid. Use the Designer Tooling or see the AdminShell download for a migration utility.
- Calling out to web services and xml processing has been dramatically simplified and improved, but is a breaking change from prior releases.
XML/Relational processing has been replaced by XMLTABLE, retrieving XML from file has been replaced by the File Translator/Resource Adapter, and
web service calls have been replaced by the WS Translator/Resource Adapter. See TEIID-1118, TEIID-1114, and the Reference guide for more information.
- The direct usage of XQuery has been replaced with the XMLQuery function.
- The text connector file processing has been replaced with the TEXTTABLE function. See TEIID-1102 and the Reference guide for more information
- Double quoted values are now parsed as identifiers by default. See TEIID-145 and the Reference guide for more information.
- The system information schema has changed from System to SYS. The tables and table structures have also changed. See TEIID-871 and the Reference guide for more information.
- Client control over query plans has changed. OPTION PLANONLY, DEBUG, and SHOWPLAN are no longer allowed. This behavior should not be controlled by the SET statement, SET SHOWPLAN (ON|OFF|DEBUG) and SET NOEXEC (ON|OFF). Usage of the client PlanNode class will also need to be updated.
- Teiid specific JDBC client interfaces and methods have changed. In general these custom features have mostly been moved to other more standard locations or been removed. See TEIID-1020 and the Client Developers guide for more information.
- Teiid's reserved words have changed. Many of the Teiid specific reserved words have become non-reserved words. All of SQL Foundation and SQL/MED 2003, and SQL/XML from SQL 2006 reserved words have been added as reserved words. It is generally required to double quote all reserved words. It is advisable to double quote all non-reserved words as well. The use of the INPUT qualifier for procedure inputs has been deprecated in favor of INPUTS. The use of the USING qualifier for dynamic SQL inputs has been deprecated in favor of DVARS.
- The AdminApi has been redesigned for use with the new Translator/JCA split and for deployment in JBoss AS.
- The AdminShell is based on Groovy. Most BeanShell syntax is also valid in Groovy, but there are extensive changes in the AdminAPI that may necessitate rewriting scripts.
- OPTION NO CACHE <table list> will now only by-pass cache for the given tables at their immediate view layer. Previously all caches would have transitively been skipped. See TEIID-900 for more information.
- Nan and +-Infinity are no longer allowed as numerical results by default. This may be changed via the system property org.teiid.allowNanInfinity.
- The scale of BigDecimal values is now adjusted to allow for more intuitive results. Conversion from floating numeric types will preserve the approximate scale and division results will allow for additional scale. See TEIID-159 for more information.
- The 7.0 client is not compatible with 6.x or vice versa. It is expected that 7.0 clients will be compatible with 7.x releases for standard JDBC operations.
See the See the Admin Guide for more on configuration and installation.
from 7.0
- The property to enable data roles in teiid-jboss-beans.xml has changed from useEntitlements to useDataRoles.
- Rar file names no longer contain version numbers. -ds.xml files should be updated from connector-XXX-version.rar to teiid-connector-XXX.rar
- Code table relate configuration properties have been removed. Code tables are now implemented as materialized views.
from 6.2
- A JBoss AS instance is now required. Embedded mode is also currently not supported.
- Engine configuration is now handled through the admin console or deploy/teiid/teiid-jboss-beans.xml
- Logging is now done through the container's log4j instance. Any Teiid specific logging changes, see the conf/jboss-teiid-log4j.xml, need to be incorporated into the master jboss-log4j.xml.
- For compatibility with the 7.0 release if a stored procedure parameter list begins with identifier=, then it will be parsed as a named parameter invocation even if the intent was to use a comparison predicate
as the first parameter value. The workaround is to use nesting parens, e.g. call proc((identifier=value), ...), which clarifies that this is positional value. This workaround will not be needed in later releases.
from 7.0
- Fixed xsd type handling for SQL/XML and XML document models. xsd:date, xsd:dateTime, and xsd:time types will now all be displayed using the GMT timezone (Z). SQL types, such as timestamp, used for an XMLTABLE column will now expect their values to be in the form of the corresponding xsd type.
From 6.2
- Start time is now significantly longer due to the container deployment. However many operations can be performed on configruation files that will trigger a redeployment without the need for a restart.
- Inversion of parse, format, and convert system functions is not used if it can be narrowing. In situations where a predicate has the form: parseTime(column, 'format') = {t 'time value'} may lead to reduced performance, since
the parseTime function cannot be pushed down. This should be addressed in future releases.
Salesforce as Source
Before Salesforce is used in your data integration project, the below issues need to be resolved.
- Manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used:
- jbossws-native-saaj.jar
- jbossws-native-jaxrpc.jar
- jbossws-native-jaxws.jar
- jbossws-native-jaxws-ext.jar
- There is issue with invoking "https" based URL with out specifying the either a keystore or truststore properties with JBoss remoting 2.5.1. Generally you do not need to specify the truststore as a anonymous truststore will be negotiated, however if you fail to supply the following system properties there will be a error message in the log (query will execute even with out the properties). Add these to JBOSS_INSTALL/bin/run.conf file under JAVA_OPTS
- -Djava.net.ssl.keyStore=<path-to-truststore>
- -Djava.net.ssl.keyStoreType=<certificate-type>
- -Djava.net.ssl.keyStorePassword=<password>
The following components have been updated:
From 7.0
- Direct integration of JBossCache jars were removed.
- Netty was upgraded to 3.2.0
- JDOM was removed.
From 6.2
- Netty was upgraded to 3.1.5
- Saxon was upgraded to 9.1.0.8
- A 5.1 container's version of Arjuna is newer than what was previously included in Teiid 6.x.
- Various other dependencies have been removed as they are no longer needed or now provided by the container.
Detailed Release Notes - Teiid - Version 7.1.0.Final
Bug
- [TEIID-76] - Attempting to execute a procedure from MM to MM returns error "<procedure>() does not exist"
- [TEIID-108] - xsd type conversion should be consistent
- [TEIID-1107] - Add support for raising criteria if it has been pushed too far
- [TEIID-1140] - Unnecessary jars in the Teiid deployment
- [TEIID-1141] - getCatalogs call on DatabaseMetadata is returning no rows
- [TEIID-1144] - PostgreSQL (simple capabilities) returning an unexpected number of rows
- [TEIID-1145] - Unable to deploy VDB with virtual BQT2 model
- [TEIID-1147] - Sybase concat function handling
- [TEIID-1149] - Importing tables from a deployed VDB does not import columns
- [TEIID-1152] - Jopr Plugin Needs to Handle Secure ProfileService Connection
- [TEIID-1153] - Turned of ProfileService authenticatiion and it caused an NPE in the Teiid RHQ Plugin
- [TEIID-1157] - NPE with texttable planning
- [TEIID-1166] - Receiving ASSERTION FAILED: expected reference to be not null from SQL query with sub-select
- [TEIID-1169] - VDBs are not being displayed in Jopr
- [TEIID-1172] - Loopback translator fails to be invoked when a property is set
- [TEIID-1178] - Jopr VDB loading error when Data Source is not available
- [TEIID-1180] - the deprecated input group qualifier should be replaced with inputs
- [TEIID-1181] - Teiid Pushdown queries producing unexpected results (Sybase 12.5)
- [TEIID-1182] - UDF model is not being loaded if the file is not placed in the root location of VDB
- [TEIID-1183] - Cannot create a SalesForce datasource throught the admin API.
- [TEIID-1185] - Shutting down JBoss AS server causes NPE in ClusterableCacheFactory
- [TEIID-1186] - broken internal link in Teiid Reference Documentation
- [TEIID-1188] - Error while reading the template properties for LDAP
- [TEIID-1192] - JDBC driver doesn't accept underscores _ in server names
- [TEIID-1200] - Non-parsable SQL in transformation provides no help to user - NPE in stack trace
- [TEIID-1201] - Property 'Url' with value 'vfsfile:/home/pnittel/Teiid71/jboss-5.1.0.GA/server/default/deploy/EyeTuneZ-vdb.xml' is not a valid URL
- [TEIID-1203] - "connector-ws" is not visible as one of the avaialble connectors
- [TEIID-1206] - NPE during the JDBC Metadata read when "resultSetCacheMode=true" turned on
- [TEIID-1208] - VDB "getStatus" through Admin API always returning "INACTIVE"
- [TEIID-1216] - Cannot pass xml result from one select as critera to another select
Feature Request
- [TEIID-168] - Refine caching behavior
- [TEIID-250] - Enable Axis data compression in SFDC Connector, per SFDC API guidelines
- [TEIID-715] - Add support for nulls first/last
- [TEIID-829] - revamp code table caching
- [TEIID-860] - Add odbc support
- [TEIID-886] - Request for more statistical functions in Teiid
- [TEIID-892] - Add a capability to control bulk insert batch size
- [TEIID-908] - Enable access to the query plan without reference to Teiid classes.
- [TEIID-968] - Timestamp literals with fractional seconds result in source query execution performance when being compared to less percise time types
- [TEIID-1006] - Dynamic vdb metadata load enhancements
- [TEIID-1028] - Make Materialized Views first class objects in the system
- [TEIID-1048] - Embedded Connection should support the pass though authentication
- [TEIID-1151] - Re-enable multi-threaded source query execution
- [TEIID-1155] - Allow boolean value expressions to be used as criteria or expressions
- [TEIID-1167] - Add support for primary key handling in temp tables
- [TEIID-1177] - Allow for implicit temp table definition with just a query, omitting the columns
- [TEIID-1179] - Add a CommandContext interface to the teiid api
Patch
- [TEIID-1184] - Patch to refactor numbered <sect> tags in documentation to <section>
Quality Risk
Task
- [TEIID-749] - Replace the TestNoArgConnector Test with an integration test.
- [TEIID-882] - Look into using javax.xml.xpath in the XML-Relational connectors.
- [TEIID-996] - Administration of the granular entitlements to data elements should be supported using the management console.
- [TEIID-1055] - Secure profile service access
- [TEIID-1142] - Teiid should work with EAP 5.1
- [TEIID-1143] - Remove the version number from the RAR files, to promote easy migration between the versions
- [TEIID-1160] - Add Support for Discovery of Dynamic VDBs in Teiid Jopr Plugin
- [TEIID-1165] - Upgrade to Netty 3.2.0 final
- [TEIID-1173] - Provide a facility to create "empty" VDBs for preview purpose
- [TEIID-1174] - Allow '-' character in VDB names.
- [TEIID-1194] - Document the recommended approach to using Teiid entitlements
- [TEIID-1207] - Fix Yahoo Translator to work with "Dynamic Portfoilo" example
Sub-task
- [TEIID-958] - Provide ability to monitor buffer manager disk space usage and free space
- [TEIID-1189] - JOPR support for multiple versions
- [TEIID-1198] - Allow specifying the VDB version as part of the VDB name in the JDBC URL connection string.
The Teiid community project is hosted on jboss.org.
Documentation and help may be obtained from the local distribution under teiid-docs or the following locations.
Teiid is licensed under the LGPL. The
license texts for Teiid and the thirdparty components it uses may be found in the teiid-docs/licenses
directory of the distribution. Browse
Licenses
JBoss, a division of Red
Hat, is in the business of
providing
superior technical support to our customers. Our goal is to make
Professional Open Source™ the SAFE
CHOICE
for you. We accomplish this by backing up our open source Java products
with technical support services that are delivered by the core
developers themselves. We can help you to train your staff and provide
you with support at every stage of the application lifecycle - from
development and integration through deployment and maintenance. Visit
the JBoss
Services page for more
information.