[teiid-issues] [JBoss JIRA] (TEIID-2843) MongoDB: ClassCastException while doing JOIN based query
Ramesh Reddy (JIRA)
issues at jboss.org
Tue Feb 11 13:59:28 EST 2014
[ https://issues.jboss.org/browse/TEIID-2843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ramesh Reddy resolved TEIID-2843.
---------------------------------
Labels: Alpha3 mongodb (was: mongodb)
Resolution: Done
This was simply a coding error. I previously assumed that in muti-table JOIN scenario command always opens up LEFT side a JOIN and right as leaf. Corrected to handle both ways.
> MongoDB: ClassCastException while doing JOIN based query
> --------------------------------------------------------
>
> Key: TEIID-2843
> URL: https://issues.jboss.org/browse/TEIID-2843
> Project: Teiid
> Issue Type: Bug
> Components: Misc. Connectors
> Affects Versions: 8.4
> Reporter: Ramesh Reddy
> Assignee: Ramesh Reddy
> Labels: mongodb, Alpha3
> Fix For: 8.7
>
>
> With Schema like
> {code}
> CREATE FOREIGN TABLE Company (
> name varchar(50) PRIMARY KEY,
> description varchar(256)
> ) OPTIONS(UPDATABLE 'TRUE',"teiid_mongo:EMBEDDABLE" 'true');
> CREATE FOREIGN TABLE Job (
> jobId integer PRIMARY KEY,
> description varchar(256),
> companyname varchar(50),
> FOREIGN KEY (companyname) REFERENCES Company (name)
> ) OPTIONS(UPDATABLE 'TRUE', "teiid_mongo:EMBEDDABLE" 'true');
>
> CREATE FOREIGN TABLE Employee (
> ename varchar(50) PRIMARY KEY,
> jobId integer,
> FOREIGN KEY (jobId) REFERENCES Job (jobId)
> ) OPTIONS(UPDATABLE 'TRUE');
> {code}
> then doing a single JOIN Query
> {code}
> select e.ename, c.name, j.description from Employee as e JOIN Job j ON e.jobId = j.jobId JOIN Company c ON j.companyname = c.name
> {code}
> fails with
> {code}
> 14:22:05,271 ERROR [org.teiid.PROCESSOR] (Worker23_QueryProcessorQueue432) 258Se2CWMytI TEIID30019 Unexpected exception for request 258Se2CWMytI.28: java.lang.ClassCastException: org.teiid.language.Join cannot be cast to org.teiid.language.NamedTable
> at org.teiid.translator.mongodb.MongoDBSelectVisitor.visit(MongoDBSelectVisitor.java:419)
> at org.teiid.language.Join.acceptVisitor(Join.java:66) [teiid-api-8.7.0.Alpha3-SNAPSHOT.jar:8.7.0.Alpha3-SNAPSHOT]
> at org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51) [teiid-api-8.7.0.Alpha3-SNAPSHOT.jar:8.7.0.Alpha3-SNAPSHOT]
> at org.teiid.translator.mongodb.MongoDBSelectVisitor.append(MongoDBSelectVisitor.java:95)
> at org.teiid.translator.mongodb.MongoDBSelectVisitor.append(MongoDBSelectVisitor.java:106)
> at org.teiid.translator.mongodb.MongoDBSelectVisitor.visit(MongoDBSelectVisitor.java:482)
> at org.teiid.language.Select.acceptVisitor(Select.java:103) [teiid-api-8.7.0.Alpha3-SNAPSHOT.jar:8.7.0.Alpha3-SNAPSHOT]
> at org.teiid.language.visitor.AbstractLanguageVisitor.visitNode(AbstractLanguageVisitor.java:51) [teiid-api-8.7.0.Alpha3-SNAPSHOT.jar:8.7.0.Alpha3-SNAPSHOT]
> {code}
--
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
More information about the teiid-issues
mailing list