Version 2

    Release Notes for Teiid 6.0 (Changes from MetaMatrix 5.5)

    Teiid is the open source future of the MetaMatrix Enterprise Server and associated tooling/runtime components.  Please follow and contribute to the Teiid project at http://www.jboss.org/teiid.  The MetaMatrix Designer is evolving as it own project at http://www.jboss.org/teiiddesigner.

     

    Teiid 6.0 is significantly different than the 5.5.2 codebase from which it is most closely derived.  MetaMatrix users can expect their VDB metadata to be used as is, but connector bindings, custom connectors, and other custom extensions will need to be recreated for Teiid.  For this initial release of Teiid the engine runs in embedded mode only (runtime platform, security/entitlements, etc. are not available).  Some of the listing below affect non-embedded mode functionality and are applicible to future releases.

     

    New Features/Enhancements

     

    • Added support for the nullif, coalesce (2 argument only), and from_timestamp functions.
    • Client SSL and other communication settings can be specified via the classpath in the teiid-client-settings.properties file.   The default file is located in the JDBC client jar.  The socket implementation is also significantly different than before – please consult the settings file to see relevant properties.
    • Client discover of hosts can be restricted to only URL hosts or can be pluggable TEIID-212.
    • Lookup function and XQuery evaluation now appropriately perform validation and role checking.
    • Custom and internal connectors can have pooling controlled through their connector binding rather than requiring code in the connector.  Also non-asynch connector execution assigns the executing thread to Execution until it is closed fixing potential deadlock and pool contention issues.
    • Nested limits can now be pushed to the source.
    • The lookup function can be used to create a lookup table based upon a view, not just a physical table.
    • Added LDAP connector support for less than and greater than.

     

    Deprecations

     

    • The select into syntax for bulk inserting into a target table should not be used.  The standard insert into with a query expression should be used instead.

     

    Removals

     

    • The MetaMatrix QueryBuilder web application is no longer available.  Please use SQuireL (http://squirrel-sql.sourceforge.net/) or another client application for non-Designer query testing with Teiid.
    • The MetaMatrix WebSerives web application is no longer available.  There is no direct replacement for this feature yet.  XML Document and SOAP modeling is still available and may be utilized by custom clients.
    • The MetaMatrix Metadata Repository has been removed from Teiid and has evolved independently as the ModeShape JCR project at http://www.jboss.org/modeshape.
    • The MetaMatrix Console is no longer available.  It will be replaced with a web based console in a later release.

     

    Breaking Changes

     

    • The Connector API was significantly updated and changed, see TEIID-164.  For customers migrating from MetaMatrix to the pending platform version of Teiid a connector compatibility layer will be made available, or professional services can be utilized to fully update custom connectors.
    • Procedural relational and exec stored procedure calls no longer return out/inout, and return parameters by default – these values were not easily accessible when mixed with a result set. However if the procedure does not have a result set the the out/inout/return parameter values will be accessible as a single row.
    • Oracle types imported as timestamp are expected to be an oracle timestamp type. An oracle date imported with a physical model type of timestamp may result in errors and should be represented instead as a date type.
    • Lookup key column values need to be unique.  Previously the last duplicate value would be silently used.

     

    Changelog for Teiid 6.0

    Sub-task

    • [ TEIID-341 ] Create a non-static PlanToProcessConverter
    • [ TEIID-169 ] We should clarify the one-to-one relationship between Batch interface and BasicBatch class in the Connector API
    • [ TEIID-161 ] Move common type conversion logic into a centralized facility for connectors
    • [ TEIID-316 ] Repackage connector api classes
    • [ TEIID-348 ] Use generics in api
    • [ TEIID-352 ] JDBC SQLTranslator issues
    • [ TEIID-353 ] rewrite caseexpression as searchedcaseexpression and remove caseexpression from connector api
    • [ TEIID-354 ] Always create column aliases when there is a limit present.
    • [ TEIID-356 ] Oracle sequence insert override change
    • [ TEIID-357 ] Create a cannonical set of push down functions
    • [ TEIID-374 ] Change metadata reference to return the metadata object rather than the metadataid
    • [ TEIID-425 ] Add back instance pooling
    • [ TEIID-437 ] Oracle type representation breaking change

    Feature Request

    • [ TEIID-240 ] Allow nested limits and limits with order bys
    • [ TEIID-213 ] Improved logging for jgroups activity
    • [ TEIID-248 ] Add function for calculating timestamp based on Unix time (like MySQL FROM_UNIXTIME function)
    • [ TEIID-145 ] Parse double quoted literals as identifiers by default
    • [ TEIID-184 ] Add support for coalesce and nullif
    • [ TEIID-187 ] If the Datasource supports it, send the ANSI syntax in Source Query
    • [ TEIID-182 ] Change client SSL configuration to be based upon the classpath
    • [ TEIID-212 ] Allow for server discovery to be restricted to URL hosts
    • [ TEIID-190 ] Add plugable server discovery for the client
    • [ TEIID-172 ] Change from an ERROR to a WARNING the invalid session exceptions when session times out, terminated, closed, etc.
    • [ TEIID-179 ] Add the ability for the BaseDataSource to accept additional properties
    • [ TEIID-243 ] Add the ability to support vararg functions
    • [ TEIID-242 ] removing the Resource Connection Pool feature
    • [ TEIID-195 ] JDBC Connector type should make "Password" property optional
    • [ TEIID-198 ] lookup should work with virtual groups
    • [ TEIID-214 ] Need to do UCASE on a clob
    • [ TEIID-204 ] FunctionModifer, BasicFunctionModifier methods should throw ConnectorException
    • [ TEIID-197 ] Need ability to trace procedure / web service operation in logs for debugging
    • [ TEIID-237 ] Support SOAP/http transport in the JDBC client driver
    • [ TEIID-200 ] Is the "format" property metadata available to the connector API?
    • [ TEIID-205 ] Capabilities should be able to be specified in an XML file
    • [ TEIID-234 ] ENHANCEMENT: support pushing set criteria larger than max size
    • [ TEIID-158 ] Move connector connection pooling above connectors
    • [ TEIID-148 ] Enhancement to allow runtime checking of null values
    • [ TEIID-154 ] Add new connector property to allow bypass of logic that puts PROCs in transactions.
    • [ TEIID-201 ] Improve ORDER BY handling to allow original column evenwhen it is aliased
    • [ TEIID-246 ] Create a ZipFile utility method for finding all entries that meet the regex expression
    • [ TEIID-164 ] Connector api overhaul
    • [ TEIID-191 ] connector-api enhancements
    • [ TEIID-345 ] Consolidate ifnull, nvl, and coalesce support
    • [ TEIID-414 ] UDF and system functions should be allowed to have a type specific signature

    Bug

    • [ TEIID-21 ] VDB Manifest file inside the VDB archive shoud not be a EMF model.
    • [ TEIID-12 ] Non-XA cache connectors will fail under a transaction
    • [ TEIID-56 ] mmuuid Displays Instead of Connector Name in Logs
    • [ TEIID-47 ] Missing Argument to Connector Log Message
    • [ TEIID-92 ] Joins that have their criteria removed should still be pushed
    • [ TEIID-11 ] Client host name is being set as client IP address in SocketServerConnection
    • [ TEIID-13 ] Cannot check entitlements as session is invalid due to fully-qualified user name not being used in cluster
    • [ TEIID-50 ] Federate process hangs after the execution and never exits
    • [ TEIID-15 ] MMDataSource logger is not serializable
    • [ TEIID-95 ] MMXAConnection recycling issues
    • [ TEIID-22 ] TransformationMetadata is not honoring the QueryMetadataInterface.getVirtualDatabaseName method contract
    • [ TEIID-67 ] Credential map handling problems
    • [ TEIID-25 ] MMConnection.logConnectionProperties needs to exclude credentials
    • [ TEIID-85 ] Virtual Procedure take over 15 minutes to complete
    • [ TEIID-52 ] Change the VM Starter command logic
    • [ TEIID-71 ] Cached code tables not tied to specific vdbs
    • [ TEIID-94 ] CLONE -Invalid Value in txnautoWrap is Treated as OFF
    • [ TEIID-87 ] Datatype transformation problem previewing web-service operation.
    • [ TEIID-5 ] When JChannel is in connected state, JBoss Cache fails to register itself as the co-ordinator
    • [ TEIID-33 ] DatatypeTransformer should return appropriate primitives
    • [ TEIID-44 ] JGroups Message Bus is not starting correctly
    • [ TEIID-121 ] MessageBus in the Service Bindings neds to be transient
    • [ TEIID-14 ] CLONE -Query hangs when in transaction if there is clob, blob, and XML in source queries.
    • [ TEIID-23 ] SynchConnectorWorkItem interrupt should call cancel
    • [ TEIID-115 ] lookup does not validate visibility, entitlements, etc.
    • [ TEIID-90 ] lookup should require key values to be unique
    • [ TEIID-53 ] XQuery evaluation needs to perform recursion detection
    • [ TEIID-125 ] XQuery evaluation needs validation
    • [ TEIID-39 ] Saxon JDOM invalid node type exception with some XQueries
    • [ TEIID-31 ] For SQL Server source, Operand data type numeric is invalid for modulo operator
    • [ TEIID-106 ] Loopback connector incorrectly returns strings for blob and clob type columns
    • [ TEIID-80 ] The audit subsystem cannot reconnect to DB if connection is lost
    • [ TEIID-109 ] DQP should not need to start all connector bindings in the global configuration file on execute.
    • [ TEIID-111 ] NPE when loading invalid function
    • [ TEIID-64 ] CDK tool's example properties file contains outdated info
    • [ TEIID-29 ] Naming consistency in mmquery
    • [ TEIID-107 ] Change ADB Databinding to XMLBeans or JiBX
    • [ TEIID-116 ] Limit clause does not work with XML queries
    • [ TEIID-16 ] view layers cannot be merged with non-deterministic projected symbols
    • [ TEIID-10 ] Upgrade JGroups and Re-Write MetaMatrix Registry using finer grained replication
    • [ TEIID-83 ] SqlEval, used in XQuery, processes fully blocking without time slicing
    • [ TEIID-77 ] Change dqp to not fully qualify the connector using the VDB and Version
    • [ TEIID-110 ] Multiple commons-logging Jars Being Used Is Causing Class Loading Problems
    • [ TEIID-79 ] Issues with shutdown
    • [ TEIID-9 ] Criteria not copied to the other branch of a join
    • [ TEIID-51 ] Apache DBCP is not 1.6 compliant
    • [ TEIID-34 ] Trying to stop hostcontroller, message indicates it could not find a previous instance of hostcontroller to shut down
    • [ TEIID-45 ] Unable to run svcmgr, it can't find a hostcontroller
    • [ TEIID-8 ] XAConnections need closed
    • [ TEIID-60 ] recovery can only work with single identity connectors
    • [ TEIID-91 ] Minor JDBC Connector issues
    • [ TEIID-118 ] ConnectionWrapper idle time is not reset when returned to the pool
    • [ TEIID-49 ] Salesforce connector is reusing the same connection when in single identity mode.
    • [ TEIID-66 ] dqp lifecycle issues
    • [ TEIID-58 ] Fix for error in handling COUNT(DISTINCT col)
    • [ TEIID-54 ] Fix for NPE when handling LOB returned from a UDF
    • [ TEIID-35 ] Fix to SizeUtility to support 64-bit VMs correctly
    • [ TEIID-2 ] Fix for NPE in isSuperUser method.
    • [ TEIID-61 ] Fix for exception when CASE resolves to NULL.
    • [ TEIID-117 ] AliasGenertor defects
    • [ TEIID-120 ] Fix for Name in source -@- delimiter issue with Oracle
    • [ TEIID-101 ] ClusterName by default needs to be set unique
    • [ TEIID-342 ] Quick Start Example at teiid.org refers to Modeler, instead of Designer, in multiple places
    • [ TEIID-343 ] SQLTranslators are held per connection, but are inited for each execution
    • [ TEIID-347 ] Procedural relational and exec queries should not project out or return parameters
    • [ TEIID-351 ] Add proper support for GT and LT criteria
    • [ TEIID-359 ] lpad and rpad implementation issues
    • [ TEIID-360 ] SQLServer SQLTranslator issues
    • [ TEIID-379 ] MySQL connector assumes that database is running in ANSI mode rather than the default mode
    • [ TEIID-382 ] QUARTER function and the BITAND/NOT/OR/XOR functions not covered in Teiid documentation
    • [ TEIID-383 ] Whe running svcmgr the output is sent to the hostcontroller log instead of the console
    • [ TEIID-387 ] Improper Grammar in ShutdownServer Message
    • [ TEIID-389 ] Console log is using windows based path deliminters, causing the log location to not work right on linux
    • [ TEIID-390 ] Loopback execution fails to execute procedures correctly
    • [ TEIID-391 ] Missing Message Key After Server Failed to Start
    • [ TEIID-395 ] Command Log logs a modfieid version of MMCommand
    • [ TEIID-406 ] Extra commands for union are collected when the falg is set to embedded
    • [ TEIID-415 ] Long to double and integer to float conversions should be narrowing
    • [ TEIID-419 ] Missing message for key "WorkerPool.New_thread" in: com.metamatrix.common.i18n
    • [ TEIID-432 ] mmadmin assign / deassignBindingFromModel fails with AdminComponentException
    • [ TEIID-427 ] Access file error exception when RuntimeIndexSelector trying to load indexes from zip file
    • [ TEIID-433 ] Round issues
    • [ TEIID-434 ] Configuration does not look up property definitions correctly, if the property defined on the parent component type
    • [ TEIID-435 ] Update sql detection should be expanded

    Task

    • [ TEIID-263 ] Move capabilities onto connector
    • [ TEIID-326 ] Reimplement Metamatrix registry using JBoss Cache
    • [ TEIID-285 ] Object Cache needs to be replaced with JBoss Cache
    • [ TEIID-283 ] Move hostcontroller communication to JGroups
    • [ TEIID-270 ] Simplify SessionService
    • [ TEIID-299 ] Migrate UDDI Publish/Unpublish Code to Federate
    • [ TEIID-287 ] Remove SQLQueryWebService asynch operations
    • [ TEIID-288 ] Update to netty 3.0.2
    • [ TEIID-301 ] Add a check for unknown criteria in rulepushnonjoincriteria
    • [ TEIID-304 ] Add the LDAP and Salesforce connector to the Embedded Kit
    • [ TEIID-298 ] Add an example to Embedded kit
    • [ TEIID-265 ] Simplify productinfo/connection properties
    • [ TEIID-267 ] Expose JGroups statistics for monitoring
    • [ TEIID-311 ] Cache usage of ServerAdmin in Console ConnectionInfo
    • [ TEIID-329 ] Change sessionid to something non-guessable
    • [ TEIID-262 ] move encryption off of io threads
    • [ TEIID-273 ] server should close inactive connections
    • [ TEIID-312 ] remove sockets per vm property
    • [ TEIID-284 ] Minor comm refactorings
    • [ TEIID-320 ] remove remote exceptions
    • [ TEIID-279 ] Remove usage of ClientConnectionProperties
    • [ TEIID-337 ] make the client module not dependent upon common-internal
    • [ TEIID-294 ] Remove PortableContext/SerializablePortableContext
    • [ TEIID-292 ] use non-nio client sockets
    • [ TEIID-327 ] reimplement connection pooling for SQLQueryWebService
    • [ TEIID-297 ] comm refactoring
    • [ TEIID-256 ] Reduce wait time in TestXMLConnector cache tests
    • [ TEIID-257 ] Refactor MMURL_Properties
    • [ TEIID-271 ] XML Connector changes
    • [ TEIID-264 ] Remove the ApplicationInfo class and replece with Version class
    • [ TEIID-332 ] Remove redundant PartsSupplier.vdb
    • [ TEIID-261 ] Simplify the Service selection policy
    • [ TEIID-289 ] Load the system.vdb from class loader
    • [ TEIID-334 ] UDF model is being loaded even when it is not defined
    • [ TEIID-253 ] Remove unused fields from AtomicRequestMessage
    • [ TEIID-296 ] Modify the registry code not to use the JBoss cache directly
    • [ TEIID-258 ] Remove catch/rethrow with error logs
    • [ TEIID-293 ] Provide a general solution for SQLException unrolling
    • [ TEIID-280 ] Simplify AdminException handling
    • [ TEIID-281 ] Clean-up admin exception handling
    • [ TEIID-306 ] Remote service call exception logging
    • [ TEIID-331 ] Hostcontroller should have its own bootstraping guice module
    • [ TEIID-290 ] Address misc. FindBugs problems
    • [ TEIID-302 ] Misplaced classes during the refactoring
    • [ TEIID-336 ] Misc errors in Console
    • [ TEIID-338 ] Update Arjuna replacement classes
    • [ TEIID-255 ] remove ConnectorRequestStateManager and make ConnectorManager not restartable
    • [ TEIID-318 ] add shutdownnow to workerpool
    • [ TEIID-322 ] Add META-INF/services/java.sql.Driver
    • [ TEIID-269 ] Refactor NodeEditor
    • [ TEIID-324 ] Remove NetUtils ping
    • [ TEIID-310 ] Add procedural relational and xml querying to the reference manual
    • [ TEIID-295 ] Make RuntimeMetadataCatalog non-static
    • [ TEIID-291 ] Remove Distributed VM Config locking
    • [ TEIID-307 ] move command shell to cdk
    • [ TEIID-282 ] Change Database command logger to use CommandLoggerSPI
    • [ TEIID-286 ] Rationalize dqp services
    • [ TEIID-340 ] Updating model count for procedures needs documentation
    • [ TEIID-328 ] Refactor and consolidate jdbc related code
    • [ TEIID-335 ] Create CDK kit
    • [ TEIID-305 ] Update project for 6.0.0
    • [ TEIID-314 ] JGroups commnication is not visible outside loopback network
    • [ TEIID-317 ] Fix embedded test failure related to copying data to config
    • [ TEIID-333 ] Refactor jdbc connection framework out of common-internal
    • [ TEIID-325 ] Remove SourceConnection.isFailed
    • [ TEIID-266 ] Need adminapi calls for cluster host setup
    • [ TEIID-268 ] Convert CurrentConfiguration to a singleton
    • [ TEIID-274 ] Consolidate Reader, CurrentConfiguration, and ConfigurationModelContainer logic
    • [ TEIID-313 ] Replace embedded uuid generation with Java uuids
    • [ TEIID-300 ] Make LogManager a proper singleton
    • [ TEIID-309 ] System Host setup issues
    • [ TEIID-272 ] Host configuration "config" name resolution is verbose and error prone
    • [ TEIID-349 ] Update headers to move copyright into COPYRIGHT.txt
    • [ TEIID-361 ] LogManager is tied with Current Conficuration and makes it hard to use with Embedded
    • [ TEIID-380 ] Upgrade to JUnit 4.4 for project tests
    • [ TEIID-394 ] VMController has verbose interface
    • [ TEIID-411 ] Add join columns to process plan string for join nodes
    • [ TEIID-413 ] Create Zip file for each connector with its dependencies for server setup
    • [ TEIID-424 ] Update client properties
    • [ TEIID-426 ] JDBC Driver name should be changed from "Metamatrix xxx Driver" to "Teiid xxx Driver'

    Quality Risk

    • [ TEIID-126 ] Remove usage of System.out for analysisrecord logging
    • [ TEIID-130 ] Reconsile Axis usage and dependencies
    • [ TEIID-134 ] Change XAConnector to return an XAConnection for getXAConnection
    • [ TEIID-133 ] Refactor XML Connector to Common XML Connector to Minimize Dependencies
    • [ TEIID-135 ] Connector data language should represent update changes as a set clause
    • [ TEIID-132 ] Canel of a non-existant query should not throw an exception
    • [ TEIID-131 ] redundent model support properties should be removed
    • [ TEIID-355 ] deprecate select into targeting a table
    • [ TEIID-384 ] Remove the ValidateCriteriaVisitor
    • [ TEIID-385 ] Replace client logging with java logging
    • [ TEIID-410 ] Simplify command collector visitor