[JBoss JIRA] (TEIID-2775) HIVE2: cannot run ORDER BY SQL without LIMIT
by Ivan Chan (JIRA)
[ https://issues.jboss.org/browse/TEIID-2775?page=com.atlassian.jira.plugin... ]
Ivan Chan updated TEIID-2775:
-----------------------------
Environment: Teiid with HIVE2 Impala (was: HIVE2 with Teiid)
Workaround Description:
Run a SQL with order by clause, but no limit clause with HIVE2/ IMPLAMA.
For example, a sql like the following:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
was:
Run a SQL with order by clause, but no limit clause with HIVE2.
For example, a sql like the following:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Description:
Cannot run SQL with order by, but without limit clause.
If I run a sql like the following with HIVE2/ IMPALA:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Teiid would convert it to:
SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
And I will get the following exception:
[3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
... 3 more
Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
... 13 more
Maybe you guys should consider to do order by in memory if LIMIT is not presented for HIVE2 IMPALA. Thanks.
LINK:
http://www.rittmanmead.com/2013/11/connecting-obiee-11-1-1-7-to-cloudera-...
was:
Cannot run SQL with order by, but without limit clause.
If I run a sql like the following with HIVE2:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Teiid would convert it to:
SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
And I will get the following exception:
[3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
... 3 more
Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
... 13 more
Maybe you guys should consider to do order by in memory if LIMIT is not presented. Thanks.
> HIVE2: cannot run ORDER BY SQL without LIMIT
> ---------------------------------------------
>
> Key: TEIID-2775
> URL: https://issues.jboss.org/browse/TEIID-2775
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.6
> Environment: Teiid with HIVE2 Impala
> Reporter: Ivan Chan
> Assignee: Steven Hawkins
> Labels: teiid
>
> Cannot run SQL with order by, but without limit clause.
> If I run a sql like the following with HIVE2/ IMPALA:
> select "account_type"
> from "hive2DS"."accounts"
> group by "account_type"
> order by "account_type"
> Teiid would convert it to:
> SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
> And I will get the following exception:
> [3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
> Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
> ... 3 more
> Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
> at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
> at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
> at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
> at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
> at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
> at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 13 more
> Maybe you guys should consider to do order by in memory if LIMIT is not presented for HIVE2 IMPALA. Thanks.
> LINK:
> http://www.rittmanmead.com/2013/11/connecting-obiee-11-1-1-7-to-cloudera-...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (TEIID-2775) HIVE2: cannot run ORDER BY SQL without LIMIT
by Ivan Chan (JIRA)
[ https://issues.jboss.org/browse/TEIID-2775?page=com.atlassian.jira.plugin... ]
Ivan Chan updated TEIID-2775:
-----------------------------
Description:
Cannot run SQL with order by, but without limit clause.
If I run a sql like the following with HIVE2:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Teiid would convert it to:
SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
And I will get the following exception:
[3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
... 3 more
Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
... 13 more
Maybe you guys should consider to do order by in memory if LIMIT is not presented. Thanks.
was:
Cannot run SQL with order by, but without limit clause.
If I run a sql like the following with HIVE2:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Teiid would convert it to:
SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
And I will get the following exception:
[3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
... 3 more
Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
... 13 more
> HIVE2: cannot run ORDER BY SQL without LIMIT
> ---------------------------------------------
>
> Key: TEIID-2775
> URL: https://issues.jboss.org/browse/TEIID-2775
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.6
> Environment: HIVE2 with Teiid
> Reporter: Ivan Chan
> Assignee: Steven Hawkins
> Labels: teiid
>
> Cannot run SQL with order by, but without limit clause.
> If I run a sql like the following with HIVE2:
> select "account_type"
> from "hive2DS"."accounts"
> group by "account_type"
> order by "account_type"
> Teiid would convert it to:
> SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
> And I will get the following exception:
> [3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
> Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
> ... 3 more
> Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
> at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
> at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
> at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
> at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
> at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
> at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 13 more
> Maybe you guys should consider to do order by in memory if LIMIT is not presented. Thanks.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (TEIID-2775) HIVE2: cannot run ORDER BY SQL without LIMIT
by Ivan Chan (JIRA)
Ivan Chan created TEIID-2775:
--------------------------------
Summary: HIVE2: cannot run ORDER BY SQL without LIMIT
Key: TEIID-2775
URL: https://issues.jboss.org/browse/TEIID-2775
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 8.6
Environment: HIVE2 with Teiid
Reporter: Ivan Chan
Assignee: Steven Hawkins
Cannot run SQL with order by, but without limit clause.
If I run a sql like the following with HIVE2:
select "account_type"
from "hive2DS"."accounts"
group by "account_type"
order by "account_type"
Teiid would convert it to:
SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0
And I will get the following exception:
[3:51:04 PM] Natalia: org.teiid.jdbc.TeiidSQLException: Error trying to obtain metadata information for the tables that match %: TEIID30489 Unable to load metadata for VDB name
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.account_type AS c_0 FROM accounts g_0 GROUP BY g_0.account_type ORDER BY c_0]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:317)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:273)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
... 3 more
Caused by: java.sql.SQLException: NotImplementedException: ORDER BY without LIMIT currently not supported
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:165)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:153)
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:198)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:106)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
... 13 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (TEIID-2769) BLOB as virtual procedure parameter is getting closed
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2769?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-2769.
-----------------------------------
Fix Version/s: 8.7
Resolution: Done
added a more descriptive error message.
> BLOB as virtual procedure parameter is getting closed
> -----------------------------------------------------
>
> Key: TEIID-2769
> URL: https://issues.jboss.org/browse/TEIID-2769
> Project: Teiid
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.4.1
> Reporter: Van Halbert
> Assignee: Steven Hawkins
> Fix For: 8.7
>
>
> Not sure what is the cause.
> I have two virtual procedures [1][2]. [2] has a XMLLiteral parameter. I call [2] inside [1]. However I get exception [3] because the response.result blob stream is apparently closed.
> [1] CREATE VIRTUAL PROCEDURE
> BEGIN
> SELECT t.* FROM (EXEC PeopleRestXmlSource.invokeHttp('GET', null, null, TRUE)) AS response, TABLE(EXEC PeopleRestXmlView.getPeople_response(XMLPARSE(DOCUMENT response.result))) AS t;
> END
> [2] CREATE VIRTUAL PROCEDURE
> BEGIN
> SELECT t.* FROM XMLTABLE('//return' PASSING PeopleJaxwsView.getPeopleByName_response.xml_in COLUMNS name string PATH 'text()') AS t;
> END
> [3]
> org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate XMLPARSE(DOCUMENT response.result): TEIID30331 java.sql.SQLException: Already Freed.
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:668)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:63)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:516)
> at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135)
> at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40)
> at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79)
> at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:242)
> at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:278)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:102)
> at $Proxy1.read(Unknown Source)
> at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:377)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:525)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:393)
> at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327)
> at JDBCClient.execute(JDBCClient.java:81)
> at JDBCClient.main(JDBCClient.java:48)
> Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate XMLPARSE(DOCUMENT response.result): TEIID30331 java.sql.SQLException: Already Freed.
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:608)
> at org.teiid.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:804)
> at org.teiid.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:211)
> at org.teiid.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:82)
> at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
> at org.teiid.query.processor.relational.JoinStrategy.openRight(JoinStrategy.java:105)
> at org.teiid.query.processor.relational.NestedTableJoinStrategy.process(NestedTableJoinStrategy.java:114)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:211)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92)
> at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:563)
> at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:68)
> at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:356)
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:283)
> at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:257)
> at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:157)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:139)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:435)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:320)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:248)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:269)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30331 java.sql.SQLException: Already Freed.
> at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:734)
> at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:668)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:606)
> ... 45 more
> Caused by: java.sql.SQLException: java.sql.SQLException: Already Freed.
> at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:105)
> at org.teiid.core.types.BaseLob.getCharacterStream(BaseLob.java:98)
> at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:727)
> ... 47 more
> Caused by: java.io.IOException: java.sql.SQLException: Already Freed.
> at org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:205)
> at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:103)
> ... 49 more
> Caused by: java.sql.SQLException: Already Freed.
> at org.teiid.translator.ws.BinaryWSProcedureExecution$StreamingBlob.getBinaryStream(BinaryWSProcedureExecution.java:72)
> at org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:203)
> ... 50 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (TEIID-2774) wellformed parameter not exposed in parser for to_chars/to_bytes
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-2774:
-------------------------------------
Summary: wellformed parameter not exposed in parser for to_chars/to_bytes
Key: TEIID-2774
URL: https://issues.jboss.org/browse/TEIID-2774
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 8.5
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 8.7
Part of the resolution for TEIID-2441 was to add an optional parameter to to_chars/to_bytes to control if the function was supposed to be validating. The parser is enforcing that the encoding is a literal, so it needs updated for the parameter as well.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (TEIID-2772) System tables should report array information
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2772?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-2772.
-----------------------------------
Resolution: Done
Updated the runtime type to report the array type. Could consider explicitly adding the array dimension information, but that is at least implied by the type name. Left the rest of the metadata reported as the component type though. It may be needed to further adjust this so that length and other fields reflect the array information, rather than the base component type. However at this point since arrays are effectively unbounded in the metadata that didn't seem necessary.
> System tables should report array information
> ---------------------------------------------
>
> Key: TEIID-2772
> URL: https://issues.jboss.org/browse/TEIID-2772
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.5
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.7
>
>
> The procedure columns and columns tables should report at least the type name as the array type. Currently we only report the base component type.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years