summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongwon Kang <dwkang@google.com>2015-03-09 15:32:17 +0900
committerDongwon Kang <dwkang@google.com>2015-03-18 10:26:05 +0900
commit4d7ed300f89cf4ee9a8a3e99b406ad02e43475b0 (patch)
treebce17f620bf01c81ddf1435505b36582b97a57a6
parent344b2d4293049df49881664a5c4c20dcb68ae7ec (diff)
downloadandroid_packages_providers_TvProvider-4d7ed300f89cf4ee9a8a3e99b406ad02e43475b0.tar.gz
android_packages_providers_TvProvider-4d7ed300f89cf4ee9a8a3e99b406ad02e43475b0.tar.bz2
android_packages_providers_TvProvider-4d7ed300f89cf4ee9a8a3e99b406ad02e43475b0.zip
Add COLUMN_INTERNAL_PROVIDER_FLAGX in TvProvider.
No noticeable performance degradation found (tested with TvProviderPerfTest): Before) Overall elapsed time: 683 secs Average elapsed time for (insert, update, delete): 1441.04 1678.79 2073.0 ms Average elapsed time for (insert, update, query, delete programs): 1416.59 1845.15 16.22 179.07 ms After) Overall elapsed time: 684 secs Average elapsed time for (insert, update, delete): 1372.88 1692.38 2077.0 ms Average elapsed time for (insert, update, query, delete programs): 1403.45 1885.96 16.14 176.13 ms Bug: 19382355, Bug: 19190140 Change-Id: I4782318aceea4f386a6c6c569c750c0468330560
-rw-r--r--src/com/android/providers/tv/TvProvider.java45
1 files changed, 36 insertions, 9 deletions
diff --git a/src/com/android/providers/tv/TvProvider.java b/src/com/android/providers/tv/TvProvider.java
index cd70ad1..3f39769 100644
--- a/src/com/android/providers/tv/TvProvider.java
+++ b/src/com/android/providers/tv/TvProvider.java
@@ -82,7 +82,7 @@ public class TvProvider extends ContentProvider {
private static final String OP_UPDATE = "update";
private static final String OP_DELETE = "delete";
- private static final int DATABASE_VERSION = 23;
+ private static final int DATABASE_VERSION = 24;
private static final String DATABASE_NAME = "tv.db";
private static final String CHANNELS_TABLE = "channels";
private static final String PROGRAMS_TABLE = "programs";
@@ -173,6 +173,14 @@ public class TvProvider extends ContentProvider {
CHANNELS_TABLE + "." + Channels.COLUMN_LOCKED);
sChannelProjectionMap.put(Channels.COLUMN_INTERNAL_PROVIDER_DATA,
CHANNELS_TABLE + "." + Channels.COLUMN_INTERNAL_PROVIDER_DATA);
+ sChannelProjectionMap.put(Channels.COLUMN_INTERNAL_PROVIDER_FLAG1,
+ CHANNELS_TABLE + "." + Channels.COLUMN_INTERNAL_PROVIDER_FLAG1);
+ sChannelProjectionMap.put(Channels.COLUMN_INTERNAL_PROVIDER_FLAG2,
+ CHANNELS_TABLE + "." + Channels.COLUMN_INTERNAL_PROVIDER_FLAG2);
+ sChannelProjectionMap.put(Channels.COLUMN_INTERNAL_PROVIDER_FLAG3,
+ CHANNELS_TABLE + "." + Channels.COLUMN_INTERNAL_PROVIDER_FLAG3);
+ sChannelProjectionMap.put(Channels.COLUMN_INTERNAL_PROVIDER_FLAG4,
+ CHANNELS_TABLE + "." + Channels.COLUMN_INTERNAL_PROVIDER_FLAG4);
sChannelProjectionMap.put(Channels.COLUMN_VERSION_NUMBER,
CHANNELS_TABLE + "." + Channels.COLUMN_VERSION_NUMBER);
@@ -275,6 +283,10 @@ public class TvProvider extends ContentProvider {
+ Channels.COLUMN_SEARCHABLE + " INTEGER NOT NULL DEFAULT 1,"
+ Channels.COLUMN_LOCKED + " INTEGER NOT NULL DEFAULT 0,"
+ Channels.COLUMN_INTERNAL_PROVIDER_DATA + " BLOB,"
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG1 + " INTEGER,"
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG2 + " INTEGER,"
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG3 + " INTEGER,"
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG4 + " INTEGER,"
+ CHANNELS_COLUMN_LOGO + " BLOB,"
+ Channels.COLUMN_VERSION_NUMBER + " INTEGER,"
// Needed for foreign keys in other tables.
@@ -344,14 +356,29 @@ public class TvProvider extends ContentProvider {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- Log.i(TAG, "Upgrading from version " + oldVersion + " to " + newVersion
- + ", data will be lost!");
- db.execSQL("DROP TABLE IF EXISTS " + DELETED_CHANNELS_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + WATCHED_PROGRAMS_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + PROGRAMS_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + CHANNELS_TABLE);
-
- onCreate(db);
+ if (oldVersion < 23) {
+ Log.i(TAG, "Upgrading from version " + oldVersion + " to " + newVersion
+ + ", data will be lost!");
+ db.execSQL("DROP TABLE IF EXISTS " + DELETED_CHANNELS_TABLE);
+ db.execSQL("DROP TABLE IF EXISTS " + WATCHED_PROGRAMS_TABLE);
+ db.execSQL("DROP TABLE IF EXISTS " + PROGRAMS_TABLE);
+ db.execSQL("DROP TABLE IF EXISTS " + CHANNELS_TABLE);
+
+ onCreate(db);
+ return;
+ }
+
+ Log.i(TAG, "Upgrading from version " + oldVersion + " to " + newVersion + ".");
+ if (oldVersion == 23) {
+ db.execSQL("ALTER TABLE " + CHANNELS_TABLE + " ADD "
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG1 + " INTEGER;");
+ db.execSQL("ALTER TABLE " + CHANNELS_TABLE + " ADD "
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG2 + " INTEGER;");
+ db.execSQL("ALTER TABLE " + CHANNELS_TABLE + " ADD "
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG3 + " INTEGER;");
+ db.execSQL("ALTER TABLE " + CHANNELS_TABLE + " ADD "
+ + Channels.COLUMN_INTERNAL_PROVIDER_FLAG4 + " INTEGER;");
+ }
}
}