[rygel] lms: Replace prepare_and_init with exec_cursor
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] lms: Replace prepare_and_init with exec_cursor
- Date: Sun, 7 Feb 2016 16:25:26 +0000 (UTC)
commit b932b8fe0e32b736dd9d6487a42366ac107fb7e8
Author: Jens Georg <mail jensge org>
Date: Sun Feb 7 15:11:53 2016 +0100
lms: Replace prepare_and_init with exec_cursor
Signed-off-by: Jens Georg <mail jensge org>
src/plugins/lms/rygel-lms-albums.vala | 9 +--
src/plugins/lms/rygel-lms-category-container.vala | 11 +---
src/plugins/lms/rygel-lms-database.vala | 60 ---------------------
3 files changed, 6 insertions(+), 74 deletions(-)
---
diff --git a/src/plugins/lms/rygel-lms-albums.vala b/src/plugins/lms/rygel-lms-albums.vala
index 8b93f28..12d77f3 100644
--- a/src/plugins/lms/rygel-lms-albums.vala
+++ b/src/plugins/lms/rygel-lms-albums.vala
@@ -108,10 +108,7 @@ public class Rygel.LMS.Albums : Rygel.LMS.CategoryContainer {
}
var query = Albums.SQL_CHILD_COUNT_WITH_FILTER_TEMPLATE.printf (filter);
try {
- var stmt = this.lms_db.prepare_and_init (query, args.values);
- if (stmt.step () == Sqlite.ROW) {
- count += stmt.column_int (0);
- }
+ count += this.lms_db.query_value (query, args.values);
} catch (DatabaseError e) {
warning ("Query failed: %s", e.message);
}
@@ -136,8 +133,8 @@ public class Rygel.LMS.Albums : Rygel.LMS.CategoryContainer {
}
var query = Albums.SQL_CHILD_ALL_WITH_FILTER_TEMPLATE.printf (filter);
try {
- var stmt = this.lms_db.prepare_and_init (query, args.values);
- while (Database.get_children_step (stmt)) {
+ var cursor = this.lms_db.exec_cursor (query, args.values);
+ foreach (var stmt in cursor) {
var album_id = stmt.column_text (13);
var album = new Album (album_id, this, "", this.lms_db);
diff --git a/src/plugins/lms/rygel-lms-category-container.vala
b/src/plugins/lms/rygel-lms-category-container.vala
index 8a07f48..f208ef2 100644
--- a/src/plugins/lms/rygel-lms-category-container.vala
+++ b/src/plugins/lms/rygel-lms-category-container.vala
@@ -201,12 +201,7 @@ public abstract class Rygel.LMS.CategoryContainer : Rygel.MediaContainer,
{
var query = this.get_sql_count_with_filter (where_filter);
try {
- var stmt = this.lms_db.prepare_and_init (query, args.values);
- if (stmt.step () != Sqlite.ROW) {
- return 0;
- }
-
- return stmt.column_int (0);
+ return this.lms_db.query_value (query, args.values);
} catch (DatabaseError e) {
warning ("Query failed: %s", e.message);
@@ -228,8 +223,8 @@ public abstract class Rygel.LMS.CategoryContainer : Rygel.MediaContainer,
var query = this.get_sql_all_with_filter (where_filter);
try {
- var stmt = this.lms_db.prepare_and_init (query, args.values);
- while (Database.get_children_step (stmt)) {
+ var cursor = this.lms_db.exec_cursor (query, args.values);
+ foreach (var stmt in cursor) {
children.add (this.object_from_statement (stmt));
}
} catch (DatabaseError e) {
diff --git a/src/plugins/lms/rygel-lms-database.vala b/src/plugins/lms/rygel-lms-database.vala
index 82c4b83..70dd7f8 100644
--- a/src/plugins/lms/rygel-lms-database.vala
+++ b/src/plugins/lms/rygel-lms-database.vala
@@ -85,66 +85,6 @@ public class Rygel.LMS.Database : Rygel.Database.Database, Initable {
}
}
-
- public Statement prepare_and_init (string query,
- GLib.Value[]? arguments)
- throws DatabaseError {
-
- var statement = this.prepare (query);
-
- for (var i = 1; i <= arguments.length; ++i) {
- int sqlite_err;
- unowned GLib.Value current_value = arguments[i - 1];
-
- if (current_value.holds (typeof (int))) {
- sqlite_err = statement.bind_int (i, current_value.get_int ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (int64))) {
- sqlite_err = statement.bind_int64 (i, current_value.get_int64 ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (uint64))) {
- sqlite_err = statement.bind_int64 (i, (int64) current_value.get_uint64 ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (long))) {
- sqlite_err = statement.bind_int64 (i, current_value.get_long ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (uint))) {
- sqlite_err = statement.bind_int64 (i, current_value.get_uint ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (string))) {
- sqlite_err = statement.bind_text (i, current_value.get_string ());
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else if (current_value.holds (typeof (void *))) {
- if (current_value.peek_pointer () == null) {
- sqlite_err = statement.bind_null (i);
- if (sqlite_err != Sqlite.OK)
- throw new DatabaseError.BIND("Unable to bind value %d",
- sqlite_err);
- } else {
- assert_not_reached ();
- }
- } else {
- var type = current_value.type ();
- warning (_("Unsupported type %s"), type.name ());
- assert_not_reached ();
- }
- }
-
- return statement;
- }
-
public static void find_object(string id, Statement stmt) throws DatabaseError {
(void) stmt.reset();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]