diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java index 1d154ce5b3c08..610bf7013e099 100644 --- a/core/java/android/database/sqlite/SQLiteQueryBuilder.java +++ b/core/java/android/database/sqlite/SQLiteQueryBuilder.java @@ -43,6 +43,7 @@ public class SQLiteQueryBuilder private StringBuilder mWhereClause = null; // lazily created private boolean mDistinct; private SQLiteDatabase.CursorFactory mFactory; + private boolean mStrictProjectionMap; public SQLiteQueryBuilder() { mDistinct = false; @@ -143,6 +144,13 @@ public class SQLiteQueryBuilder mFactory = factory; } + /** + * @hide + */ + public void setStrictProjectionMap(boolean flag) { + mStrictProjectionMap = flag; + } + /** * Build an SQL query string from the given clauses. * @@ -505,8 +513,8 @@ public class SQLiteQueryBuilder continue; } - if (userColumn.contains(" AS ") - || userColumn.contains(" as ")) { + if (!mStrictProjectionMap && + ( userColumn.contains(" AS ") || userColumn.contains(" as "))) { /* A column alias already exist */ projection[i] = userColumn; continue;