6 Replies Latest reply on Apr 14, 2013 8:52 PM by kchen007

    Teiid 8.3 metadata getPrimaryKeys problem

    kchen007 Apprentice

      We have one dynamic vdb that will fail to getPrimaryKeys(vdbName, modelName, tableName) for 2 tables. The exception is :

      Caused by: java.lang.IllegalArgumentException: fromKey > toKey

           at java.util.TreeMap$NavigableSubMap.<init>(TreeMap.java:1240)

           at java.util.TreeMap$AscendingSubMap.<init>(TreeMap.java:1677)

           at java.util.TreeMap.subMap(TreeMap.java:862)

           at org.teiid.dqp.internal.process.RecordTable.processQuery(RecordTable.java:189)

           at org.teiid.dqp.internal.process.SchemaChildRecordTable$1.getChildIterator(SchemaRecordTable.java:81)

           at org.teiid.dqp.internal.process.SchemaChildRecordTable$1.getChildIterator(SchemaRecordTable.java:77)

           at org.teiid.dqp.internal.process.RecordTable$ExpandingSimpleIterator.next(RecordTable.java:111)

           at org.teiid.dqp.internal.process.RecordTable$ExpandingSimpleIterator.next(RecordTable.java:107)



      the fromKey value is "EZ", the toKey value is "E[". But the TreeMap is created with case insensitive string comparator, so it will compare "ez" and "e[" instead, since '[' has a lower value than 'z' in ASCII table, the TreeMap will throw the above exception.


      The same vdb and code works fine with Teiid 8.1.  It is very important for us.