You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2010/01/31 04:47:25 UTC

svn commit: r904968 - in /subversion/trunk/subversion: include/private/svn_sqlite.h libsvn_subr/sqlite.c

Author: gstein
Date: Sun Jan 31 03:47:25 2010
New Revision: 904968

URL: http://svn.apache.org/viewvc?rev=904968&view=rev
Log:
Add a enw entrypoint for executing a series of statements.

Minor tweak to skip the auto-upgrade process, if the upgrade statements
were not provided.

* subversion/include/private/svn_sqlite.h:
  (svn_sqlite__exec_statements): run all the statements in a given
    statement string.

* subversion/libsvn_subr/sqlite.c:
  (svn_sqlite__exec_statements): run the statements
  (svn_sqlite__open): skip auto-upgrade if UPGRADE_SQL is NULL

Modified:
    subversion/trunk/subversion/include/private/svn_sqlite.h
    subversion/trunk/subversion/libsvn_subr/sqlite.c

Modified: subversion/trunk/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_sqlite.h?rev=904968&r1=904967&r2=904968&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_sqlite.h (original)
+++ subversion/trunk/subversion/include/private/svn_sqlite.h Sun Jan 31 03:47:25 2010
@@ -120,6 +120,10 @@
 svn_error_t *
 svn_sqlite__close(svn_sqlite__db_t *db);
 
+/* Execute the (multiple) statements in the STATEMENTS[STMT_IDX] string.  */
+svn_error_t *
+svn_sqlite__exec_statements(svn_sqlite__db_t *db, int stmt_idx);
+
 /* Returns the statement in *STMT which has been prepared from the
    STATEMENTS[STMT_IDX] string.  This statement is allocated in the same
    pool as the DB, and will be cleaned up with DB is closed. */

Modified: subversion/trunk/subversion/libsvn_subr/sqlite.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/sqlite.c?rev=904968&r1=904967&r2=904968&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/sqlite.c (original)
+++ subversion/trunk/subversion/libsvn_subr/sqlite.c Sun Jan 31 03:47:25 2010
@@ -117,6 +117,16 @@
   return SVN_NO_ERROR;
 }
 
+
+svn_error_t *
+svn_sqlite__exec_statements(svn_sqlite__db_t *db, int stmt_idx)
+{
+  SVN_ERR_ASSERT(stmt_idx < db->nbr_statements);
+
+  return svn_error_return(exec_sql(db, db->statement_strings[stmt_idx]));
+}
+
+
 svn_error_t *
 svn_sqlite__get_statement(svn_sqlite__stmt_t **stmt, svn_sqlite__db_t *db,
                           int stmt_idx)
@@ -898,7 +908,8 @@
 #endif
 
   /* Validate the schema, upgrading if necessary. */
-  SVN_ERR(check_format(*db, latest_schema, upgrade_sql, scratch_pool));
+  if (upgrade_sql != NULL)
+    SVN_ERR(check_format(*db, latest_schema, upgrade_sql, scratch_pool));
 
   /* Store the provided statements. */
   if (statements)