OSDN Git Service

Introducing "strict project map".
authorDmitri Plotnikov <dplotnikov@google.com>
Wed, 14 Apr 2010 23:09:46 +0000 (16:09 -0700)
committerDmitri Plotnikov <dplotnikov@google.com>
Wed, 14 Apr 2010 23:10:22 +0000 (16:10 -0700)
Change-Id: I147e10ac6475badf1d21e2c27d1cedbb27bd49df

core/java/android/database/sqlite/SQLiteQueryBuilder.java

index 1d154ce..610bf70 100644 (file)
@@ -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;
@@ -144,6 +145,13 @@ public class SQLiteQueryBuilder
     }
 
     /**
+     * @hide
+     */
+    public void setStrictProjectionMap(boolean flag) {
+        mStrictProjectionMap = flag;
+    }
+
+    /**
      * Build an SQL query string from the given clauses.
      *
      * @param distinct true if you want each row to be unique, false otherwise.
@@ -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;