dilipbiswal commented on a change in pull request #28953:
URL: https://github.com/apache/spark/pull/28953#discussion_r448157295



##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala
##########
@@ -122,6 +122,37 @@ object JdbcUtils extends Logging {
     }
   }
 
+  /**
+   * Runs a custom query against a table from the JDBC database.
+   */
+  def runQuery(conn: Connection, actions: String, options: JDBCOptions): Unit 
= {
+    val autoCommit = conn.getAutoCommit
+    conn.setAutoCommit(false)
+    val queries = actions.split(";")
+    try {
+      queries.foreach { query =>
+        val queryString = query.trim()
+        val statement = conn.prepareStatement(queryString)
+        try {
+          statement.setQueryTimeout(options.queryTimeout)
+          val hasResultSet = statement.execute()

Review comment:
       @moomindani I see. But if we call a cursory stored procedure in the 
pre/post action, what do we do with the result set retuned from it ? I am 
thinking users would call a cursory stored procedure if they want to do 
something with the results, no ? There are also some engines that can return 
multiple result set from a stored procedure.
   
   
https://stackoverflow.com/questions/53621106/db2-multiple-result-set-stored-procedure




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to