tree 6c896de5d2049b5d98caa8a545c0d068e49a0bed
parent 7df0cc0104c6a608a5a7eef0e50eed63423c8d70
author Alon Albert <aalbert@google.com> 1328234660 -0800
committer Alon Albert <aalbert@google.com> 1328234660 -0800

Fix Typo that was causing a throwwhen updating Colors table

android.database.sqlite.SQLiteException: no such column: color: , while compiling: UPDATE Calendars SET color=? WHERE account_name=? AND account_type=? AND calendar_color_index=?
	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:704)
	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:324)
	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
	at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
	at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1450)
	at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1403)
	at com.android.providers.calendar.CalendarProvider2.handleUpdateColors(CalendarProvider2.java:3577)
	at com.android.providers.calendar.CalendarProvider2.updateInTransaction(CalendarProvider2.java:3822)
	at com.android.providers.calendar.SQLiteContentProvider.update(SQLiteContentProvider.java:159)
	at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:225)
	at com.android.providers.calendar.SQLiteContentProvider.applyBatch(SQLiteContentProvider.java:224)
	at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:216)
	at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:179)
	at android.os.Binder.execTransact(Binder.java:338)
	at dalvik.system.NativeStart.run(Native Method)

Change-Id: I3f28f3c3cef1692942d8f4a7fc9f49c7d6d2adf8
