[ 
https://issues.apache.org/jira/browse/NIFI-4561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448103#comment-16448103
 ] 

ASF GitHub Bot commented on NIFI-4561:
--------------------------------------

Github user MikeThomsen commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2243#discussion_r183383744
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java
 ---
    @@ -278,8 +289,18 @@ public void onTrigger(final ProcessContext context, 
final ProcessSession session
                     } else {
                         fileToProcess = session.write(fileToProcess, 
JdbcCommon::createEmptyAvroStream);
     
    +                    fileToProcess = session.putAttribute(fileToProcess, 
CoreAttributes.MIME_TYPE.key(), JdbcCommon.MIME_TYPE_AVRO_BINARY);
                         session.transfer(fileToProcess, REL_SUCCESS);
                     }
    +            } else if(resultCount == 0){
    +                //If we had no inbound FlowFile, no exceptions, and the 
SQL generated no result sets (Insert/Update/Delete statements only)
    +                // Then generate an empty Output FlowFile
    +                FlowFile resultSetFF = session.create();
    +
    +                resultSetFF = session.write(resultSetFF, out -> 
JdbcCommon.createEmptyAvroStream(out));
    +
    +                resultSetFF = session.putAttribute(resultSetFF, 
CoreAttributes.MIME_TYPE.key(), JdbcCommon.MIME_TYPE_AVRO_BINARY);
    --- End diff --
    
    Should have `RESULT_ROW_COUNT` on it to tell downstream processors that 
it's got not rows in it.


> ExecuteSQL Stopped Returning FlowFile for non-ResultSet Queries
> ---------------------------------------------------------------
>
>                 Key: NIFI-4561
>                 URL: https://issues.apache.org/jira/browse/NIFI-4561
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Peter Wicks
>            Assignee: Peter Wicks
>            Priority: Major
>
> While most people use ExecuteSQL for Select statements, some JDBC drivers 
> allow you to execute any kind of statement, including multi-statement 
> requests.
> This allowed users to submit multiple SQL statements in one JDBC Statement 
> and get back multiple result sets. This was part of the reason I wrote 
> [NIFI-3432].
> After having NIFI-3432 merged, I found that some request types no longer 
> cause a FlowFile to be generated because there is no ResultSet. Also, if 
> request types are mixed, such as an insert followed by a Select, then no 
> ResultSet is returned because the first result is not a result set but an 
> Update Count.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to