diff options
author | Dongwon Kang <dwkang@google.com> | 2015-03-09 15:32:17 +0900 |
---|---|---|
committer | Dongwon Kang <dwkang@google.com> | 2015-03-18 10:26:05 +0900 |
commit | 4d7ed300f89cf4ee9a8a3e99b406ad02e43475b0 (patch) | |
tree | bce17f620bf01c81ddf1435505b36582b97a57a6 | |
parent | 344b2d4293049df49881664a5c4c20dcb68ae7ec (diff) | |
download | android_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.java | 45 |
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;"); + } } } |