[rygel-gst-0-10-plugins/wip/tracking: 1/8] Update SQL factory strings.



commit fb357ce4a189bbcc622dd5f50ec7770b398ec9f2
Author: Krzesimir Nowak <krnowak openismus com>
Date:   Tue Feb 19 12:26:03 2013 +0100

    Update SQL factory strings.

 src/media-export/rygel-media-export-sql-factory.c |  196 +++++++++------------
 src/media-export/rygel-media-export-sql-factory.h |   11 +-
 2 files changed, 91 insertions(+), 116 deletions(-)
---
diff --git a/src/media-export/rygel-media-export-sql-factory.c 
b/src/media-export/rygel-media-export-sql-factory.c
index 265dbfb..6934432 100644
--- a/src/media-export/rygel-media-export-sql-factory.c
+++ b/src/media-export/rygel-media-export-sql-factory.c
@@ -36,8 +36,9 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_INSERT_OBJECT_STRING \
   "INSERT OR REPLACE INTO Object " \
-  "(upnp_id, title, type_fk, parent, timestamp, uri) " \
-  "VALUES (?,?,?,?,?,?)"
+  "(upnp_id, title, type_fk, parent, timestamp, uri, " \
+  "object_update_id, deleted_child_count, container_update_id) " \
+  "VALUES (?,?,?,?,?,?,?,?,?)"
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_DELETE_BY_ID_STRING \
   "DELETE FROM Object WHERE upnp_id IN " \
@@ -48,7 +49,8 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "m.height, m.class, m.author, m.album, m.date, m.bitrate, " \
   "m.sample_freq, m.bits_per_sample, m.channels, m.track, " \
   "m.color_depth, m.duration, o.upnp_id, o.parent, o.timestamp, " \
-  "o.uri, m.dlna_profile, m.genre, m.disc "
+  "o.uri, m.dlna_profile, m.genre, m.disc, o.object_update_id, " \
+  "o.deleted_child_count, o.container_update_id "
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_WITH_PATH \
   "SELECT DISTINCT " RYGEL_MEDIA_EXPORT_SQL_FACTORY_ALL_DETAILS_STRING \
@@ -73,7 +75,7 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "JOIN Closure c ON (o.upnp_id = c.descendant) " \
   "LEFT OUTER JOIN meta_data m " \
   "ON c.descendant = m.object_fk " \
-  "WHERE c.ancestor = ? AND c.depth = 1 %s" \
+  "WHERE c.ancestor = ? AND c.depth = 1 %s " \
   "LIMIT ?,?"
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECTS_BY_FILTER_STRING_WITH_ANCESTOR \
@@ -137,10 +139,11 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "color_depth INTEGER, " \
   "object_fk TEXT UNIQUE CONSTRAINT " \
   "object_fk_id REFERENCES Object(upnp_id) " \
-  "ON DELETE CASCADE);"
+  "ON DELETE CASCADE); "
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_STRING \
-  "CREATE TABLE schema_info (version TEXT NOT NULL); " \
+  "CREATE TABLE schema_info (version TEXT NOT NULL, " \
+  "reset_token TEXT); " \
   RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_META_DATA_TABLE_STRING \
   "CREATE TABLE object (parent TEXT CONSTRAINT parent_fk_id " \
   "REFERENCES Object(upnp_id), " \
@@ -149,7 +152,10 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "title TEXT NOT NULL, " \
   "timestamp INTEGER NOT NULL, " \
   "uri TEXT, " \
-  "flags TEXT);" \
+  "flags TEXT, " \
+  "object_update_id INTEGER, " \
+  "deleted_child_count INTEGER, " \
+  "container_update_id INTEGER); " \
   "INSERT INTO schema_info (version) VALUES ('" \
   RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION "'); "
 
@@ -163,17 +169,17 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "SELECT RAISE(IGNORE) WHERE (SELECT COUNT(*) FROM Closure " \
   "WHERE ancestor = NEW.upnp_id " \
   "AND descendant = NEW.upnp_id " \
-  "AND depth = 0) != 0;" \
+  "AND depth = 0) != 0; " \
   "INSERT INTO Closure (ancestor, descendant, depth) " \
   "VALUES (NEW.upnp_id, NEW.upnp_id, 0); " \
   "INSERT INTO Closure (ancestor, descendant, depth) " \
   "SELECT ancestor, NEW.upnp_id, depth + 1 FROM Closure " \
-  "WHERE descendant = NEW.parent;" \
-  "END;" \
+  "WHERE descendant = NEW.parent; " \
+  "END; " \
   "CREATE TRIGGER trgr_delete_closure " \
   "AFTER DELETE ON Object " \
   "FOR EACH ROW BEGIN " \
