[JBoss JIRA] (TEIID-5356) Infer field metadata from the source columns
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5356?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5356.
-----------------------------------
Resolution: Done
Added logic to the MetadataValidator.addColumn to consult the actual metadata object or defer to the MetaDataProcessor to determine better column metadata. This is not perfect, but with a couple of related fixes such as TEIID-5361 and TEIID-5359 it's much better than it was.
> Infer field metadata from the source columns
> --------------------------------------------
>
> Key: TEIID-5356
> URL: https://issues.jboss.org/browse/TEIID-5356
> Project: Teiid
> Issue Type: Enhancement
> Components: Query Engine
> Reporter: Chandra Akkinepalli
> Assignee: Steven Hawkins
> Fix For: 11.0
>
>
> This is an observation made in dynamic vdbs.
> When a view is defined without column name , data type, length as in the example below
> create view xyz as (
> select a, b, c from view_model.example
> );
> instead of inferring the column metadata from view_model, the string columns are created with length =4000, this is causing issues when querying such views from visualization tools like Tableau, these fields are forced to be converted to text and failing in the process.
> I would like to request an enhancement for dynamic vdbs to infer metadata from sources in such cases.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 10 months
[JBoss JIRA] (TEIID-5359) Resultset metadata defaults to case insensitive
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5359?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5359.
-----------------------------------
Fix Version/s: (was: 10.3.2)
(was: 10.2.3)
Resolution: Done
Corrected the default in the MetaDataProcessor - just for 11.0 for now until this is raised as an issue against older releases.
> Resultset metadata defaults to case insensitive
> -----------------------------------------------
>
> Key: TEIID-5359
> URL: https://issues.jboss.org/browse/TEIID-5359
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 11.0
>
>
> MetaDataProcessor.getDefaultColumn uses case_sensitive false - which is not correct as Teiid treats all strings as case sensitive by default. Having the default as true for non-character columns is also not harmful.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 10 months
[JBoss JIRA] (TEIID-5354) Different results for a query with GROUP BY and SUM(1) (summation of the number 1) when there is a LEFT or INNER JOIN involved
by Johnathon Lee (JIRA)
[ https://issues.jboss.org/browse/TEIID-5354?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-5354:
---------------------------------
Fix Version/s: 8.12.14.6_4
> Different results for a query with GROUP BY and SUM(1) (summation of the number 1) when there is a LEFT or INNER JOIN involved
> ------------------------------------------------------------------------------------------------------------------------------
>
> Key: TEIID-5354
> URL: https://issues.jboss.org/browse/TEIID-5354
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.2
> Environment: teiid-10.2.0 on WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final)
> Reporter: dalex dalex
> Assignee: Steven Hawkins
> Priority: Blocker
> Fix For: 11.0, 10.3.2, 10.2.3, 8.12.14.6_4
>
> Attachments: address_pg.sql, stateprovince_mysql.sql
>
>
> Teiid returns different results for a query with GROUP BY and SUM(1) (summation of the number 1) when there is a LEFT or INNER JOIN involved.
> There are two problems: a) incorrect check in MergeJoinStrategy.compareToPrevious method which generates TEIID31202 exception and b) a bug in algorithm of join itself which leads to incorrect results.
> To reproduce the bug, please, run the following queries and compare theSum and theCount column values:
> {code:sql}
> select r.city,
> sum(1) as theSum
> ,count(*) as theCount
> from "dsp.address_pg" r
> left join "adventureworks.stateprovince" c on "r.stateprovinceid" = "c.stateprovinceid"
> group by r.city
> order by r.city ;;
> {code}
> {code:sql}
> select r.city,
> sum(1) as theSum
> ,count(*) as theCount
> from "dsp.address_pg" r
> inner join "adventureworks.stateprovince" c on "r.stateprovinceid" = "c.stateprovinceid"
> group by r.city
> order by r.city ;;
> {code}
> but the following queries return correct results:
> {code:sql}
> select r.city,
> sum(1) as theSum
> ,count(*) as theCount
> from "dsp.address_pg" r
> right join "adventureworks.stateprovince" c on "r.stateprovinceid" = "c.stateprovinceid"
> group by r.city
> order by r.city ;;
> {code}
> the second one is also correct (LEFT JOIN) but uses window function:
> {code:sql}
> select distinct city,
> sum(1) OVER (PARTITION BY city) as theSum
> ,count(*) OVER (PARTITION BY city) as theCount
> from "dsp.address_pg" r
> left join "adventureworks.stateprovince" c on "r.stateprovinceid" = "c.stateprovinceid"
> order by r.city ;;
> {code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 10 months
[JBoss JIRA] (TEIID-5353) Prepared Statement params are not pre-evaluated
by Johnathon Lee (JIRA)
[ https://issues.jboss.org/browse/TEIID-5353?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-5353:
---------------------------------
Fix Version/s: 8.12.14.6_4
> Prepared Statement params are not pre-evaluated
> -----------------------------------------------
>
> Key: TEIID-5353
> URL: https://issues.jboss.org/browse/TEIID-5353
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.12.12.6_4
> Reporter: Debbie Steigner
> Assignee: Steven Hawkins
> Fix For: 11.0, 8.12.14.6_4
>
>
> prepared statements, [1] with both criteria as parameters for the prepared statement, the predicates are not evaluated until after batches are pulled. But for [2] if the SEARCH='FALSE' is in the query and not a param, it is pre-evaluated and we only run the one side of the union.
> [1]
> sql = "select * from " +
> "Inventory_Detail" +
> " WHERE SEARCH = (?) and ITEM_ID in (?) OFFSET 0 ROWS FETCH NEXT 500 ROWS ONLY";
> PreparedStatement preparedStatement = conn.prepareStatement(sql);
> preparedStatement.setString(1,"FALSE");
> preparedStatement.setString(2,"1005014161091");
> ResultSet rs = null;
> [2]
> sql = "select * from " +
> "Inventory_Detail" +
> " WHERE SEARCH = 'FALSE' and ITEM_ID in (?) OFFSET 0 ROWS FETCH NEXT 500 ROWS ONLY";
> PreparedStatement preparedStatement = conn.prepareStatement(sql);
> preparedStatement.setString(1,"1005014161091");
> ResultSet rs = null;
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 10 months
[JBoss JIRA] (TEIID-5345) ClassCastException if multi-column dependent join is pushed to literals
by Johnathon Lee (JIRA)
[ https://issues.jboss.org/browse/TEIID-5345?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-5345:
---------------------------------
Fix Version/s: 8.12.14.6_4
> ClassCastException if multi-column dependent join is pushed to literals
> -----------------------------------------------------------------------
>
> Key: TEIID-5345
> URL: https://issues.jboss.org/browse/TEIID-5345
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.12.6_4
> Reporter: Debbie Steigner
> Assignee: Steven Hawkins
> Fix For: 10.3, 10.2.2, 8.12.14.6_4
>
>
> Select without criteria returns - select * from table, If adding criteria on col_CD it fails with ClassCastException[1].
> [1]
> ERROR [org.teiid.PROCESSOR] (Worker133_QueryProcessorQueue5109) TEIID30019 Unexpected exception for request Zplru34y5LCX.5: java.lang.ClassCastException: org.teiid.query.sql.symbol.Constant cannot be cast to org.teiid.query.sql.symbol.Array
> at org.teiid.query.optimizer.relational.rules.CriteriaCapabilityValidatorVisitor$1.visit(CriteriaCapabilityValidatorVisitor.java:894) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.sql.lang.DependentSetCriteria.acceptVisitor(DependentSetCriteria.java:161) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.CriteriaCapabilityValidatorVisitor.canPushLanguageObject(CriteriaCapabilityValidatorVisitor.java:957) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.CriteriaCapabilityValidatorVisitor.canPushLanguageObject(CriteriaCapabilityValidatorVisitor.java:861) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.RuleRaiseAccess.canRaiseOverSelect(RuleRaiseAccess.java:512) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.RulePushSelectCriteria.examinePath(RulePushSelectCriteria.java:442) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.RulePushSelectCriteria.pushTowardOriginatingNode(RulePushSelectCriteria.java:353) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.rules.RulePushSelectCriteria.execute(RulePushSelectCriteria.java:116) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:932) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:228) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:159) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:448) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.Request.processRequest(Request.java:476) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:642) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:337) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.12.12.6_4-redhat-64-2.jar:8.12.12.6_4-redhat-64-2]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_171]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_171]
> at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_171]
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 10 months