[JBoss JIRA] Created: (TEIID-757) Oracle Spatial Connector is not properly adding ORDERED hint to SDO_RELATE function
by Larry O'Leary (JIRA)
Oracle Spatial Connector is not properly adding ORDERED hint to SDO_RELATE function
-----------------------------------------------------------------------------------
Key: TEIID-757
URL: https://jira.jboss.org/jira/browse/TEIID-757
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 6.1.0, 6.0.0, 6.2.0
Reporter: Larry O'Leary
Assignee: Steven Hawkins
Priority: Minor
Oracle Spatial connector is rewriting a query that contains an SDO_RELATE() function using the ORDERED hint. The format/syntax of the hint does not conform to Oracle documentation. It does not appear this results in an error but I also have not verified that the ORDERED hint is actually getting used either. The following query:
SELECT a.INTKEY FROM BQT1.SMALLA A, BQT1.SMALLB B WHERE sdo_relate(A.OBJECTVALUE, b.OBJECTVALUE, 'mask=ANYINTERACT') = true
Is rewritten as:
SELECT /* + ORDERED */A.IntKey FROM SmallA A, SmallB B WHERE SDO_RELATE(A.ObjectValue, B.ObjectValue, 'mask=ANYINTERACT') = 'true'
Where as Oracle documentation seems to indicate that the query should actually be:
SELECT /*+ ORDERED */ A.IntKey FROM SmallA A, SmallB B WHERE SDO_RELATE(A.ObjectValue, B.ObjectValue, 'mask=ANYINTERACT') = 'true'
Notice the spacing in the hint as "SELECT_/*+_ORDERED_*/_A.IntKey..." instead of "SELECT_/*_+_ORDERED_*/A.IntKey..."
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] Created: (TEIID-751) SDO_WITHIN_DISTANCE function of Oracle Spatial Connector is pushing string literal to data source
by Larry O'Leary (JIRA)
SDO_WITHIN_DISTANCE function of Oracle Spatial Connector is pushing string literal to data source
-------------------------------------------------------------------------------------------------
Key: TEIID-751
URL: https://jira.jboss.org/jira/browse/TEIID-751
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 6.1.0, 6.0.0
Reporter: Larry O'Leary
Assignee: Larry O'Leary
Priority: Minor
Fix For: 6.2.0
Executing a query which uses the SDO_WITHIN_DISTANCE function in criteria results in an invalid query being sent to Oracle.
Query:
SELECT RECORD_ID FROM OraSpatialSrcTable WHERE sdo_within_distance(MARKER, '(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL))', "DISTANCE=25.0 UNIT=NAUT_MILE") = 'TRUE'
Results In Exception:
ERROR <com.metamatrix.core|0> [MetaMatrix][Oracle JDBC Driver][Oracle]ORA-29900: operator binding does not exist
ORA-06553: PLS-306: wrong number or types of arguments in call to 'SDO_WITHIN_DISTANCE'
Executing statement:
SELECT ORASPATIALSRCTABLE.RECORD_ID FROM ORASPATIALSRCTABLE WHERE SDO_WITHIN_DISTANCE(ORASPATIALSRCTABLE.MARKER, '(SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL))', 'DISTANCE=25.0 UNIT=NAUT_MILE') = TRUE
java.sql.SQLException: [MetaMatrix][Oracle JDBC Driver][Oracle]ORA-29900: operator binding does not exist
ORA-06553: PLS-306: wrong number or types of arguments in call to 'SDO_WITHIN_DISTANCE'
at com.metamatrix.common.util.exception.SQLExceptionUnroller.unRollException(SQLExceptionUnroller.java:43)
at com.metamatrix.connector.jdbc.JDBCBaseExecution.createError(JDBCBaseExecution.java:147)
at com.metamatrix.connector.jdbc.JDBCBaseExecution.createAndLogError(JDBCBaseExecution.java:103)
at com.metamatrix.connector.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:89)
at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.processNewRequest(ConnectorWorker.java:274)
at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.processBatchRequest(ConnectorWorker.java:165)
at com.metamatrix.dqp.internal.datamgr.impl.ConnectorWorker.process(ConnectorWorker.java:139)
at com.metamatrix.common.queue.QueueWorker.run(QueueWorker.java:51)
The exception is due to the second parameter of SDO_WITHIN_DISTANCE being escaped as a string.
The expected query should be:
SELECT ORASPATIALSRCTABLE.RECORD_ID FROM ORASPATIALSRCTABLE WHERE SDO_WITHIN_DISTANCE(ORASPATIALSRCTABLE.MARKER, (SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(90.0, -45.0, NULL), NULL, NULL)), 'DISTANCE=25.0 UNIT=NAUT_MILE') = TRUE
In the above query the first parameter was an element of type String. If the first parameter was of type Object, the function is rewritten correctly. This appears to be primarily due to the function signatures of sdo_within_distance and the query rewriter performing an implicit convert on the second parameter to make it match the function signature of String, Object, String rather than Object, String, String.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] Created: (TEIID-829) revamp code table caching
by Steven Hawkins (JIRA)
revamp code table caching
-------------------------
Key: TEIID-829
URL: https://jira.jboss.org/jira/browse/TEIID-829
Project: Teiid
Issue Type: Feature Request
Components: Query Engine
Affects Versions: 6.3.0
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 6.3.0
Code tables have several design issues:
1. the cache should allow for eviction and possibly expiration.
2. the cache should be backed by the common caching facility.
3. should allow for explicit scoping - at a minimum global vs. vdb, but additional may be good to allow session and request.
4. the implementation should be minimally blocking (in terms of both query execution and use of synchronization).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 4 months