Merge "Fix bugs in aggregator2." into mnc-dev
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index 2e37e13..bbde779 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -122,7 +122,7 @@
      *   1000-1099 M
      * </pre>
      */
-    static final int DATABASE_VERSION = 1008;
+    static final int DATABASE_VERSION = 1009;
 
     public interface Tables {
         public static final String CONTACTS = "contacts";
@@ -1361,7 +1361,8 @@
                 Data.SYNC1 + " TEXT, " +
                 Data.SYNC2 + " TEXT, " +
                 Data.SYNC3 + " TEXT, " +
-                Data.SYNC4 + " TEXT " +
+                Data.SYNC4 + " TEXT, " +
+                Data.CARRIER_PRESENCE + " INTEGER NOT NULL DEFAULT 0 " +
         ");");
 
         db.execSQL("CREATE INDEX data_raw_contact_id ON " + Tables.DATA + " (" +
@@ -2931,6 +2932,11 @@
             oldVersion = 1008;
         }
 
+        if (oldVersion < 1009) {
+            upgradeToVersion1009(db);
+            oldVersion = 1009;
+        }
+
         if (upgradeViewsAndTriggers) {
             createContactsViews(db);
             createGroupsView(db);
@@ -4473,6 +4479,10 @@
                 "raw_contact_backup_id, account_id);");
     }
 
+    public void upgradeToVersion1009(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE data ADD carrier_presence INTEGER NOT NULL DEFAULT 0");
+    }
+
     public String extractHandleFromEmailAddress(String email) {
         Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(email);
         if (tokens.length == 0) {
diff --git a/tools/contacts-db-schema.sh b/tools/contacts-db-schema.sh
new file mode 100755
index 0000000..3aa164b
--- /dev/null
+++ b/tools/contacts-db-schema.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set -e
+
+db=/data/data/com.android.providers.contacts/databases/contacts2.db
+
+# Use ls to make sure the file already exists.
+# Otherwise sqlite3 would create an empty file owned by root.
+
+# Sed inserts a newline after each ( and ,
+adb shell "(ls $db >/dev/null)&& sqlite3 $db \"select name, sql from sqlite_master where type in('table','index') order by name\"" |
+    sed -e 's/\([(,]\)/\1\n  /g'
+echo "> sqlite_stat1"
+adb shell "(ls $db >/dev/null)&& sqlite3 $db \"select * from sqlite_stat1 order by tbl, idx, stat\""
+
+