-  "DELETE FROM Closure WHERE descendant = OLD.upnp_id;" \
+  "DELETE FROM Closure WHERE descendant = OLD.upnp_id; " \
   "END;"
 
 // these triggers emulate ON DELETE CASCADE
@@ -185,16 +191,16 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
   "END;"
 
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_INDICES_STRING \
-  "CREATE INDEX IF NOT EXISTS idx_parent on Object(parent);" \
-  "CREATE INDEX IF NOT EXISTS idx_object_upnp_id on Object(upnp_id);" \
-  "CREATE INDEX IF NOT EXISTS idx_meta_data_fk on meta_data(object_fk);" \
-  "CREATE INDEX IF NOT EXISTS idx_closure on Closure(descendant,depth);" \
-  "CREATE INDEX IF NOT EXISTS idx_closure_descendant on Closure(descendant);" \
-  "CREATE INDEX IF NOT EXISTS idx_closure_ancestor on Closure(ancestor);" \
-  "CREATE INDEX IF NOT EXISTS idx_uri on Object(uri);" \
-  "CREATE INDEX IF NOT EXISTS idx_meta_data_date on meta_data(date);" \
-  "CREATE INDEX IF NOT EXISTS idx_meta_data_genre on meta_data(genre);" \
-  "CREATE INDEX IF NOT EXISTS idx_meta_data_album on meta_data(album);" \
+  "CREATE INDEX IF NOT EXISTS idx_parent on Object(parent); " \
+  "CREATE INDEX IF NOT EXISTS idx_object_upnp_id on Object(upnp_id); " \
+  "CREATE INDEX IF NOT EXISTS idx_meta_data_fk on meta_data(object_fk); " \
+  "CREATE INDEX IF NOT EXISTS idx_closure on Closure(descendant,depth); " \
+  "CREATE INDEX IF NOT EXISTS idx_closure_descendant on Closure(descendant); " \
+  "CREATE INDEX IF NOT EXISTS idx_closure_ancestor on Closure(ancestor); " \
+  "CREATE INDEX IF NOT EXISTS idx_uri on Object(uri); " \
+  "CREATE INDEX IF NOT EXISTS idx_meta_data_date on meta_data(date); " \
+  "CREATE INDEX IF NOT EXISTS idx_meta_data_genre on meta_data(genre); " \
+  "CREATE INDEX IF NOT EXISTS idx_meta_data_album on meta_data(album); " \
   "CREATE INDEX IF NOT EXISTS idx_meta_data_artist_album on " \
   "meta_data(author, album);"
 
@@ -205,113 +211,77 @@ G_DEFINE_TYPE (RygelMediaExportSQLFactory, rygel_media_export_sql_factory, G_TYP
 #define RYGEL_MEDIA_EXPORT_SQL_FACTORY_STATISTICS_STRING \
   "SELECT class, count(1) FROM meta_data GROUP BY class"
 
-RygelMediaExportSQLFactory *rygel_media_export_sql_factory_construct (GType object_type);
+#define RYGEL_MEDIA_EXPORT_SQL_FACTORY_RESET_TOKEN_STRING \
+  "SELECT reset_token FROM schema_info"
+
+#define RYGEL_MEDIA_EXPORT_SQL_FACTORY_MAX_UPDATE_ID_STRING \
+  "SELECT MAX(MAX(object_update_id), MAX(container_update_id)) FROM Object"
 
 const gchar*
 rygel_media_export_sql_factory_make (RygelMediaExportSQLFactory *self, RygelMediaExportSQLString query) {
   g_return_val_if_fail (self, NULL);
 
   switch (query) {
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_SAVE_METADATA:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_SAVE_META_DATA_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_INSERT:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_INSERT_OBJECT_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_DELETE:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_DELETE_BY_ID_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_WITH_PATH;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_CHILDREN:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_CHILDREN_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECTS_BY_FILTER_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER_WITH_ANCESTOR:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECTS_BY_FILTER_STRING_WITH_ANCESTOR;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_COUNT_BY_FILTER_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER_WITH_ANCESTOR:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_COUNT_BY_FILTER_STRING_WITH_ANCESTOR;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_META_DATA_COLUMN:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_META_DATA_COLUMN_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_COUNT:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CHILDREN_COUNT_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_OBJECT_EXISTS_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_IDS:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_CHILD_ID_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_METADATA:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_META_DATA_TABLE_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_COMMON:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_TRIGGER_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_CLOSURE:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_CLOSURE_TRIGGER_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_INDICES_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS_CACHE:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_EXISTS_CACHE_STRING;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_CLOSURE:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_CLOSURE_TABLE;
-    }
-    case RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS:
-    {
-      return RYGEL_MEDIA_EXPORT_SQL_FACTORY_STATISTICS_STRING;
-    }
-    default:
-    {
-      g_assert_not_reached ();
-    }
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_SAVE_METADATA:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_SAVE_META_DATA_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_INSERT:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_INSERT_OBJECT_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_DELETE:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_DELETE_BY_ID_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_WITH_PATH;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_CHILDREN:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_CHILDREN_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECTS_BY_FILTER_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECTS_BY_FILTER_WITH_ANCESTOR:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECTS_BY_FILTER_STRING_WITH_ANCESTOR;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_COUNT_BY_FILTER_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_OBJECT_COUNT_BY_FILTER_WITH_ANCESTOR:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_OBJECT_COUNT_BY_FILTER_STRING_WITH_ANCESTOR;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_GET_META_DATA_COLUMN:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_META_DATA_COLUMN_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_COUNT:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CHILDREN_COUNT_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_OBJECT_EXISTS_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_CHILD_IDS:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_GET_CHILD_ID_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_METADATA:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_META_DATA_TABLE_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_COMMON:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_TRIGGER_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_TRIGGER_CLOSURE:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_CLOSURE_TRIGGER_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_INDICES_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS_CACHE:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_EXISTS_CACHE_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_TABLE_CLOSURE:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_CREATE_CLOSURE_TABLE;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_STATISTICS_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_RESET_TOKEN:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_RESET_TOKEN_STRING;
+  case RYGEL_MEDIA_EXPORT_SQL_STRING_MAX_UPDATE_ID:
+    return RYGEL_MEDIA_EXPORT_SQL_FACTORY_MAX_UPDATE_ID_STRING;
+  default:
+    g_assert_not_reached ();
   }
 }
 
