You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by eh...@apache.org on 2010/09/06 14:04:34 UTC

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

Author: ehu
Date: Mon Sep  6 12:04:33 2010
New Revision: 993005

URL: http://svn.apache.org/viewvc?rev=993005&view=rev
Log:
Add 'r' format string specifier for revision numbers.

 * subversion/include/private/svn_sqlite.h
 * subversion/libsvn_subr/sqlite.c
   (vbindf): Dispatch 'r' format specifier.
   (svn_sqlite__bind_revnum): New. Inverse of svn_sqlite__column_revnum().


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=993005&r1=993004&r2=993005&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_sqlite.h (original)
+++ subversion/trunk/subversion/include/private/svn_sqlite.h Mon Sep  6 12:04:33 2010
@@ -154,6 +154,7 @@ svn_sqlite__prepare(svn_sqlite__stmt_t *
    s     const char *        String
    b     const void *        Blob data
          apr_size_t          Blob length
+   r     svn_revnum_t        Revision number
    t     const svn_token_t * Token mapping table
          int value           Token value
 
@@ -192,6 +193,12 @@ svn_sqlite__bind_token(svn_sqlite__stmt_
                        const svn_token_map_t *map,
                        int value);
 
+/* Bind the value to SLOT, unless SVN_IS_VALID_REVNUM(value) is false,
+   in which case it binds NULL.  */
+svn_error_t *
+svn_sqlite__bind_revnum(svn_sqlite__stmt_t *stmt, int slot,
+                        svn_revnum_t value);
+
 /* Bind a set of properties to the given slot. If PROPS is NULL, then no
    binding will occur. PROPS will be stored as a serialized skel. */
 svn_error_t *

Modified: subversion/trunk/subversion/libsvn_subr/sqlite.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/sqlite.c?rev=993005&r1=993004&r2=993005&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/sqlite.c (original)
+++ subversion/trunk/subversion/libsvn_subr/sqlite.c Mon Sep  6 12:04:33 2010
@@ -274,6 +274,11 @@ vbindf(svn_sqlite__stmt_t *stmt, const c
             SVN_ERR(svn_sqlite__bind_blob(stmt, count, blob, blob_size));
             break;
 
+          case 'r':
+            SVN_ERR(svn_sqlite__bind_revnum(stmt, count,
+                                            va_arg(ap, svn_revnum_t)));
+            break;
+
           case 't':
             map = va_arg(ap, const svn_token_map_t *);
             SVN_ERR(svn_sqlite__bind_token(stmt, count, map, va_arg(ap, int)));
@@ -353,6 +358,20 @@ svn_sqlite__bind_token(svn_sqlite__stmt_
 }
 
 svn_error_t *
+svn_sqlite__bind_revnum(svn_sqlite__stmt_t *stmt,
+                        int slot,
+                        svn_revnum_t value)
+{
+  if (SVN_IS_VALID_REVNUM(value))
+    SQLITE_ERR(sqlite3_bind_int64(stmt->s3stmt, slot,
+                                  (sqlite_int64)value), stmt->db);
+  else
+    SQLITE_ERR(sqlite3_bind_null(stmt->s3stmt, slot), stmt->db);
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_sqlite__bind_properties(svn_sqlite__stmt_t *stmt,
                             int slot,
                             const apr_hash_t *props,