diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java index 139fcba95b69c..5c05ea0b8cd76 100644 --- a/core/java/android/database/sqlite/SQLiteQueryBuilder.java +++ b/core/java/android/database/sqlite/SQLiteQueryBuilder.java @@ -489,12 +489,20 @@ public class SQLiteQueryBuilder String userColumn = projectionIn[i]; String column = mProjectionMap.get(userColumn); - if (column == null) { - throw new IllegalArgumentException( - "Invalid column " + projectionIn[i]); - } else { + if (column != null) { projection[i] = column; + continue; } + + if (userColumn.contains(" AS ") + || userColumn.contains(" as ")) { + /* A column alias already exist */ + projection[i] = userColumn; + continue; + } + + throw new IllegalArgumentException("Invalid column " + + projectionIn[i]); } return projection; } else {