[JBoss JIRA] (TEIID-4567) UCASE and LCASE functions do not work with CLOBs.
by sameer P (JIRA)
[ https://issues.jboss.org/browse/TEIID-4567?page=com.atlassian.jira.plugin... ]
sameer P commented on TEIID-4567:
---------------------------------
Hi [~shawkins], thanks for the fix. The fix fixes the exception (or the error) that we used to get before. But, not sure if the lcase and ucase work on clob correctly as the below screenshots show that the conversion will not work:
!Teiid_lcase.PNG|thumbnail! !Teiid_ucase.PNG|thumbnail!
> UCASE and LCASE functions do not work with CLOBs.
> --------------------------------------------------
>
> Key: TEIID-4567
> URL: https://issues.jboss.org/browse/TEIID-4567
> Project: Teiid
> Issue Type: Enhancement
> Components: Common
> Affects Versions: 8.0
> Environment: In any Environment
> Reporter: sameer P
> Assignee: Steven Hawkins
> Fix For: 9.2
>
> Attachments: Teiid_lcase.PNG, Teiid_ucase.PNG
>
>
> With the fresh Server, without adding any datasource, if I run the query :
> {code:sql}
> select lcase(convert('A', clob))
> {code} ,
> It gives the following exception:
> {code:sql}
> org.teiid.jdbc.TeiidSQLException: TEIID30328 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate lcase(?): TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> 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:723)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:65)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:561)
> 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:284)
> at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:322)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98)
> at com.sun.proxy.$Proxy1.read(Unknown Source)
> at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:421)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:570)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:423)
> at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:354)
> at DVConnection.main(DVConnection.java:110)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30328 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate lcase(?): TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:728)
> at org.teiid.query.processor.relational.ProjectNode.updateTuple(ProjectNode.java:194)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:169)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:477)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:349)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:275)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30341 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:1389)
> at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:756)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:726)
> ... 18 more
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30341 Remote org.teiid.api.exception.query.FunctionExecutionException: TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.processor.relational.SubqueryAwareEvaluator.evaluatePushdown(SubqueryAwareEvaluator.java:438)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:1387)
> ... 20 more
> Exception in thread "main" org.teiid.jdbc.TeiidSQLException: TEIID30328 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate lcase(?): TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> 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:723)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:65)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:561)
> 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:284)
> at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:322)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98)
> at com.sun.proxy.$Proxy1.read(Unknown Source)
> at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:421)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:570)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:423)
> at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:354)
> at DVConnection.main(DVConnection.java:110)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30328 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate lcase(?): TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:728)
> at org.teiid.query.processor.relational.ProjectNode.updateTuple(ProjectNode.java:194)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:169)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:477)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:349)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:275)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30341 Remote org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:1389)
> at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:756)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:726)
> ... 18 more
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30341 Remote org.teiid.api.exception.query.FunctionExecutionException: TEIID30341 Function lcase is marked in the function metadata as a function that must be evaluated at the source.
> at org.teiid.query.processor.relational.SubqueryAwareEvaluator.evaluatePushdown(SubqueryAwareEvaluator.java:438)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:1387)
> ... 20 more
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4730) Problem with Import VDB with Materialized View (external)
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4730?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-4730:
-------------------------------------
Updated the pull request with version 0 in the scope FULL case.
> Problem with Import VDB with Materialized View (external)
> ---------------------------------------------------------
>
> Key: TEIID-4730
> URL: https://issues.jboss.org/browse/TEIID-4730
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: * Teiid 9.1.2
> * CentOs 7
> * WildFly 10
> Reporter: Pedro Inácio
> Assignee: Ramesh Reddy
> Labels: CR1
> Fix For: 9.2
>
> Attachments: externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined a VDB which contains a Model that has External Materialization, when importing this VDB into another that also uses External Materialization, Teiid Server is searching in the wrong place for the view status.
> Example:
> ..
> <import-vdb name="CountryServiceListVDB" version="1" import-data-policies="true"/>
> ...
> <model name="MyView" type="VIRTUAL">
> ...
> SELECT cns,
> country_code
> FROM NumberingPlan.numbering_plan;
> ....
> </metadata>
> </model>
> *NumberingPlan.numbering_plan is defined in the imported VDB, and is also Materialized.*
> *Warning in Logs: *
> 17:51:45,161 WARN [org.teiid.MATVIEWS] (Worker8_QueryProcessorQueue10653) n9M6de3y5xHM org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized.status ON VDBName = 'ExternalMaterializationOrderProblem' AND VDBVersion = '1' AND SchemaName = 'NumberingPlan' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4730) Problem with Import VDB with Materialized View (external)
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4730?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4730:
---------------------------------------
We're getting closer. We still however want to always interact with the status table using all columns - vdb name, version, schema. Where the vdb name is always the originating, and the version is 0 for FULL.
> Problem with Import VDB with Materialized View (external)
> ---------------------------------------------------------
>
> Key: TEIID-4730
> URL: https://issues.jboss.org/browse/TEIID-4730
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: * Teiid 9.1.2
> * CentOs 7
> * WildFly 10
> Reporter: Pedro Inácio
> Assignee: Ramesh Reddy
> Labels: CR1
> Fix For: 9.2
>
> Attachments: externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined a VDB which contains a Model that has External Materialization, when importing this VDB into another that also uses External Materialization, Teiid Server is searching in the wrong place for the view status.
> Example:
> ..
> <import-vdb name="CountryServiceListVDB" version="1" import-data-policies="true"/>
> ...
> <model name="MyView" type="VIRTUAL">
> ...
> SELECT cns,
> country_code
> FROM NumberingPlan.numbering_plan;
> ....
> </metadata>
> </model>
> *NumberingPlan.numbering_plan is defined in the imported VDB, and is also Materialized.*
> *Warning in Logs: *
> 17:51:45,161 WARN [org.teiid.MATVIEWS] (Worker8_QueryProcessorQueue10653) n9M6de3y5xHM org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized.status ON VDBName = 'ExternalMaterializationOrderProblem' AND VDBVersion = '1' AND SchemaName = 'NumberingPlan' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4745) Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4745?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4745:
---------------------------------------
Typically you'd expect materialization to be employed in this scenario - it's just that you are requesting more logic around the load event based upon file modifications.
There is also a direct text table feature in hsql http://hsqldb.org/doc/2.0/guide/texttables-chapt.html
> Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
> -----------------------------------------------------------------------------------------
>
> Key: TEIID-4745
> URL: https://issues.jboss.org/browse/TEIID-4745
> Project: Teiid
> Issue Type: Enhancement
> Environment: * WildFly 10
> * Teiid Server 9.1.2
> * CentOs 7
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
>
> When using the file resource adapter _org.jboss.teiid.resource-adapter.file_, it should be possible that the system per se, by the means of a new property in the resource-adapter, or other option in the view definition, or other configuration elsewhere, to not to unnecessary load a file that is already loaded. Theoretically it should be possible, for example, to check the file date or the file checksum, to see if the file is already loaded by _Teiid_. If it is, then there is no need to parse the file again.
> This is important due to, specially, performance improvements. If there are a lot of files to be processed, and these files are big (200 MB or more), the system will be processing over and over again the same files if they are not updated for quite some time.
> If, for example, the user uses a Materialized View, then the view will be constantly being updated with the same data, which brings another performance penalty.
> *Note*: This could be extended to other resource-adapters with some sort of last data date for example, if the user whant to use this sort of mechanism. For example, if using a database like MySQL as source, then tthe user could define a last update table, and the system could do a check first against this table before tryng to load the data.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4745) Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
by Pedro Inácio (JIRA)
Pedro Inácio created TEIID-4745:
-----------------------------------
Summary: Avoid loading the same file over again when using 'org.jboss.teiid.resource-adapter.file'
Key: TEIID-4745
URL: https://issues.jboss.org/browse/TEIID-4745
Project: Teiid
Issue Type: Enhancement
Environment: * WildFly 10
* Teiid Server 9.1.2
* CentOs 7
Reporter: Pedro Inácio
Assignee: Steven Hawkins
When using the file resource adapter _org.jboss.teiid.resource-adapter.file_, it should be possible that the system per se, by the means of a new property in the resource-adapter, or other option in the view definition, or other configuration elsewhere, to not to unnecessary load a file that is already loaded. Theoretically it should be possible, for example, to check the file date or the file checksum, to see if the file is already loaded by _Teiid_. If it is, then there is no need to parse the file again.
This is important due to, specially, performance improvements. If there are a lot of files to be processed, and these files are big (200 MB or more), the system will be processing over and over again the same files if they are not updated for quite some time.
If, for example, the user uses a Materialized View, then the view will be constantly being updated with the same data, which brings another performance penalty.
*Note*: This could be extended to other resource-adapters with some sort of last data date for example, if the user whant to use this sort of mechanism. For example, if using a database like MySQL as source, then tthe user could define a last update table, and the system could do a check first against this table before tryng to load the data.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4743) Dependent View with External Materialization load problems
by Pedro Inácio (JIRA)
[ https://issues.jboss.org/browse/TEIID-4743?page=com.atlassian.jira.plugin... ]
Pedro Inácio edited comment on TEIID-4743 at 2/6/17 5:25 AM:
-------------------------------------------------------------
With *SCHEMA* the problem is the same:
{panel}
2017-02-06 10:23:50,603 WARN [org.teiid.MATVIEWS] (Worker2198_QueryProcessorQueue4508319) w4F4Wx31BECU org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN CountryServiceListRawMaterialized.status ON SchemaName = 'CountryServiceListRaw' AND Name = 'country_service_list_raw' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
{panel}
was (Author: pringi):
With *SCHEMA* the problem is the same:
{code:batch}
2017-02-06 10:23:50,603 WARN [org.teiid.MATVIEWS] (Worker2198_QueryProcessorQueue4508319) w4F4Wx31BECU org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN CountryServiceListRawMaterialized.status ON SchemaName = 'CountryServiceListRaw' AND Name = 'country_service_list_raw' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
{code}
> Dependent View with External Materialization load problems
> ----------------------------------------------------------
>
> Key: TEIID-4743
> URL: https://issues.jboss.org/browse/TEIID-4743
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: # MySql 5.6.35
> # WildFly 10
> # Teiid Server 9.1.2
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Fix For: 9.2
>
> Attachments: ddl.sql, externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined two views with external materialization, and second view (my_view) uses the first view (numbering_plan).
> {panel:title=Second view (my_view) definition}
> CREATE VIEW my_view(
> ...
> )
> OPTIONS(
> MATERIALIZED 'TRUE',
> MATERIALIZED_TABLE 'MyMaterialized.my_view_cache',
> ....
> )
> AS
> SELECT cns,
> country_code
> FROM NumberingPlan2.numbering_plan;
> {panel}
> When _my_view_ is loaded for the first time the following error appears:
> {panel:title=First Warning}
> 14:41:13,693 WARN [org.teiid.MATVIEWS] (Worker1_QueryProcessorQueue27) 7qmYa3eWflIY org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized2.status ON SchemaName = 'NumberingPlan2' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
> {panel}
> If _my_view _is queried in the meantime something like this appears in logs (and in the client who tried to perform the query against _my_view_):
> {panel:title=Invoking my_view error}
> 14:49:04,493 WARN [org.teiid.PROCESSOR] (Worker7_QueryProcessorQueue10979) 57KCZOf/UjCV TEIID30020 Processing exception for request 57KCZOf/UjCV.0 'Group does not exist: my_view'. Originally QueryResolverException ResolverUtil.java:880. Enable more detailed logging to see the entire stacktrace.
> {panel}
> We have to wait until _my_view_ *MATVIEW_TTL* 'expires' in order for the view to be loaded and start to have results being returned. Of course we can call *loadMatView *explicitly, but the system could be wise enough to know that has one view that is dependent of another and that the materialization must occur first, so it should have waited in the background for the _numbering_plan _materialization to occur and then trigger the materialization of _my_view_ afterwards (or if the materialization is not available then at least consult the 'original' data instead).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4743) Dependent View with External Materialization load problems
by Pedro Inácio (JIRA)
[ https://issues.jboss.org/browse/TEIID-4743?page=com.atlassian.jira.plugin... ]
Pedro Inácio commented on TEIID-4743:
-------------------------------------
With *SCHEMA* the problem is the same:
{code:batch}
2017-02-06 10:23:50,603 WARN [org.teiid.MATVIEWS] (Worker2198_QueryProcessorQueue4508319) w4F4Wx31BECU org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN CountryServiceListRawMaterialized.status ON SchemaName = 'CountryServiceListRaw' AND Name = 'country_service_list_raw' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('CountryServiceListRaw', 'country_service_list_raw', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
{code}
> Dependent View with External Materialization load problems
> ----------------------------------------------------------
>
> Key: TEIID-4743
> URL: https://issues.jboss.org/browse/TEIID-4743
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: # MySql 5.6.35
> # WildFly 10
> # Teiid Server 9.1.2
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Fix For: 9.2
>
> Attachments: ddl.sql, externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined two views with external materialization, and second view (my_view) uses the first view (numbering_plan).
> {panel:title=Second view (my_view) definition}
> CREATE VIEW my_view(
> ...
> )
> OPTIONS(
> MATERIALIZED 'TRUE',
> MATERIALIZED_TABLE 'MyMaterialized.my_view_cache',
> ....
> )
> AS
> SELECT cns,
> country_code
> FROM NumberingPlan2.numbering_plan;
> {panel}
> When _my_view_ is loaded for the first time the following error appears:
> {panel:title=First Warning}
> 14:41:13,693 WARN [org.teiid.MATVIEWS] (Worker1_QueryProcessorQueue27) 7qmYa3eWflIY org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized2.status ON SchemaName = 'NumberingPlan2' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan2', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
> {panel}
> If _my_view _is queried in the meantime something like this appears in logs (and in the client who tried to perform the query against _my_view_):
> {panel:title=Invoking my_view error}
> 14:49:04,493 WARN [org.teiid.PROCESSOR] (Worker7_QueryProcessorQueue10979) 57KCZOf/UjCV TEIID30020 Processing exception for request 57KCZOf/UjCV.0 'Group does not exist: my_view'. Originally QueryResolverException ResolverUtil.java:880. Enable more detailed logging to see the entire stacktrace.
> {panel}
> We have to wait until _my_view_ *MATVIEW_TTL* 'expires' in order for the view to be loaded and start to have results being returned. Of course we can call *loadMatView *explicitly, but the system could be wise enough to know that has one view that is dependent of another and that the materialization must occur first, so it should have waited in the background for the _numbering_plan _materialization to occur and then trigger the materialization of _my_view_ afterwards (or if the materialization is not available then at least consult the 'original' data instead).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4717) Add Support for 'ALLOW FILTERING' in Teiid Cassandra Translator
by Vijay K (JIRA)
[ https://issues.jboss.org/browse/TEIID-4717?page=com.atlassian.jira.plugin... ]
Vijay K commented on TEIID-4717:
--------------------------------
IMHO, appending ALLOW FILTERING to all the tables of the model by default may lead to unintended consequences in-terms of performance, I think that is the reason why Cassandra is warning. It should be left to discreation of the developer, so that he/she understands the consequences and OK with that.
Moreover some may not be interested in applying ALLOW FILTERING hint on all the tables, they may need the flexibility to allow at table level (as in my case)
> Add Support for 'ALLOW FILTERING' in Teiid Cassandra Translator
> ---------------------------------------------------------------
>
> Key: TEIID-4717
> URL: https://issues.jboss.org/browse/TEIID-4717
> Project: Teiid
> Issue Type: Enhancement
> Components: Misc. Connectors
> Reporter: Vijay K
> Labels: cassandra
> Fix For: 9.3
>
>
> At certain times it is unavoidable to use few columns in the where clause which are not part of the index, in that case Cassandra driver throws error
> {color:red}Bad Request: Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING{color}
> As a user I should be able to configure the Cassandra translator to append *ALLOW FILTERING* to the generated query (CQL)
> References:
> https://www.datastax.com/dev/blog/allow-filtering-explained-2
> https://developer.jboss.org/thread/239011
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months
[JBoss JIRA] (TEIID-4213) Cassandra translator: enable pushdown of aggregate functions
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4213?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4213.
-----------------------------------
Fix Version/s: 9.2
(was: 9.3)
Assignee: Steven Hawkins (was: Ramesh Reddy)
Resolution: Done
With TEIID-4476 added the initial pushdown support of basic aggregates by looking for the 2.2 version of cassandra.
> Cassandra translator: enable pushdown of aggregate functions
> ------------------------------------------------------------
>
> Key: TEIID-4213
> URL: https://issues.jboss.org/browse/TEIID-4213
> Project: Teiid
> Issue Type: Feature Request
> Components: Misc. Connectors
> Affects Versions: 8.12.x
> Reporter: Jan Stastny
> Assignee: Steven Hawkins
> Priority: Minor
> Fix For: 9.2
>
>
> Cassandra supports basic aggregate functions:
> MIN(),MAX(),SUM() and AVG()
> Currently Teiid doesn't push such queries.
> NOTE:In case of AVG() there is difference between the values returned from Teiid vs. Cassandra for an integer column. Cassandra returns only whole part of the number as integer, Teiid returns bigdecimal.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 10 months