[teiid-issues] [JBoss JIRA] (TEIID-4469) Insert with query expression does not apply source hint to target

Lucie Fabrikova (JIRA) issues at jboss.org
Sun Oct 9 17:21:00 EDT 2016


    [ https://issues.jboss.org/browse/TEIID-4469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13304634#comment-13304634 ] 

Lucie Fabrikova commented on TEIID-4469:
----------------------------------------

I simulated the query with two oracle databases on different machines, but the source hint doesn't seem to be applied ProjectIntoNode, contents of teiid-command.log and server.log:

21:03:54,633 DEBUG [org.teiid.COMMAND_LOG] (New I/O worker #4) wMQbVS84H1pO     START USER COMMAND:     startTime=2016-10-08 21:03:54.633       requestID=wMQbVS84H1pO.0        txID=null       sessionID=wMQbVS84H1pO  applicationName=JDBC    principal=teiidUser at teiid-security      vdbName=oracledba       vdbVersion=1    sql=INSERT /*+ sh Source2:'append' */ INTO test (ID, myvalue) SELECT X.id AS ID, X.myvalue AS myvalue FROM (SELECT SMALLA.INTKEY AS id, SMALLA.INTNUM AS myvalue FROM SMALLA WHERE SMALLA.INTKEY = 1) AS X
21:03:58,070 DEBUG [org.teiid.COMMAND_LOG] (Worker1_QueryProcessorQueue1) wMQbVS84H1pO  START DATA SRC COMMAND: startTime=2016-10-08 21:03:58.069       requestID=wMQbVS84H1pO.0        sourceCommandID=1       executionID=0   txID=null       modelName=Source        translatorName=oracle   sessionID=wMQbVS84H1pO  principal=teiidUser at teiid-security      sql=SELECT /*+sh Source2:'append' */ g_0.intkey, g_0.intnum FROM Source.smalla AS g_0 WHERE g_0.intkey = 1
21:03:58,567 DEBUG [org.teiid.COMMAND_LOG] (Worker0_QueryProcessorQueue2) wMQbVS84H1pO  END SRC COMMAND:        endTime=2016-10-08 21:03:58.567 requestID=wMQbVS84H1pO.0        sourceCommandID=1       executionID=0   txID=null       modelName=Source        translatorName=oracle   sessionID=wMQbVS84H1pO  principal=teiidUser at teiid-security      finalRowCount=1
21:04:01,127 DEBUG [org.teiid.COMMAND_LOG] (Worker1_QueryProcessorQueue3) wMQbVS84H1pO  START DATA SRC COMMAND: startTime=2016-10-08 21:04:01.127       requestID=wMQbVS84H1pO.0        sourceCommandID=0       executionID=1   txID=null       modelName=Source2       translatorName=oracle   sessionID=wMQbVS84H1pO  principal=teiidUser at teiid-security      sql=INSERT INTO Source2.test (ID, myvalue) VALUES (...)
21:04:01,635 DEBUG [org.teiid.COMMAND_LOG] (Worker0_QueryProcessorQueue4) wMQbVS84H1pO  END SRC COMMAND:        endTime=2016-10-08 21:04:01.635 requestID=wMQbVS84H1pO.0        sourceCommandID=0       executionID=1   txID=null       modelName=Source2       translatorName=oracle   sessionID=wMQbVS84H1pO  principal=teiidUser at teiid-security      finalRowCount=1
21:04:01,697 DEBUG [org.teiid.COMMAND_LOG] (Worker0_QueryProcessorQueue5) wMQbVS84H1pO  END USER COMMAND:       endTime=2016-10-08 21:04:01.697 requestID=wMQbVS84H1pO.0        txID=null       sessionID=wMQbVS84H1pO  principal=teiidUser at teiid-security      vdbName=oracledba       vdbVersion=1    finalRowCount=1

Logging set to DEBUG, server.log:
DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue3) wMQbVS84H1pO.0.0.1 Processing NEW request: INSERT INTO Source2.test (ID, myvalue) VALUES (...)
21:03:58,572 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue2) Request Thread wMQbVS84H1pO.0 - processor blocked
21:04:01,126 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue3) wMQbVS84H1pO.0.0.1 Obtained execution
21:04:01,127 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue3) Source-specific command: INSERT INTO test (ID, myvalue) VALUES (?, ?)
21:04:01,633 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue3) wMQbVS84H1pO.0.0.1 Executed command

> Insert with query expression does not apply source hint to target
> -----------------------------------------------------------------
>
>                 Key: TEIID-4469
>                 URL: https://issues.jboss.org/browse/TEIID-4469
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 8.7.1.6_2
>            Reporter: Marc Shirley
>            Assignee: Steven Hawkins
>             Fix For: 9.1, 9.0.5, 8.7.10_6.2
>
>
> "INSERT INTO ... SELECT ..." statements result in a ProjectIntoNode which seems to prevent any source hints from being passed down to the relevant source.  These work correctly with an "INSERT INTO ... VALUES ..." statement.  I've included example user and final query plan data below for the non-working [1] and working [2] insert statements.
> [1] source hint not applied to ProjectIntoNode:
> USER COMMAND:
> INSERT /*+sh test:'append' */ INTO test.TEST (ID, "VALUE") SELECT X.id AS ID, X."value" AS "VALUE" FROM (SELECT bqt.SMALLA.INTKEY AS id, bqt.SMALLA.INTNUM AS "value" FROM bqt.SMALLA WHERE bqt.SMALLA.INTKEY = 0) AS X
> ...
> OPTIMIZATION COMPLETE:
> PROCESSOR PLAN:
> ProjectIntoNode(0) output=[Count] test.TEST
>   AccessNode(1) output=[bqt.SMALLA.INTKEY AS ID, bqt.SMALLA.INTNUM AS "VALUE"] SELECT /*+sh test:'append' */ g_0.INTKEY, g_0.INTNUM FROM bqt.SMALLA AS g_0 WHERE g_0.INTKEY = 0
> [2] source hint applied to AccessNode:
> USER COMMAND:
> INSERT /*+sh test:'append' */ INTO test.TEST (ID, "VALUE") VALUES ('-1', '-1')
> ...
> OPTIMIZATION COMPLETE:
> PROCESSOR PLAN:
> AccessNode(0) output=[Count] INSERT /*+sh test:'append' */ INTO test.TEST (ID, "VALUE") VALUES ('-1', '-1')



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the teiid-issues mailing list