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,