Description of problem: Method java.sql.Clob.getSubstring(int,int) returns either empty string (if second argument, length, is 0) or whole string (if length >= 1). Steps to Reproduce: > DDL CREATE FOREIGN TABLE smalla( intkey integer PRIMARY KEY OPTIONS(NAMEINSOURCE 'intkey', NATIVE_TYPE 'int4'), objectvalue clob OPTIONS(NAMEINSOURCE 'objectvalue', NATIVE_TYPE 'text')) OPTIONS(NAMEINSOURCE 'smalla'); > Query: SELECT * FROM smalla > Java code: Connection con = org.teiid.jdbc.TeiidDriver.getInstance().connect("jdbc:teiid:test@mm://localhost:31000", info); ResultSet rs = con.createStatement().executeQuery("select * from source_pg.smalla"); rs.next(); LOG.info("CLOB: {}", rs.getClob(2).getClass()); LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, 1)); LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, 0)); LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, -1)); con.close(); > Output: 08:03:44.089 [main] INFO sandbox.MainClass - CLOB: class org.teiid.core.types.ClobImpl 08:03:44.091 [main] INFO sandbox.MainClass - CLOB: -24 08:03:44.092 [main] INFO sandbox.MainClass - CLOB: Exception in thread "main" java.sql.SQLException: Invalid length argument to getSubString(): -1 at org.teiid.core.types.ClobImpl.getSubString(ClobImpl.java:154) at sandbox.MainClass.main(MainClass.java:81)
Steven Hawkins <shawkins> updated the status of jira TEIID-3971 to Resolved
Setting 'blocker' to ? because JIRA is blocker.
Steven Hawkins <shawkins> updated the status of jira TEIID-3971 to Closed