Ignore duplicate column exceptions during database upgrade

Some columns were accidentally removed and readded, so in some upgrade
cases, the column might already exist.

Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/src/com/android/providers/contacts/ContactsProvider.java b/src/com/android/providers/contacts/ContactsProvider.java
index 6861287..8d72f05 100644
--- a/src/com/android/providers/contacts/ContactsProvider.java
+++ b/src/com/android/providers/contacts/ContactsProvider.java
@@ -387,13 +387,41 @@
         }
 
         if (oldVersion == 82) {
-            db.execSQL("ALTER TABLE people ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE _deleted_people ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE groups ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE _deleted_groups ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE settings ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE photos ADD COLUMN _sync_account_type TEXT;");
-            db.execSQL("ALTER TABLE groupmembership ADD COLUMN group_sync_account_type TEXT;");
+            try {
+                db.execSQL("ALTER TABLE people ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE _deleted_people ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE groups ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE _deleted_groups ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE settings ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE photos ADD COLUMN _sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
+            try {
+                db.execSQL("ALTER TABLE groupmembership ADD COLUMN group_sync_account_type TEXT;");
+            } catch (SQLException e) {
+                // in some upgrade paths, these column might already exists
+            }
 
             db.execSQL("UPDATE people"
                     + " SET _sync_account_type='com.google.GAIA'"