sarutak commented on code in PR #59425:
URL: https://github.com/apache/spark/pull/59425#discussion_r4319009978


##########
sql/connect/server/src/test/scala/org/apache/spark/sql/connect/pipelines/SparkDeclarativePipelinesServerSuite.scala:
##########
@@ -1164,4 +1164,127 @@ class SparkDeclarativePipelinesServerSuite
           relation.getCommand.getSqlCommand.getInput)
     }
   }
+
+  // Helper to build a SqlCommand ExecutePlanRequest with 
PipelineAnalysisContext.
+  private def buildSqlCommandRequestWithPipelineContext(
+      graphId: String,
+      input: proto.Relation): proto.ExecutePlanRequest = {
+    val context = proto.PipelineAnalysisContext
+      .newBuilder()
+      .setDataflowGraphId(graphId)

Review Comment:
   Nit, not blocking. This helper only sets `dataflowGraphId`, never 
`flowName`, so all three new tests exercise the path outside a pipeline flow 
function. The guard runs at the `hasPipelineAnalysisContext` check, which is 
before the `isInsidePipelineFlowFunction` early return, so the bug existed 
inside a flow function too: on the old code the guard ran `executeSQLWithRefs` 
(e.g. a `CREATE TABLE` root) and the resulting `CommandResult` passed the 
blocklist. There was no second execution there (the handler then returns the 
relation), but the command still ran. That is also the most common real shape: 
inside a query function, `spark.sql("... {df}", df=...)` sends exactly this 
WITH_RELATIONS with `SubqueryAlias` references, and `register_flow` wraps 
`flow.func()` in `add_pipeline_analysis_context(..., flow_name=flow.name)`.
   
   Could the helper take an optional `flowName` and the two command tests run 
both with and without it (e.g. via `gridTest`)? On the old code the 
flow-function variant would also fail on both `intercept[RuntimeException]` and 
`assert(!tableExists)`; on the current code it pins that the guard keeps 
running before the flow-function return. This dovetails with @HyukjinKwon's 
suggestion below to give the helper a reference-input variant, so both are 
about widening what the new tests actually cover.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to