[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-22 Thread Pierre Villard (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-11671:
--
Fix Version/s: 2.0.0
   (was: 2.latest)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Assignee: Mark Payne
>Priority: Minor
> Fix For: 1.latest, 2.0.0
>
> Attachments: screenshot-1.png, screenshot-2.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-21 Thread Mark Payne (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Payne updated NIFI-11671:
--
Status: Patch Available  (was: Open)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.23.0, 1.20.0, 1.18.0
>Reporter: Philipp Korniets
>Assignee: Mark Payne
>Priority: Minor
> Fix For: 1.latest, 2.latest
>
> Attachments: screenshot-1.png, screenshot-2.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-21 Thread Mark Payne (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Payne updated NIFI-11671:
--
Fix Version/s: 1.latest
   2.latest

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Minor
> Fix For: 1.latest, 2.latest
>
> Attachments: screenshot-1.png, screenshot-2.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-21 Thread Mark Payne (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Payne updated NIFI-11671:
--
Priority: Minor  (was: Critical)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Minor
> Attachments: screenshot-1.png, screenshot-2.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-21 Thread Mark Payne (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Payne updated NIFI-11671:
--
Component/s: Extensions
 (was: Core Framework)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Extensions
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Minor
> Attachments: screenshot-1.png, screenshot-2.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-11-21 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Priority: Critical  (was: Major)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Critical
> Attachments: screenshot-1.png, screenshot-2.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}

[~markap14] [~jgresock] - can you please take a look - this is quite a big 
showstopper.

[Documentation 
|https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.23.2/org.apache.nifi.processors.standard.JoinEnrichment/index.html]
 says that JoinEnrichment supports expression language
 !screenshot-2.png! 

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}

[~markap14] [~jgresock] - can you please take a look - this is quite a big 
showstopper.

[Documentation 
|https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.23.2/org.apache.nifi.processors.standard.JoinEnrichment/index.html]
 says that JionEnrichment supports expression language
 !screenshot-2.png! 

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}

[~markap14] [~jgresock] - can you please take a look - this is quite a big 
showstopper.

[Documentation 
|https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.23.2/org.apache.nifi.processors.standard.JoinEnrichment/index.html]
 says that is supports expression language
 !screenshot-2.png! 

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Attachment: screenshot-2.png

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png, screenshot-2.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18,1.23 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}

[~markap14] [~jgresock] - can you please take a look - this is quite a big 
showstopper.

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Affects Version/s: 1.23.0

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0, 1.23.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!
>  
> {code:java}
> 2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.JoinEnrichment 
> JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
> 'original' FlowFile 
> StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687948831976-629, 
> container=default, section=629], offset=8334082, 
> length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
> and 'enrichment' FlowFile 
> StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
>  [resourceClaim=StandardResourceClaim[id=1687949723375-631, 
> container=default, section=631], offset=5362822, 
> length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
>  routing to failure
> java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>     at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
>     at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
>     at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
>     at 
> org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
>     at 
> org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
>     at 
> org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
>     at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>     at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>     at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
>     at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 
> 1, column 1.
> Was expecting one of:
>     "ABS" ...
>  {code}
> As I understand issue is in following line of code
> https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-10-26 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}

[~markap14] [~jgresock] - can you please take a look - this is quite a big 
showstopper.

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

As I understand issue is in following line of code
https://github.com/apache/nifi/blob/ce0122bd2530e37eb57ace919a42bb2eb3cd5c02/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JoinEnrichment.java#L441

instead of:
{code:java}
final String sql = context.getProperty(SQL).getValue();
{code}

it should be:
{code:java}
final String sql = 
context.getProperty(SQL).evaluateAttributeExpressions(attributes).getValue();
{code}



  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

 
{code:java}
2023-06-28 11:07:16,611 ERROR [Timer-Driven Process Thread-7] 
o.a.n.processors.standard.JoinEnrichment 
JoinEnrichment[id=dbe156ac-0187-1000-4477-0183899e0432] Failed to join 
'original' FlowFile 
StandardFlowFileRecord[uuid=2ab9f6ad-73a5-4763-b25e-fd26c44835e1,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687948831976-629, container=default, 
section=629], offset=8334082, 
length=600557],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=600557] 
and 'enrichment' FlowFile 
StandardFlowFileRecord[uuid=e4bb7769-fdce-4dfe-af18-443676103035,claim=StandardContentClaim
 [resourceClaim=StandardResourceClaim[id=1687949723375-631, container=default, 
section=631], offset=5362822, 
length=1999502],offset=0,name=lmr_SY08C41-1_S_514682_20230627.csv,size=1999502];
 routing to failure
