Skip to main content

Teiid 10.1.2 Released

Teiid 10.1.2 has been released. It resolves 13 issues:
  • [TEIID-5176] - Postgresql ODBC driver converts {fn CONCAT()} calls to a "textcat()" function
  • [TEIID-5268] - Anonymous bind login doesn't work for ldap connector
  • [TEIID-5269] - Odata4 metadata roundtrip is not in place
  • [TEIID-5271] - Joining more than one table/view to results of table function causes error
  • [TEIID-5274] - Odata4 translator can't handle conditions on columns which use conversions
  • [TEIID-5275] - OData4 translator doesn't handle IS NOT NULL condition properly
  • [TEIID-5276] - ClassCastException with OData4 translator when using COUNT function without GROUP BY clause
  • [TEIID-5277] - OData4 translator doesn't correctly translate LOCATE function to INDEXOF
  • [TEIID-5278] - Wrong indexing with SUBSTRING function and OData4 translator
  • [TEIID-5279] - OData4 translator incorrecly translates modulo function
  • [TEIID-5280] - OData4 translator: disappearing negation when using 'in' predicate
  • [TEIID-5281] - Issue with concatenating null strings with OData translator
  • [TEIID-5283] - Recursive WITH query results in "java.lang.ClassCastException: org.teiid.query.sql.lang.Query cannot be cast to org.teiid.query.sql.lang.SetQuery"
For those who have logged issues against 10.2, please review the fixes before the final release next weak.

Thanks,
Steve

Comments

Popular posts from this blog

Teiid 8.13.3 Released

Teiid 8.13.3 is now  available .  In total 8.13.3 addresses 10 issues since 8.13.2: [ TEIID-4028 ] - adding salesforce-34 resource adapter does not work through the cli [ TEIID-4066 ] - Odata translator ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl [ TEIID-4070 ] - Issues with resource adapters with api modules in wildfly [ TEIID-4089 ] - Teiid JDBC driver does not reset the update count when calling getMoreResults(int) [ TEIID-4093 ] - OData authentication fails with NPE when gss-pattern related properties are included in VDB [ TEIID-4096 ] - AssertionError with independent side of a dependent join that has an ordered limit [ TEIID-3050 ] - allow for more incremental insert with iterator [ TEIID-4075 ] - Netezza translator to support common table expressions [ TEIID-4098 ] - Always preserve columns order in google spreadsheets models [ TEIID-4046 ] - OData - $skip is beeing ignor

Tech Tip: Teiid SQL Language MAKEDEP Hint Explained

In this article I will explain what a MAKEDEP hint is, how and when, why it should be used in Teiid. What: MAKEDEP is query hint.  When a query hint is defined in the SQL query it influences the Teiid query planner to optimize the query in a way that is driven by the user. MAKEDEP means "make this as a dependent join". What is a Dependent Join? For example if we have query like: SELECT * FROM X INNER JOIN Y ON X.PK = Y.FK Where the data for X, and Y are coming from two different sources like Oracle and WebService in Teiid, so in relational algebra you can represent above query as Here the result tuples from node X and node Y are being simultaneously fetched by Teiid query engine, then it joins the both the results inside Teiid engine based on the specified X.PK = Y.PK condition and returns the filtered resulted to the user. simple.. Now, what if, if X table has 5 rows and Y table has 100K rows? In order to do the JOIN naively Teiid need sto read all the 5

Access Teiid from node.js

Are you writing a "node.js" application and would like to access Teiid VDB from it? If "yes", this is currently possible using NPM package "pg" .  Since, Teiid supports the PG transport, you can use this PostgreSQL client for "node.js" for accessing the Teiid. For example if you have VDB called "northwind" deployed on your Teiid server, and it has table called "customers" and you are using default configuration such as user = 'user' password = 'user' host = 127.0.0.1 port = 35432 then you can use following to write simple access program to Teiid var pg = require('pg'); var connectionString = "pg://user:user@localhost:35432/northwind" pg.connect(connectionString, function(err, client) { client.query('SELECT CustomerID, ContactName, ContactTitle FROM Customers', function(err, result) { console.log(result.rows) }); }); If you want