package com.gettingmobile.google.reader.db; import android.database.sqlite.SQLiteDatabase; import java.util.Map; public class FeedTagTable extends Table { public static final String TABLE_NAME = "feedTag"; public static final String FEED_KEY = "feedKey"; public static final String TAG_KEY = "tagKey"; public static final String SORT_ORDER = "sortOrder"; public FeedTagTable() { super(TABLE_NAME); } @Override protected void defineColumns(Map<String, String> columns) { columns.put(FEED_KEY, "INTEGER"); columns.put(TAG_KEY, "INTEGER"); columns.put(SORT_ORDER, "INTEGER"); } @Override protected void postCommands(SQLiteDatabase db) { super.postCommands(db); db.execSQL("CREATE UNIQUE INDEX " + getTableName() + "Relation ON " + getTableName() + " (feedKey, tagKey)"); db.execSQL("CREATE UNIQUE INDEX tag2feed ON " + getTableName() + " (tagKey, feedKey)"); db.execSQL("CREATE INDEX feedKeyIndex ON " + getTableName() + " (feedKey)"); db.execSQL("CREATE INDEX feedTagKeyIndex ON " + getTableName() + " (tagKey)"); } @Override public void upgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion < 16) { db.execSQL("ALTER TABLE feedTag ADD COLUMN sortOrder INTEGER"); } if (oldVersion < 30) { db.execSQL("DROP INDEX IF EXISTS tag2feed"); db.execSQL("CREATE UNIQUE INDEX tag2feed ON " + getTableName() + " (tagKey, feedKey)"); } super.upgrade(db, oldVersion, newVersion); } }