java.sql.SQLException: Error while preparing statement [${instrumentJoinSQL}]
    at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
    at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:224)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:203)
    at 
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:99)
    at 
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.createCalciteParameters(SqlJoinCache.java:91)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinCache.getCalciteParameters(SqlJoinCache.java:65)
    at 
org.apache.nifi.processors.standard.enrichment.SqlJoinStrategy.join(SqlJoinStrategy.java:49)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBin(JoinEnrichment.java:387)
    at 
org.apache.nifi.processor.util.bin.BinFiles.processBins(BinFiles.java:233)
    at 
org.apache.nifi.processors.standard.JoinEnrichment.processBins(JoinEnrichment.java:503)
    at org.apache.nifi.processor.util.bin.BinFiles.onTrigger(BinFiles.java:193)
    at 
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
    at 
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
    at 
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:102)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: parse failed: Encountered "$" at line 1, 
column 1.
Was expecting one of:
    "ABS" ...
 {code}

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!


> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 

[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Attachment: screenshot-1.png

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute
{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}
However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

!screenshot-1.png|width=692,height=431!

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

 !screenshot-1.png! 


> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.
> !screenshot-1.png|width=692,height=431!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.



  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

 !screenshot-1.png! 



> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

 !screenshot-1.png! 

  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.




> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.
>  !screenshot-1.png! 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Attachment: (was: screenshot-1.png)

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.
>  !screenshot-1.png! 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionally in version 1.18 - doesnt allow whole query to be passed as 
attribute.

 !screenshot-1.png! 


  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionaly in version 1.18

 !screenshot-1.png! 



> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionally in version 1.18 - doesnt allow whole query to be passed as 
> attribute.
>  !screenshot-1.png! 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions

Additionaly in version 1.18

 !screenshot-1.png! 


  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions



> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions
> Additionaly in version 1.18
>  !screenshot-1.png! 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-28 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Attachment: screenshot-1.png

> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
> Attachments: screenshot-1.png
>
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (NIFI-11671) JoinEnrichment SQL strategy doesn't allow attributes in join statement

2023-06-09 Thread Philipp Korniets (Jira)


 [ 
https://issues.apache.org/jira/browse/NIFI-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Korniets updated NIFI-11671:

Description: 
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL. Filter value is coming from FlowFile attribute

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions


  was:
We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
in join SQL

{code:sql}
${test}  = 'NewValue'

SELECT original.*, enrichment.*,'${test}'
FROM original 
LEFT OUTER JOIN enrichment 
ON original.Underlying = enrichment.Underlying
WHERE enrichment.MyField = '${test}'
{code}

However this doesnt work because JoinEnrichment doesnt use 
evaluateAttributeExpressions



> JoinEnrichment SQL strategy doesn't allow attributes in join statement
> --
>
> Key: NIFI-11671
> URL: https://issues.apache.org/jira/browse/NIFI-11671
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.18.0, 1.20.0
>Reporter: Philipp Korniets
>Priority: Major
>
> We use ForkEnrichement - JoinEnrichment pattern and want to include filtering 
> in join SQL. Filter value is coming from FlowFile attribute
> {code:sql}
> ${test}  = 'NewValue'
> SELECT original.*, enrichment.*,'${test}'
> FROM original 
> LEFT OUTER JOIN enrichment 
> ON original.Underlying = enrichment.Underlying
> WHERE enrichment.MyField = '${test}'
> {code}
> However this doesnt work because JoinEnrichment doesnt use 
> evaluateAttributeExpressions



--
This message was sent by Atlassian Jira
(v8.20.10#820010)