[JBoss JIRA] (TEIID-5272) Improve error message when using LATERAL reference in RIGHT or FULL joins
by dalex dalex (JIRA)
[ https://issues.jboss.org/browse/TEIID-5272?page=com.atlassian.jira.plugin... ]
dalex dalex commented on TEIID-5272:
------------------------------------
[~shawkins] I applied changes from the issue for 10.1.0 Teiid version. If I run such queries:
{code:sql}
select * from views.v x1 right join texttable(x1.a||'' columns a string) x2 on x1.a=x2.a ;;
select * from views.v x1 right join arraytable(array[x1.a] columns a string) x2 on x1.a=x2.a ;;
select * from views.v x1 right join OBJECTTABLE(language 'teiid_script' 'par1' PASSING x1.a AS par1 COLUMNS a string 'par1') x2 on x1.a=x2.a ;;
select * from views.v x1 right join xmltable('/a' PASSING xmlparse(document '<a id="' || x1.a || '"/>') COLUMNS a integer PATH '@id') x2 on x1.a=x2.a ;;
--FULL JOIN
select * from views.v x1 full join texttable(x1.a||'' columns a string) x2 on x1.a=x2.a ;;
select * from views.v x1 full join arraytable(array[x1.a] columns a string) x2 on x1.a=x2.a ;;
select * from views.v x1 full join OBJECTTABLE(language 'javascript' 'par1' PASSING x1.a AS par1 COLUMNS a string 'par1') x2 on x1.a=x2.a ;;
select * from views.v x1 full join xmltable('/a' PASSING xmlparse(document '<a id="' || x1.a || '"/>') COLUMNS a integer PATH '@id') x2 on x1.a=x2.a ;;
{code}
I get the same error as before:
{code:noformat}
Error: Remote org.teiid.api.exception.query.QueryResolverException: TEIID31119 Symbol x1.a is specified with an unknown group context
{code}
> Improve error message when using LATERAL reference in RIGHT or FULL joins
> -------------------------------------------------------------------------
>
> Key: TEIID-5272
> URL: https://issues.jboss.org/browse/TEIID-5272
> Project: Teiid
> Issue Type: Quality Risk
> Components: Query Engine
> Affects Versions: 10.1
> Environment: teiid-10.1.0 on WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final)
> Reporter: dalex dalex
> Assignee: Steven Hawkins
> Fix For: 10.2
>
>
> All table functions cause errors in queries containing RIGHT or FULL JOINs. For example, such query:
> {code:sql}
> select * from views.v x1 right join table(select x1.b a) x2 on x1.a=x2.a ;;
> {code}
> causes such error:
> {code:noformat}
> 2018-03-05 10:25:02,356 WARN [org.teiid.PROCESSOR] (Worker3_QueryProcessorQueue31) /oCxMs2/Zs22 TEIID30020 Processing exception for request /oCxMs2/Zs22.26 'TEIID31119 Symbol x1.b i
> s specified with an unknown group context'. Originally QueryResolverException ResolverVisitor.java:102.: org.teiid.api.exception.query.QueryResolverException: TEIID31119 Symbol x1.b
> is specified with an unknown group context
> at org.teiid.query.resolver.util.ResolverVisitor.handleUnresolvedElement(ResolverVisitor.java:102)
> at org.teiid.query.resolver.util.ResolverVisitor.internalResolveElementSymbol(ResolverVisitor.java:199)
> at org.teiid.query.resolver.util.ResolverVisitor.resolveElementSymbol(ResolverVisitor.java:135)
> at org.teiid.query.resolver.util.ResolverVisitor.visit(ResolverVisitor.java:90)
> at org.teiid.query.sql.symbol.ElementSymbol.acceptVisitor(ElementSymbol.java:223)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitVisitor(AbstractNavigator.java:50)
> at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.postVisitVisitor(PreOrPostOrderNavigator.java:57)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.postVisitVisitor(SimpleQueryResolver.java:219)
> at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:167)
> at org.teiid.query.sql.symbol.ElementSymbol.acceptVisitor(ElementSymbol.java:223)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:75)
> at org.teiid.query.sql.symbol.AliasSymbol.acceptVisitor(AliasSymbol.java:86)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNodes(AbstractNavigator.java:72)
> at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:338)
> at org.teiid.query.sql.lang.Select.acceptVisitor(Select.java:164)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:237)
> at org.teiid.query.resolver.command.SimpleQueryResolver.resolveCommand(SimpleQueryResolver.java:66)
> at org.teiid.query.resolver.QueryResolver.resolveCommand(QueryResolver.java:282)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.resolveSubQuery(SimpleQueryResolver.java:283)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:463)
> at org.teiid.query.sql.lang.SubqueryFromClause.acceptVisitor(SubqueryFromClause.java:123)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:593)
> at org.teiid.query.sql.lang.JoinPredicate.acceptVisitor(JoinPredicate.java:175)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNodes(AbstractNavigator.java:72)
> at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:183)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:619)
> at org.teiid.query.sql.lang.From.acceptVisitor(From.java:142)
> at org.teiid.query.sql.navigator.AbstractNavigator.visitNode(AbstractNavigator.java:59)
> at org.teiid.query.resolver.command.SimpleQueryResolver$QueryResolverVisitor.visit(SimpleQueryResolver.java:233)
> at org.teiid.query.resolver.command.SimpleQueryResolver.resolveCommand(SimpleQueryResolver.java:66)
> at org.teiid.query.resolver.QueryResolver.resolveCommand(QueryResolver.java:282)
> at org.teiid.query.resolver.QueryResolver.resolveCommand(QueryResolver.java:128)
> at org.teiid.dqp.internal.process.Request.resolveCommand(Request.java:282)
> at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:418)
> at org.teiid.dqp.internal.process.Request.processRequest(Request.java:486)
> at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:660)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:339)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
> 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)
> {code}
> The behavior is expected. Lateral is expected to work left to right - thus only with inner/left joins. The error message should be improved. On pgsql it is "The combining JOIN type must be INNER or LEFT for a LATERAL reference".
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (TEIID-5274) Odata4 translator can't handle conditions on columns which use conversions
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5274?page=com.atlassian.jira.plugin... ]
Work on TEIID-5274 started by Steven Hawkins.
---------------------------------------------
> Odata4 translator can't handle conditions on columns which use conversions
> --------------------------------------------------------------------------
>
> Key: TEIID-5274
> URL: https://issues.jboss.org/browse/TEIID-5274
> Project: Teiid
> Issue Type: Bug
> Components: OData
> Affects Versions: 8.12.11.6_4
> Reporter: Jan Martiska
> Assignee: Steven Hawkins
>
> Failing query examples, given that {{BQT1.SmallA}} is a view backed by the OData4 translator:
> - {{SELECT bigintegervalue FROM BQT1.SmallA WHERE CONVERT(bigintegervalue, INTEGER) = 1}}
> -- This yields:
> {noformat}
> ExampleExceptionFormatter: exception message was: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 odata4: The value type class java.lang.Integer is not supported.
> {noformat}
> - {{SELECT stringkey FROM BQT1.SmallA WHERE CONVERT(stringkey, CHAR) = '1'}}
> -- This yields:
> {noformat}
> ExampleExceptionFormatter: exception message was: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 odata4: The value type class java.lang.Character is not supported.
> {noformat}
> Similarly if the conversion is in the DDL:
> {noformat}
> CREATE VIEW Simple (
> charvalue char
> ) AS SELECT CONVERT(A.stringkey, CHAR)
> FROM sourceModel.SmallA AS A;
> {noformat}
> Then a query like this {{SELECT Simple.CharValue FROM BQT1.Simple WHERE CharValue = '1'}} will fail with the same error.
> Full stack trace:
> {noformat}
> 07:00:13,946 WARN [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue36) Connector worker process failed for atomic-request=ZJj8bD/Hl58m.14.2.4: org.teiid.translator.TranslatorException: The value type class java.lang.Character is not supported.
> at org.teiid.translator.odata4.ODataFilterVisitor.visit(ODataFilterVisitor.java:311) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.language.Literal.acceptVisitor(Literal.java:48) [teiid-api-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51) [teiid-api-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.append(ODataFilterVisitor.java:325) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.appendRightComparison(ODataFilterVisitor.java:126) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.visit(ODataFilterVisitor.java:107) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.language.Comparison.acceptVisitor(Comparison.java:110) [teiid-api-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51) [teiid-api-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.append(ODataFilterVisitor.java:325) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.appendFilter(ODataFilterVisitor.java:72) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataQuery.processFilter(ODataQuery.java:130) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataSelectQuery.buildURL(ODataSelectQuery.java:65) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataSQLVisitor.buildURL(ODataSQLVisitor.java:85) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataQueryExecution.execute(ODataQueryExecution.java:68) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:361)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_151]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_151]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_151]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_151]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy91.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:306)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_151]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
> 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:1149) [rt.jar:1.8.0_151]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_151]
> at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_151]
> Caused by: org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException: The value type class java.lang.Character is not supported.
> at org.apache.olingo.commons.core.edm.primitivetype.EdmBinary.internalValueToString(EdmBinary.java:203) [odata-commons-core-4.4.0-teiid-1.jar:]
> at org.apache.olingo.commons.core.edm.primitivetype.AbstractPrimitiveType.valueToString(AbstractPrimitiveType.java:86) [odata-commons-core-4.4.0-teiid-1.jar:]
> at org.teiid.olingo.common.ODataTypeManager.convertToODataURIValue(ODataTypeManager.java:357) [teiid-olingo-common-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> at org.teiid.translator.odata4.ODataFilterVisitor.visit(ODataFilterVisitor.java:309) [translator-odata4-8.12.11.6_4-redhat-64-12.jar:8.12.11.6_4-redhat-64-12]
> ... 31 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (TEIID-5223) Problem with union aliasing when bind variables used
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5223?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5223:
----------------------------------
Fix Version/s: 10.x
(was: 10.2)
Pulling out of 10.2 pending more information or a confirmation it is still reproducible as the same scenario locally for me on latest worked as expected.
> Problem with union aliasing when bind variables used
> ----------------------------------------------------
>
> Key: TEIID-5223
> URL: https://issues.jboss.org/browse/TEIID-5223
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 9.3.5
> Reporter: Mike Higgins
> Assignee: Steven Hawkins
> Fix For: 10.x
>
>
> When a query with a union, function call, and bind variables is issued in 9.3.5, an alias is not applied correctly. When the same query is run with an explicit constraint list, it works. It works in both cases in Teiid 9.3.4.
> Query is:
> SELECT Substances."SUB_ID",
> NADALM_FUNCS.MOLFILE(Substances."XCTAB") "MOLFILE"
> FROM (
> SELECT NADALM.SUBSTANCE."SUB_ID",
> NADALM.SUBSTANCE."CTAB" "XCTAB",
> NADALM_FUNCS.MOLFILE(NADALM.SUBSTANCE."CTAB") "MOLFILE"
> FROM nadalm.substance
> UNION ALL
> SELECT D360_DC.DESIGN_COMPOUND."DC_ID" "SUB_ID",
> D360_DC.DESIGN_COMPOUND."CTAB" "XCTAB",
> NADALM_FUNCS.MOLFILE(D360_DC.DESIGN_COMPOUND."CTAB") "MOLFILE"
> FROM d360_dc.design_compound) Substances
> WHERE (Substances."SUB_ID" in (?, ?, ?, ?, ?, ?, ?,?, ?, ?))
> Generated SQL with error is:
> SELECT v_0.SUB_ID, NADAL_CERTARA.MOLFILE(v_0.c_1) FROM
> (SELECT g_1."SUB_ID" AS c_0, g_1."CTAB" AS c_1 FROM "NADAL_CERTARA"."SUBSTANCE" g_1 WHERE g_1."SUB_ID" IN (?, ?, ?, ?, ?, ?, ?,?, ?, ?)
> UNION ALL
> SELECT g_0."DC_ID" AS c_0, g_0."CTAB" AS c_1 FROM "NADAL_CERTARA"."DESIGN_COMPOUND" g_0 WHERE g_0."DC_ID" IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?))) v_0
> Note that top branch references v_0.Sub_id, which is not legal (should be c_0).
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (TEIID-4161) Swagger: Support security in Swagger Translator
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4161?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4161.
-----------------------------------
Fix Version/s: (was: Open To Community)
(was: 10.2)
Resolution: Explained
Based upon the comments, I'm resolving as explained. Sounds like there may be an issue/research on how to handle api key, but that can be done under a more specific jira.
> Swagger: Support security in Swagger Translator
> ------------------------------------------------
>
> Key: TEIID-4161
> URL: https://issues.jboss.org/browse/TEIID-4161
> Project: Teiid
> Issue Type: Enhancement
> Components: Misc. Connectors
> Affects Versions: 9.0
> Reporter: Ramesh Reddy
> Assignee: Steven Hawkins
>
> The initial version added does not support security schema of the swagger definition, this needs to be added to the translator
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years
[JBoss JIRA] (TEIID-4161) Swagger: Support security in Swagger Translator
by dalex dalex (JIRA)
[ https://issues.jboss.org/browse/TEIID-4161?page=com.atlassian.jira.plugin... ]
dalex dalex commented on TEIID-4161:
------------------------------------
[~shawkins]
> Can you elaborate what doesn't work? That guide documents using the OAuth10 login module, but the OAuth20 should be used - could that be the issue?
we rechecked authorization for Swagger with my colleague and seems it works (through ws security domain). So here I don't see any problems anymore. Thx!
> Api key isn't something that our code has direct support for.
actually we would like to have such possibility as well, but I don't think that it's so critical.
> Swagger: Support security in Swagger Translator
> ------------------------------------------------
>
> Key: TEIID-4161
> URL: https://issues.jboss.org/browse/TEIID-4161
> Project: Teiid
> Issue Type: Enhancement
> Components: Misc. Connectors
> Affects Versions: 9.0
> Reporter: Ramesh Reddy
> Assignee: Steven Hawkins
> Fix For: 10.2, Open To Community
>
>
> The initial version added does not support security schema of the swagger definition, this needs to be added to the translator
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years