Teiid 8.0.0.Final Release Notes
Teiid 8.0.0.Final is the first Teiid release compatible with JBoss AS 7.x.
Overview
Highlights
- DDL Based View Definitions - Define virtual tables, procedures and functions for Dynamic VDBs using DDL.
- MetadataRepository - Pluggable metadata facility for any VDB and models inside it.
- CallableStatement Named Parameters - you can now use CallableStatement named parameter get/set methods.
- New Translator capabilities
- translators may indicate which convert functions they support
- restrict non-join comparisons to only literals.
- return ReusableExecution instances for processing nodes that issue multiple queries.
- translators may indicate support for dependent join handling
- Continuous Asynch Queries to process plans in a streamed window fashion the TeiidStatement/TeiidPreparedStatement methods now take a RequestOptions object to specify continuous mode. See the Client and Developers Guides for more.
- Texttable selectors - can be used to selectively parse only record lines matching a given selector string. Selectors may also be used for column values to join data from other records positionally.
- Enhanced Comparison Support - see the Admin Guide more.
- Comparable LOBs - the system property org.teiid.comparableLobs can be set to use CLOB and BLOB values in comparison/sorting/grouping operations.
- Padded Comparison - the system property org.teiid.padSpace can be set to effectively right pad strings to the same length for comparison.
- Collation Support - the system property org.teiid.collationLocale can be set to use a different collation than the Java UTF-16 default.
- VARBINARY type support - the Teiid VARBINARY type can now be used to support source BINARY and VARBINARY types.
- Greenplum Translator - for use with the Greenplum database.
- Enhanced parse/format pushdown - added more built-in support and extension points for parse/format function pushdown. Added parse/format timestamp handling for SQLServer, Sybase, Oracle, and PostgreSQL.
- User Defined Aggregates - user defined aggregate functions can be defined via extension metadata, DDL, or connector metadata.
- SET PAYLOAD statement - SET PAYLOAD can be used to set a name value pair on a session scoped payload that will be sent with requests.
- ENCRYPT REQUESTS - encryptRequests may be used as a connection/datasource property when not using SSL to indicate that request messgaes and any associated payload should be encrypted.
- 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.
- Support for using the FROM clause post item hints MAKEDEP/MAKENOTDEP has been deprecated. Use the pre item comment hint syntax instead, e.g. /*+ MAKEDEP */ tbl
- decodeinteger/decodestring have been deprecated. A CASE expression should be used instead.
- allowCreateTemporaryTablesByDefault and allowFunctionCallsByDefault are now set to false. When data roles are in use the user must explicitly grant these options to the user on VDB
from 7.x
- TRANSLATE/HAS CRITERIA has been removed. INSTEAD OF trigger actions should be used instead. ROWS_UPDATED, INPUTS, and INPUT are no longer procedure reserved words.
- 7.x or earlier VDBs with table cardinalities set the old unknown value 0 will now report that value as -1 via the metadata API or SYS.TABLES.
- Exact fixed point literals, e.g. 1.0, are now parsed as decimal/BigDecimal values as per the ANSI specification, rather than as double values.
Also the AVG aggregate function will return an exact numeric (BigDecimal) value for integral types rather than returning a double value.
Views that were projecting doubles from exact numeric literals or using AVG will need to be updated. There is also a new system property org.teiid.decimalAsDouble to
enable the pre-8.0 behavior. The BigDecimal form of the AVG function now uses the same precision and scale logic as the division system function, rather than using a
fixed scale of 9.
- BigDecimal division that returns a quotient that is equal to zero will have a scale of zero as well. Prior releases would typically return a zero value with a scale of 16.
- The env function no longer returns the value for the session id, the session_id() function should be used instead.
- The CommandContext no longer provides getEnvironmentProperties()
- Unaliased derived columns in the SELECT clause have different default names than prior releases. The name will be exprX where X is the SELECT clause position.
- The translator API facilities for iterator/bulk updates were combined and updated. Multi-valued literals were replaced by the Parameter class with an associated value iterator
available on the BatchedCommand. The IteratorValueSource class was also removed.
- VARBINARY, OPTIONS, and OUT were added as reserved words.
- AbstractMetadataRecord and its sub-classes use a case-insensitive map for properties rather than a LinkedHashMap. Thus, property key lookups are now case-insensitive.
- Removed the unused ExecutionFactory methods supportsBetweenCriteria and supportsCaseExpression.
from 7.7
- parse/formatdate and parse/formattime are no longer pushdown functions. They are converted into parse/formattimestamp.
- SQLWarning exception chains attached to the ExecutionContext will be returned as a single TeiidSQLWarning rather than as individual TeiidSQLWarnings. See the TeiidSQLWarning javadocs
for how to access the underlying SQLWarning chains.
from 7.5
- Leave was added as a reserved word.
- Lob inlining is incompatible with clients older than 7.6. If a 7.6 server will have older clients that use lobs connect to it, then the BufferService property inline-lobs should be set to false in the teiid-jboss-beans.xml file.
- Oracle translators assume they are using Oracle supplied drivers. If that is not the case, set the Oracle translator execution property oracleSuppliedDriver to false.
- Unordered limits are handled strictly by default. They are longer pushed through conditions, dup removal, or UNION not all - and cannot have conditions pushed through them. Use the NON_STRICT hint to change the behavior to Teiid 7.1 handling.
from 7.4
- OFFSET and LIKE_REGEX were added as reserved words.
- ColumnReference.getName will always return just the element name. Previously it inconsistently returned the qualified and unqualified form depending upon where the ColumnReference appeared.
- As per JDBC4, ResultSetMetadata.getColumnName will return the unaliased column name if available rather than return the alias. Set useJDBC4ColumnNameAndLabelSemantics to false to use the alias name as the column name.
from 7.3
- SYS.PROPERTIES has a new column, ClobValue, to get values exceeding the max string length
- SYS.COLUMNS has two new columns to get statistical information: DistinctCount and NullCount
- ARRAY_AGG is now a reserved word
- The use of an IN procedure parameter with the name "source_name" in a multi-source model, will now be treated the parameter that controls which source
the procedure will execute against.
- Dynamic VDB functions injected via ExecutionFactory.getPushdownFunctions are now scoped to the SYS schema and have a fully qualified name that includes their source type. For example, instead of oracle_model.relate - which was only valid against the oracle_model source, there is now the SYS.oracle_sdo.relate function that is valid for all Oracle sources. Any fully-qualified reference to these functions will need updated.
from 7.2
- The default JDBC credentials are user/user - not admin/teiid
- Unordered limits are no longer pushed through conditions, dup removal, or UNION not all. This prevents the possibility of getting less results than the logical intent of the limit.
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.
- Cache hint now supports "scope" definition. For ex: /* cache(scope:user) */ select * from T1; This hint will override the computed scope based on the query.
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.
See the Admin Guide for more on configuration and installation.
from 7.4
- The configuration for the buffer service now defaults to 256/512 for processor and connector batch sizes respectively. The buffer service also has 4 new properties inline-lobs, memory-buffer-space, memory-buffer-off-heap, and max-storage-object-size.
If you were explicitly setting the value for 'max-reserve-kb', you should consider lowering that value to account for the memory buffer and/or explicitly set the memory-buffer-space.
from 7.4
- The configuration for authorization has been moved off of the RuntimeEngineDeployer bean and onto separate AuthorizationValidator and PolicyDecider beans.
- The configuration for the buffer manager has been simplified to refer to memory sizes in KB, rather than batch columns.
from 7.3
- The default value for the JDBC dynamic vdb importer setting importer.useFullSchemaName is now true, which matches the expected behavior from the documentation.
- The prepared plan cache is now configured via the PreparedPlanCacheConfig bean, rather than through properties on the RuntimeEngineDeployer
- SocketConfiguration.maxSocketThreads will interpret a setting of 0 to mean use the system default of max available processors. Both the ODBC and JDBC transports now default to the 0 setting.
- maxReserveBatchColumns and maxProcessingBatchesColumns will interpret a setting of -1 to mean auto-calculate acceptable values given the max heap and other information. See the admin guide for more.
- The default for org.teiid.useValueCache has changed to false, since typical installations will not greatly benefit from the additional lookup cost.
- The property RuntimeEngineDeployer.allowFunctionCallsByDefault was added so that Teiid 7.4 behavior is compatible with Teiid 7.3. Set this property to false to require permissions for function calls when data roles are enabled.
from 7.2
- Temporary tables can now be restricted by data roles. Use the data-role attribute allow-create-temporary-tables to explicitly enable or disable the usage of temporary tables.
There is also a allowCreateTemporaryTablesByDefault property in the teiid-jboss-beans.xml to control whether usage is allowed by default. For compatibility with prior 7.x releases, the default is to allow
temporary table access.
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.
- TEIID-1170 - correlated subqueries are not allowed in UPDATEs or DELETEs against internal Teiid tables (internal materialized views or temporary tables).
- TEIID-1281 - Negative start indexing is not supported by DB2 and Derby databases. Usage of the Teiid SUBSTRING against these sources should not use negative start values.
- TEIID-1008 - Most versions of Oracle and MySQL do not support deeply nested correlated references. There is currently no workaround for this issue.
- 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.
- TEIID-1511 - When a VDB is deployed and undeployed a socket is left open, which may lead to "too manay open files". Check the defect comments for details.
- TEIID-1648 - Teradata lobs can only be consistently read from an embedded client (with the default option to use the calling thread) and in single threaded mode (transactional or thread-count-for-source-concurrency=1). Usage of Teradata lobs under any other configuration is unlikely to work.
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.
The following components have been updated:
From 7.4
- Saxon was upgraded to 9.2.1.5
- nux 1.6, and xom 1.2 were added.
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.
Detailed Release Notes - Teiid - Version 8.0.0.Final
Bug
- [TEIID-7] - Control of BigDecimal precision and scale
- [TEIID-17] - Root criteria with sibling roots
- [TEIID-32] - Support null values in proc relational joins
- [TEIID-37] - Parse function for XSD datatypes for Web service procedures
- [TEIID-42] - Correlated subqueries in XML criteria
- [TEIID-63] - Recursion Editor RECORD Feature When Limit Exceeded Does Not Work
- [TEIID-69] - Fully implement Hash Join
- [TEIID-102] - Metadata search with * or ? may return the wrong results
- [TEIID-122] - Min/Max cardinality should be enforced during document generation
- [TEIID-987] - Problem regarding how often availability is called on the Facet
- [TEIID-1058] - SessionCleanupThread causes deadlocks when server is clustered
- [TEIID-1371] - Translator does not unload correctly
- [TEIID-1465] - Join between char and varchar
- [TEIID-1600] - Exact numeric issues
- [TEIID-1838] - Change to source model connection through AdminApi using assignToModel() does not reflect in jdbc queries to that source model
- [TEIID-1863] - Default Salesforce URL in teiid-connector-salesforce.rar needs update to SF v22
- [TEIID-1864] - TIMESTAMPADD of SQL_TSI_FRAC_SECOND fails for Sybase 15 with JConnect 6.0.5 driver
- [TEIID-1867] - Duplicate metadata for multisource models
- [TEIID-1868] - Internal Materialized View - Load/Refresh and Assertion Failed
- [TEIID-1869] - Simple capabilities with PostgreSQL 8.3 using decodeinteger causes comm failure
- [TEIID-1870] - Querying random number from DB2 v97 does not push down to source
- [TEIID-1871] - Teiid is handling MySQL5.0 returning DAYNAME as a blob
- [TEIID-1872] - Implicit temp table creation fails with insert and explicit columns
- [TEIID-1873] - Security documentation does not provide adequate information to integrate additional domains for authentication
- [TEIID-1876] - Netezza translator using INTNNOT when it should use INT4NOT
- [TEIID-1878] - Problem with accessing custom generated materialized views
- [TEIID-1879] - Teradata Query Testing - Unhandled exception causing SOCKET CLOSED condition
- [TEIID-1882] - EOFException with 7.6 client against a 7.4 server
- [TEIID-1883] - Query timeout is superceded by synch ttl
- [TEIID-1884] - COMMAND Logging incorrectly reporting END USER COMMAND record count in EDS for forward only resultsets
- [TEIID-1895] - Properly escape the column references for Excel based data
- [TEIID-1899] - Getting Assertion when running Inner Merge Join query with SELECT COUNT(*) on top
- [TEIID-1900] - Teiid client jar file is not complete: NoClassDefFoundError: org/jboss/modules/ModuleLoadException
- [TEIID-1904] - Prepared statement for SOURCE_NAME in multi-source mode throws exception Message:Unable to evaluate
- [TEIID-1905] - Dymamic VDB does not work in 8.0
- [TEIID-1906] - Settting a VDB with data roles from Teiid Designer 7.5 iand deploying to Teiid 8 get a parser error
- [TEIID-1907] - SQLStringVisitor should create call visitNode on Select
- [TEIID-1937] - teiid encouters java.io.StreamCorruptedException
- [TEIID-1952] - Oracle native driver preparedstatement char parameters are required to be padded
- [TEIID-1953] - Greenplum DB - BQT correlated subquery failures
- [TEIID-1954] - System Schema does not show metadata for Indexes in the SYS.Keys or SYS.KeyColumns table
- [TEIID-1956] - WHERE clause throws org.teiid.jdbc.TeiidSQLException: Index: 2, Size: 1
- [TEIID-1957] - Resource Adapter's not passing deployment the validation checks in 7.1.0-Final
- [TEIID-1960] - Client recieving java.lang.IndexOutOfBoundsException in
- [TEIID-1961] - A translator override that is not used by a physical model will cause an exception on the server when the vdb is deployed
- [TEIID-1962] - EDS Ingres10 as Source - LOCATE function not returning correct query results
- [TEIID-1964] - Queries which exceed the query timeout value are reported as canceled with no reference to the reason (timed out)
- [TEIID-1966] - supportsInCriteria is ignored
- [TEIID-1968] - NPE in GoupingNode
- [TEIID-1969] - Missing message for key JDBCQueryExecution.Error_executing_query__1
- [TEIID-1972] - Non-stagable cardinality dependent aggregate should prevent the creation of a staged grouping
- [TEIID-1974] - Function RAND() should be RANDOM(int, int) for Teradata
- [TEIID-1975] - Failure description is incomplete
- [TEIID-1976] - Metadata TYPE_NAME value is null for String Columns
- [TEIID-1978] - SalesForce getDeleted function does not return deleted objects list
- [TEIID-1981] - Admin API does not correctly in Domain mode
- [TEIID-1983] - BaseDelegatingTranslator should delegate properties from setSupports* methods
- [TEIID-1986] - Exception on the slave node during materialization table load
- [TEIID-1987] - Exception Processing Web Service Response
- [TEIID-1990] - UNION pushdown
- [TEIID-1994] - Regression in latest 7.7.1 code
- [TEIID-1998] - Deployed translator JAR fails to be loaded when used in the VDB
- [TEIID-2001] - Skip loading of Function/Other models during the Index Based VDBs
- [TEIID-2002] - Dynmamic Metadata load failure with Sales Force data source
- [TEIID-2003] - NPE processing order by in rule collapse source
- [TEIID-2005] - Source query for Oracle sequence adds an alias, which will return "sequence doesn't exist" errors
- [TEIID-2007] - JDBC warnings are not properly handled
- [TEIID-2017] - CLONE - wrong type on model in VDB definition
- [TEIID-2018] - VDB resources are not associated
- [TEIID-2020] - Running Sybase procedure with jconnect driver in Teiid fails
Enhancement
- [TEIID-1809] - Teiid maven build needs to work off of Jboss parent pom
- [TEIID-1859] - Add a capability to restrict comparisons
- [TEIID-1865] - Thread-safe JDBC connection
- [TEIID-1898] - In Version 8, can the Teiid-<version>-client.jar (JDBC driver) be renamed because it causes confusion with the Teiid-client-<version>.jar used in the server
- [TEIID-1916] - Add support for alternate collation
- [TEIID-1959] - Add a way to exclude tables/procedures from JDBC import
- [TEIID-1984] - GetUpdated and GetDeleted SF procedures should be supported in dynamic vdbs
- [TEIID-1985] - Additional avenues for plan information
- [TEIID-2006] - Add a JDBC/ODBC statement to set the command payload
- [TEIID-2009] - Allow for the possiblity of rewriten user commands by the AuthoriztionValidator
Feature Request
- [TEIID-144] - ENHANCEMENT: Entitlements on XML Document Models
- [TEIID-151] - ENHANCEMENT: Need a way to stop building node in a recursive XML document when the node is repeated
- [TEIID-170] - Fully implement joining of parent and child mapping classes
- [TEIID-174] - add support to MMCallableStatement for named parameter methods
- [TEIID-176] - Auto-Staging tables should be shared in some circumstances
- [TEIID-185] - Add Option For MTOM in Web Services
- [TEIID-223] - XML output elements should be minimized
- [TEIID-417] - Add REST Support to Data Services
- [TEIID-499] - pushdown of parsedate, parsetime, parsetimestamp
- [TEIID-1280] - Allow views/procedures to be defined without designer
- [TEIID-1352] - Produce Admin API jar containing only Interfaces.
- [TEIID-1560] - Add support for user defined / pushdown aggregate functions
- [TEIID-1720] - Support for JBoss AS 7.x as host environment
- [TEIID-1801] - Async Event Processing: Reset and Re-run plan
- [TEIID-1819] - Reading multi entity data from a single data file
- [TEIID-1834] - Add support for a comparable binary type
- [TEIID-1850] - Add support for GreenPlum Database as a source
Quality Risk
- [TEIID-3] - Allow connectors to specify function capability for specific type signature
- [TEIID-1022] - Index metadata should not treat cardinality 0 as unknown
- [TEIID-1604] - Rationalize the context objects
- [TEIID-1837] - Replication should distribute load off of the coordinator
- [TEIID-1841] - week function in teiid not returning expected value
- [TEIID-1842] - Remove translate criteria based update procedures
- [TEIID-1894] - Consolidate bulk/iterator based inserts
- [TEIID-1950] - teiid client settings properties overrides don't work with signed jars
- [TEIID-1995] - Misleading error message
- [TEIID-2008] - Allow client max object size to be settable
- [TEIID-2010] - Remove unused translator supports.
Task
- [TEIID-1839] - Redo the weather example
- [TEIID-1875] - Convert community docs to confluence
- [TEIID-1889] - Standardize logging in Teiid
- [TEIID-1901] - Redo Quick Start guide for Teiid 8.0 changes
- [TEIID-1924] - Update the documents for Teiid 8.0
- [TEIID-1955] - Update to work with JBoss AS 7.1-Final
- [TEIID-1967] - Bind EventDistributor to JNDI tree
- [TEIID-1971] - Provide delegating Metadata Repository implementation class
- [TEIID-2000] - Provide install script for Teiid to be installed in the domain mode
- [TEIID-2004] - Support 1.7 JDBC methods
- [TEIID-2019] - Remove all references to "javax.xml.bind" classes in the Teiid and support stream based xml
Sub-task
- [TEIID-1540] - Add the ability to delegate one shot dependent joins to the translators
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.
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.