diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-04-29 13:41:23 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-29 13:41:23 -0700 |
commit | 090d32b27509b1885eead49a4978b2dfd607639a (patch) | |
tree | 8de2f3de6cd09a1087b2d23c2f292abed8864cb3 /core/java/android/database | |
parent | ef77be9526ec05cb89881719dfdac4e07cef45d3 (diff) | |
parent | 9ae8873ed83035e8527526e2cc1a189caf0e8d9e (diff) | |
download | frameworks_base-090d32b27509b1885eead49a4978b2dfd607639a.zip frameworks_base-090d32b27509b1885eead49a4978b2dfd607639a.tar.gz frameworks_base-090d32b27509b1885eead49a4978b2dfd607639a.tar.bz2 |
am 9ae8873: Merge change 617 into donut
Merge commit '9ae8873ed83035e8527526e2cc1a189caf0e8d9e'
* commit '9ae8873ed83035e8527526e2cc1a189caf0e8d9e':
Allow caller-supplied column aliases in queries even when a projection map is used.
Diffstat (limited to 'core/java/android/database')
-rw-r--r-- | core/java/android/database/sqlite/SQLiteQueryBuilder.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/database/sqlite/SQLiteQueryBuilder.java b/core/java/android/database/sqlite/SQLiteQueryBuilder.java index 139fcba..5c05ea0 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 { |