[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, 10 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, 10 months
[JBoss JIRA] Created: (TEIID-1168) Query Testing - CLOB, LOB, etc is returning an object reference in CTC rather than returning the content of the object (content is needed for validation purposes)
by Warren Gibson (JIRA)
Query Testing - CLOB, LOB, etc is returning an object reference in CTC rather than returning the content of the object (content is needed for validation purposes)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: TEIID-1168
URL: https://jira.jboss.org/browse/TEIID-1168
Project: Teiid
Issue Type: Bug
Components: Integration Tests
Reporter: Warren Gibson
Assignee: Van Halbert
Query testing is returning an object reference for CLOB, LOB, etc. In the past these were returned as a string.
They should be converted to a string so the content can be validated.
Examples:
Query: SELECT * FROM XQTDoc.BQTDocTestDocument
>
> <actual_queryResults>
> <select>
> <dataElement type="xml">xml</dataElement>
> </select>
> <table rowCount="1" columnCount="1">
> <tableRow>
> <tableCell>
> <object>org.teiid.core.types.SQLXMLImpl@be76c7</object>
> </tableCell>
> </tableRow>
> </table>
> </actual_queryResults>
>
>
> <expected_queryResults>
> <select>
> <dataElement type="xml">xml</dataElement>
> </select>
> <table rowCount="1" columnCount="1">
> <tableRow>
> <tableCell>
> <string><?xml version="1.0" encoding="UTF-8"?><xqt:BQTDocTest xmlns:xqt="http://www.metamatrix.com/XQTSchema"><SingleRow><IntKey>0</IntKey><StringKey>0</StringKey><IntNum/><StringNum>-24</StringNum><FloatNum>-24.0</FloatNum><LongNum>-24</LongNum><DoubleNum>-24.0</DoubleNum><ByteNum>-128</ByteNum><DateValue>2000-01-01</DateValue><TimeValue>00:00:00</TimeValue><TimestampValue>2000-01-01 00:00:00.0</TimestampValue><BooleanValue>false</BooleanValue><CharValue>1</CharValue><ShortValue>-32768</ShortValue><BigIntegerValue>-24</BigIntegerValue><BigDecimalValue>-24</BigDecimalValue><ObjectValue>-24</ObjectValue></SingleRow><SingleRow><IntKey>1</IntKey><StringKey>1</StringKey><IntNum>-23</IntNum><StringNum/><FloatNum>-23.0</FloatNum><LongNum>-23</LongNum><DoubleNum>-23.0</DoubleNum><ByteNum>-127</ByteNum><DateValue>2000-01-02</DateValue><TimeValue>01:00:00</TimeValue><TimestampValue>2000-01-01 00:00:01.0</TimestampValue><BooleanValue>true< ......................
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months