-RygelMediaExportSQLFactory*
+RygelMediaExportSQLFactory *
 rygel_media_export_sql_factory_new (void) {
   return RYGEL_MEDIA_EXPORT_SQL_FACTORY (g_object_new (RYGEL_MEDIA_EXPORT_TYPE_SQL_FACTORY, NULL));
 }
 
 static void
-rygel_media_export_sql_factory_class_init (RygelMediaExportSQLFactoryClass  *klass G_GNUC_UNUSED) {
+rygel_media_export_sql_factory_class_init (RygelMediaExportSQLFactoryClass *klass G_GNUC_UNUSED) {
 }
 
 static void
-rygel_media_export_sql_factory_init (RygelMediaExportSQLFactory  *self G_GNUC_UNUSED) {
+rygel_media_export_sql_factory_init (RygelMediaExportSQLFactory *self G_GNUC_UNUSED) {
 }
diff --git a/src/media-export/rygel-media-export-sql-factory.h 
b/src/media-export/rygel-media-export-sql-factory.h
index 504c1b7..d22fe3f 100644
--- a/src/media-export/rygel-media-export-sql-factory.h
+++ b/src/media-export/rygel-media-export-sql-factory.h
@@ -47,7 +47,7 @@ struct _RygelMediaExportSQLFactoryClass {
   GObjectClass parent_class;
 };
 
-#define RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION "11"
+#define RYGEL_MEDIA_EXPORT_SQL_FACTORY_SCHEMA_VERSION "12"
 
 typedef enum  {
   RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_TYPE,
@@ -73,7 +73,10 @@ typedef enum  {
   RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_URI,
   RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DLNA_PROFILE,
   RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_GENRE,
-  RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DISC
+  RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DISC,
+  RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_OBJECT_UPDATE_ID,
+  RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_DELETED_CHILD_COUNT,
+  RYGEL_MEDIA_EXPORT_DETAIL_COLUMN_CONTAINER_UPDATE_ID
 } RygelMediaExportDetailColumn;
 
 typedef enum  {
@@ -97,7 +100,9 @@ typedef enum  {
   RYGEL_MEDIA_EXPORT_SQL_STRING_INDEX_COMMON,
   RYGEL_MEDIA_EXPORT_SQL_STRING_SCHEMA,
   RYGEL_MEDIA_EXPORT_SQL_STRING_EXISTS_CACHE,
-  RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS
+  RYGEL_MEDIA_EXPORT_SQL_STRING_STATISTICS,
+  RYGEL_MEDIA_EXPORT_SQL_STRING_RESET_TOKEN,
+  RYGEL_MEDIA_EXPORT_SQL_STRING_MAX_UPDATE_ID
 } RygelMediaExportSQLString;
 
 GType


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]