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 cc @maropu ---------------------------------------------------------------- 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