Teiid 7.2.0.Final Release Notes
Teiid 7.2.0.Final adds performance and integration features.
Overview
Highlights
- SQL Support
- Non-Recursive Common Table Expressions - The WITH clause (and associated pushdown) for non-recursive queries is now supported.
- Explicit Table Syntax - TABLE x can now be used as a shortcut for SELECT * FROM x
- JSON Support - JSON, which could be obtained through the ws-translator using http calls or other methods, can be converted to XML using the system function jsonToXml. XMLTABLE and other integration logic can then be used on the JSON results.
- Transaction Statements - JDBC/ODBC now accepts START TRANSACTION, COMMIT, and ROLLBACK statements to control local transactions.
- Procedure Result Caching - virtual procedure definitions may use a cache hint to cache results in the result set cache.
- Improved Plan Caching - plans used by internal materialization and stored procedure plans will be automatically cached in the prepared plan cache. Improvements were also made to reduce the memory footprint of the plans.
- Refined Load Balancing and Fail Over - clients can use use the statement "SET NEWINSTANCE TRUE" to allow their connection to select a new server instance. See the Client Developer's Guide for more information.
- Simplified Role Usage - a role can now be assigned to any authenticated user via the any-authenticated attribute on the data-role element.
- Materialized View Performance - materialized view tables will now automatically create and use non-unique secondary indexes for unique constraints and indexes defined on the view.
- Binary Web Service Calls - the ws translator now provides an invokeHttp procedure to return the blob contents and string content type of an http/https call.
- Improved clustering support - see the Admin Guide chapter on clustering.
- IPv6 support - Teiid can started using IPv6 bind address and can be used with JDBC connection.
- SESSION_ID - A new system function "SESSION_ID" is added to the system function library.
- Assignment Syntax Improvements - Teiid's procedure syntax for assignments was clarified so that the assignment value must be a proper expression. INSERT/UPDATE/DELETE update counts must be obtained from VARIABLES.ROWCOUNT, scalar values must be obtained via a scalar subquery. The parser will continue to accept the old syntax and convert the query into the proper form.
- TEXTAGG - SQL support for Text aggregation. Using this function expression values can be aggregated into a CSV BLOB with configurable delimiter, header, and encoding. The result can be optionally saved to a text file.
- TRANSLATE CRITERIA has been deprecated. An alternative approach to update procedures will be introduced in a subsequent version.
- 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.1
- Subqueries are no longer allowed to be SELECT INTO.
- INSERT/UPDATE/DELETE cannot be used to create implicit return cursors in non-update virtual procedures. You can instead use "UPDATE ...; SELECT VARIABLES.ROWCOUNT;".
- The SYSADMIN schema was created to hold procedures and tables that should not be generally accessible. SYS and pg_catalog are now always accessible - permissions do not apply to these schemas. The SYS.getBinaryVDBResource, SYS.getCharacterVDBResource, and SYS.getVDBResourcePaths have been replaced with the
SYSADMIN.VDBResources table. The Matviews table and the refreshMatView/refreshMatViewRow procedures were also moved into SYSADMIN.
- Overwriting an existing VDB will cause old connections to be terminated. Production systems should rely on VDB versioning.
- The jdbc:metamatrix JDBC URL prefix is no longer accepted. Use jdbc:teiid instead.
- Model visibility no longer restricts access to tables and procedures. Setting visible to false will only hide entries from system tables. Data roles should be used to restrict data access.
- Admin API "getWorkManagerStats" methods renamed to "getWorkerPoolStats". Also, "setRuntimeProperty" and "getProcesses" methods were removed.
- By default the "ENV" system function is now turned off. To enable it, edit the teiid-jboss-beans.xml configuration file.
- The use of VARIABLES.ROWCOUNT is now reserved.
- Exec statements of the form "var = EXEC foo()" are only valid if the procedure foo has a return parameter.
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 Admin Guide for more on configuration and installation.
from 7.1
- Teiid clients now allow the usage of anonymous SSL by default.
This changes allows the admin port (default 31443) to use anonymous SSL by default, rather than just securing login traffic.
Admin clients should therefore use the mms protocol instead of mm. This will encrypt all admin traffic and ensure that any passwords in configuration files will
be encrypted in transit. See the Admin Guide to upgrade from anonymous SSL to 1-way or 2-way authentication.
The config properties sslEnabled and clientEncryptionEnabled for SSLConfiguration beans have been combined to a single property mode, that can have the values disabled|login|enabled.
- Apache CXF is now expected to be used as the web services stack provider through JBossWS-CXF. See the Admin Guide for instructions on
installing CXF for use with Teiid's Salesforce and web service connectors. The WS Resource Adapter's -ds.xml files should no longer use
WSSecurityConfigURL and WSSecurityConfigName, rather they should be ConfigFile and ConfigName respectively. The property values should no longer
refer to jboss-wsse-client.xml, but instead they should reference a CXF Spring configuration file and particular port configuration. See the Admin Guide
for more on using CXF configuration files.
- The default for data role checking is now "true". However only VDBs with data roles will have roles enforced.
- The default prepared plan cache size was increased to 512, since it is targeted by internal plans as well.
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.
The following components have been updated:
From 7.1
- json-simple 1.1 was added.
- Netty was upgraded to 3.2.1
From 7.0
- Direct integration of JBossCache jars was 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.2.0.Final
Bug
- [TEIID-1168] - Query Testing - CLOB, LOB, etc is returning an object reference in CTC rather than returning the content of the object (content is needed for validation purposes)
- [TEIID-1218] - AdminShell help for changeVDBConnectionType is "Cancel a request"
- [TEIID-1219] - Metadata for XML Document models not being showing up after Admin API mergeVDB() call.
- [TEIID-1221] - Query Processing Uncorrelated subquery evaluation - Not saving state causing re-execution without closing prior connection
- [TEIID-1222] - Partially qualified unambiguous virtual procedure problem resolving inputs.
- [TEIID-1223] - Cache hint cannot be specified against set queries or callable statements
- [TEIID-1224] - Stored Procedures - java exception being thrown relating to pre-evaluation of uncorrelated subqueries
- [TEIID-1229] - In predicate issue with temp table composite key
- [TEIID-1230] - TeiidDriver is used instead of MetaMatrixDriver during connection to the MM Server
- [TEIID-1232] - Cannot create LDAP connection.
- [TEIID-1233] - VDB version from the file name is not being picked up
- [TEIID-1234] - Parameter ordering is incorrect
- [TEIID-1235] - The bind address 0.0.0.0 is always resolving to localhost
- [TEIID-1240] - Exception with false join predicate
- [TEIID-1243] - teiid admin console plugin cannot show dynamic VDB content
- [TEIID-1244] - JBoss AS admin console troubles with text based connection factory
- [TEIID-1245] - exception trying to get a test connection through admin console to a text file based connection factory
- [TEIID-1247] - Passthrough Authentication on JDBC Connection not switching identities
- [TEIID-1249] - VDB scoped cached results not checked for access
- [TEIID-1251] - Fully qualified order by key can resolve incorrectly
- [TEIID-1254] - Detect session scoped temp tables in setting determism
- [TEIID-1256] - Clear caches when VDB with same version re-deployed
- [TEIID-1257] - Teiid creates multiple "buffer" directories
- [TEIID-1266] - jboss-log4j.xml - after modified by installing teiid - references org.apache.log4j.RollingFileAppender
- [TEIID-1269] - Closing connections to Teiid may result in a stack trace written to the server's log file
- [TEIID-1270] - adminshell - getAdmin() returns: ERROR org.teiid.core.TeiidRuntimeException: toString
- [TEIID-1274] - NPE during the execution of query when a wrong JNDI name supplied
- [TEIID-1276] - Updating an existing VDB via copy-paste in the filesystem causes ConcurrentModificationException
- [TEIID-1278] - vdb-deployer.xsd should have a description for translators.
- [TEIID-1279] - Got an Unexpected exception when starting the server, after digging, I think the message should have indicated that the UDF requires static methods
- [TEIID-1283] - Race condition results in bad resultset for query on union
- [TEIID-1286] - Invalid Link in Teiid Developer Guide
- [TEIID-1289] - hasNext causes indexing issue
- [TEIID-1290] - Application name is null in JOPR
- [TEIID-1292] - Invalid Fetch Size using JDBC ODBC bridge to query MS Access via a Teiid VDB
- [TEIID-1297] - Missing message key when no result for executed system procedure: "Request.no_result_set" in: org.teiid.query.i18n
- [TEIID-1298] - invalid links in Teiid Client Developer Guide
- [TEIID-1302] - Selecting data from salesforce results in a IndexOutOfBoundsException
- [TEIID-1303] - Sybase issues
- [TEIID-1305] - Problem executing an ORDER BY against the ModeShape data source
- [TEIID-1307] - Client Dev Guide - repeated property in tables for Driver & Datasource
- [TEIID-1310] - SYS.VDBResources table is set as a non-system-owned table - should be isSystem = true
- [TEIID-1313] - Possible duplicate rows at when using nested table feature. When using TABLE or XMLTABLE or TEXTTABLE.
- [TEIID-1315] - Teiid misinterprets relative location of XSD when doc model is in different folder: causes Unknown Query Metadata error
- [TEIID-1316] - XML encoding of a blob is not properly detected.
- [TEIID-1317] - Limit keyword causes class cast exception running query against DB2 translator
- [TEIID-1318] - Adminshell: Accessing VDB version results in exception: Connector worker process failed for atomic-request
- [TEIID-1319] - Incorrect format for postgres timestamp to string
- [TEIID-1320] - Oracle datetime columns as timestamp have invalid tostring
- [TEIID-1321] - Error message when connecting to missing VDB is misleading (makes it sound like it exists)
- [TEIID-1322] - Stored procedures are not pre-evaluating scalar subquery arguments.
- [TEIID-1325] - Teiid Admin connection re-connect fails every time
- [TEIID-1333] - Dynamic VDB can be set to ACTIVE, even when the data source is not available.
- [TEIID-1334] - java.net.URISyntaxException starting jboss-soa-p-5 (i.e. with Teiid) installed on LINUX under folder name containing spaces
- [TEIID-1336] - EDS adminshell - clearCache() having no effect
- [TEIID-1337] - Cached costing needs cleared more completely
- [TEIID-1340] - Unable to delete vdb using JOPR, throws exception
- [TEIID-1342] - NPE in RuntimeEngineDeployer Starting JBossAS
- [TEIID-1345] - VDB with even one data role requires all users to have at least one mappable role
- [TEIID-1346] - Rewrite is wrong with translate criteria and no user criteria
- [TEIID-1347] - Configuration Update for Teiid Engine Should Look for compName Instead of Name
- [TEIID-1348] - Internal Mat View of table with Primary Key gets duplicate key error when populating temporary mat view table
- [TEIID-1156] - Description fields for UDF Model objects are limited to 128 characters
- [TEIID-1205] - First deployment of weather example fails to query and requires restarting JBoss AS (weather does not exist)
- [TEIID-1232] - Cannot create LDAP connection.
- [TEIID-1247] - Passthrough Authentication on JDBC Connection not switching identities
- [TEIID-1295] - Multisource updates affecting multiple sources returns wrong update count
- [TEIID-1296] - Multi-Source may not be wrapping the transactional scope correctly
- [TEIID-1308] - Multi-source vdb table's metadata does not report the implicit "source_name" column
- [TEIID-1309] - The engine should validate against using an insert with a query expression in a multisource scenario.
- [TEIID-1346] - Rewrite is wrong with translate criteria and no user criteria
Feature Request
- [TEIID-951] - Add/Verify ipv6 readiness
- [TEIID-982] - Materialized Views should be treated as a service in MMx through the Console
- [TEIID-1030] - Provide ability to retrieve a VDB archive from ModeShape repository and then deploy the Teiid runtime.
- [TEIID-1103] - Add ability to configure transport settings for the ws resource adapter
- [TEIID-1104] - Teiid engine will be clusterable.
- [TEIID-1106] - Create the ModeShape connector to be used with the ModeShape jdbc driver to access the ModeShape JCR repository
- [TEIID-1138] - Add support to call binary web services
- [TEIID-1196] - Support Deployment of VDB via a URL in Jopr Plugin
- [TEIID-1204] - Re-enable failover support
- [TEIID-1209] - Add cache usage statistics
- [TEIID-1210] - Add support for non-unique indexes for materialized view tables
- [TEIID-1212] - Add replication for internal materialized view tables
- [TEIID-1213] - Procedure results should be cachable as well
- [TEIID-1215] - Add a performance tuning chapter to the admin guide
- [TEIID-1220] - Change Data Roles from a Global (server-wide) to a VDB-based property
- [TEIID-1225] - Reuse procedure plans
- [TEIID-1263] - Reference Guide Section 10.3.1.2 - No sample code for "periodically checking the result object for new warnings"
- [TEIID-962] - Create new system function to dump temp table contents to file.
- [TEIID-1171] - Add support for the with clause
- [TEIID-1237] - Stored procedures should allow for better use of inout/out/return values
- [TEIID-1250] - Allow usage of select expressions in order by, even with group by/distinct.
- [TEIID-1273] - Add support for using source_name with multisource INSERT Statements
- [TEIID-1288] - Add support for explicit table syntax
- [TEIID-1306] - Add support for JSON data sources (JSON translator, JSON-to-table mapping functions).
Patch
- [TEIID-1285] - fixes from Data Services Platform version of the Teiid Developer Guide
Quality Risk
- [TEIID-950] - Add ability to control access to environment variables
- [TEIID-1027] - Clean up i18n files
- [TEIID-1202] - JOPR Console VDB View has couple usability issues
- [TEIID-1211] - Refine load-balancing support in AS
- [TEIID-1214] - The translators displayed in the JOPR console need a full description, not just Teiid Translator, because a 2 char. name (i.e., ws) with no description isn't clear
- [TEIID-1231] - Model visibility should only refer to whether entries are in metadata
- [TEIID-1238] - WS Connector config/configname should not be specific to ws-security
- [TEIID-1246] - Determine access strategy for SYS/pg_catalog
- [TEIID-1252] - LOB handling strategy issues
- [TEIID-1259] - Multi-line error message is difficult to follow
- [TEIID-1260] - All admin traffic should be encrypted by default
- [TEIID-1261] - Add documentation of transaction considerations
- [TEIID-1264] - Make "build" project manage all the responsibility of the assemblies
- [TEIID-1265] - Document the replacement approach for credentail maps
- [TEIID-1271] - Add more logging for pushdown decisions
- [TEIID-1272] - Join planning should make better decisions when mixing costing and unknown values
- [TEIID-1293] - subqueries should not allow select into
- [TEIID-1294] - procedure validation issues
- [TEIID-1312] - Default stored procedure params should not show up in string form
- [TEIID-885] - CTC vdbs should use appropriate capabilities
Task
- [TEIID-1236] - Provide sample DS.xml files for all the data sources that Teiid supports.
- [TEIID-1255] - Add documentation about usage of Multi-Source
- [TEIID-1258] - fixed formatting of translators.xml in reference guide
- [TEIID-1262] - Update Netty to 3.2.1 in the 7.1.x branch
- [TEIID-1277] - Add documentation/article about how to use the "import web-service as relational model" generated model.
- [TEIID-1284] - Need more detail in the Admin guide regarding data roles
- [TEIID-1299] - Remove un-implemented Admin API methods.
Thirdparty Change
- [TEIID-1314] - BigDecimal values truncated with jConnect 6.05
Sub-task
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.