Skip to content

Commit 8fc378f

Browse files
Jean-Baptiste QueruAndroid Code Review
authored andcommitted
Merge "Added buildQuery and buildUnionSubQuery methods without misleading selectionArgs parameter."
2 parents 383e95e + 8402903 commit 8fc378f

File tree

2 files changed

+92
-14
lines changed

2 files changed

+92
-14
lines changed

api/current.xml

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55246,6 +55246,29 @@
5524655246
</parameter>
5524755247
<parameter name="selection" type="java.lang.String">
5524855248
</parameter>
55249+
<parameter name="groupBy" type="java.lang.String">
55250+
</parameter>
55251+
<parameter name="having" type="java.lang.String">
55252+
</parameter>
55253+
<parameter name="sortOrder" type="java.lang.String">
55254+
</parameter>
55255+
<parameter name="limit" type="java.lang.String">
55256+
</parameter>
55257+
</method>
55258+
<method name="buildQuery"
55259+
return="java.lang.String"
55260+
abstract="false"
55261+
native="false"
55262+
synchronized="false"
55263+
static="false"
55264+
final="false"
55265+
deprecated="deprecated"
55266+
visibility="public"
55267+
>
55268+
<parameter name="projectionIn" type="java.lang.String[]">
55269+
</parameter>
55270+
<parameter name="selection" type="java.lang.String">
55271+
</parameter>
5524955272
<parameter name="selectionArgs" type="java.lang.String[]">
5525055273
</parameter>
5525155274
<parameter name="groupBy" type="java.lang.String">
@@ -55323,6 +55346,33 @@
5532355346
</parameter>
5532455347
<parameter name="selection" type="java.lang.String">
5532555348
</parameter>
55349+
<parameter name="groupBy" type="java.lang.String">
55350+
</parameter>
55351+
<parameter name="having" type="java.lang.String">
55352+
</parameter>
55353+
</method>
55354+
<method name="buildUnionSubQuery"
55355+
return="java.lang.String"
55356+
abstract="false"
55357+
native="false"
55358+
synchronized="false"
55359+
static="false"
55360+
final="false"
55361+
deprecated="deprecated"
55362+
visibility="public"
55363+
>
55364+
<parameter name="typeDiscriminatorColumn" type="java.lang.String">
55365+
</parameter>
55366+
<parameter name="unionColumns" type="java.lang.String[]">
55367+
</parameter>
55368+
<parameter name="columnsPresentInTable" type="java.util.Set&lt;java.lang.String&gt;">
55369+
</parameter>
55370+
<parameter name="computedColumnsOffset" type="int">
55371+
</parameter>
55372+
<parameter name="typeDiscriminatorValue" type="java.lang.String">
55373+
</parameter>
55374+
<parameter name="selection" type="java.lang.String">
55375+
</parameter>
5532655376
<parameter name="selectionArgs" type="java.lang.String[]">
5532755377
</parameter>
5532855378
<parameter name="groupBy" type="java.lang.String">
@@ -216168,7 +216218,7 @@
216168216218
deprecated="not deprecated"
216169216219
visibility="public"
216170216220
>
216171-
<parameter name="t" type="T">
216221+
<parameter name="arg0" type="T">
216172216222
</parameter>
216173216223
</method>
216174216224
</interface>

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

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ public Cursor query(SQLiteDatabase db, String[] projectionIn,
321321
}
322322

323323
String sql = buildQuery(
324-
projectionIn, selection, selectionArgs, groupBy, having,
324+
projectionIn, selection, groupBy, having,
325325
sortOrder, limit);
326326

327327
if (Log.isLoggable(TAG, Log.DEBUG)) {
@@ -345,10 +345,6 @@ public Cursor query(SQLiteDatabase db, String[] projectionIn,
345345
* formatted as an SQL WHERE clause (excluding the WHERE
346346
* itself). Passing null will return all rows for the given
347347
* URL.
348-
* @param selectionArgs You may include ?s in selection, which
349-
* will be replaced by the values from selectionArgs, in order
350-
* that they appear in the selection. The values will be bound
351-
* as Strings.
352348
* @param groupBy A filter declaring how to group rows, formatted
353349
* as an SQL GROUP BY clause (excluding the GROUP BY itself).
354350
* Passing null will cause the rows to not be grouped.
@@ -365,8 +361,8 @@ public Cursor query(SQLiteDatabase db, String[] projectionIn,
365361
* @return the resulting SQL SELECT statement
366362
*/
367363
public String buildQuery(
368-
String[] projectionIn, String selection, String[] selectionArgs,
369-
String groupBy, String having, String sortOrder, String limit) {
364+
String[] projectionIn, String selection, String groupBy,
365+
String having, String sortOrder, String limit) {
370366
String[] projection = computeProjection(projectionIn);
371367

372368
StringBuilder where = new StringBuilder();
@@ -393,6 +389,19 @@ public String buildQuery(
393389
groupBy, having, sortOrder, limit);
394390
}
395391

392+
/**
393+
* @deprecated This method's signature is misleading since no SQL parameter
394+
* substitution is carried out. The selection arguments parameter does not get
395+
* used at all. To avoid confusion, call
396+
* {@link #buildQuery(String[], String, String, String, String, String)} instead.
397+
*/
398+
@Deprecated
399+
public String buildQuery(
400+
String[] projectionIn, String selection, String[] selectionArgs,
401+
String groupBy, String having, String sortOrder, String limit) {
402+
return buildQuery(projectionIn, selection, groupBy, having, sortOrder, limit);
403+
}
404+
396405
/**
397406
* Construct a SELECT statement suitable for use in a group of
398407
* SELECT statements that will be joined through UNION operators
@@ -422,10 +431,6 @@ public String buildQuery(
422431
* formatted as an SQL WHERE clause (excluding the WHERE
423432
* itself). Passing null will return all rows for the given
424433
* URL.
425-
* @param selectionArgs You may include ?s in selection, which
426-
* will be replaced by the values from selectionArgs, in order
427-
* that they appear in the selection. The values will be bound
428-
* as Strings.
429434
* @param groupBy A filter declaring how to group rows, formatted
430435
* as an SQL GROUP BY clause (excluding the GROUP BY itself).
431436
* Passing null will cause the rows to not be grouped.
@@ -443,7 +448,6 @@ public String buildUnionSubQuery(
443448
int computedColumnsOffset,
444449
String typeDiscriminatorValue,
445450
String selection,
446-
String[] selectionArgs,
447451
String groupBy,
448452
String having) {
449453
int unionColumnsCount = unionColumns.length;
@@ -463,11 +467,35 @@ public String buildUnionSubQuery(
463467
}
464468
}
465469
return buildQuery(
466-
projectionIn, selection, selectionArgs, groupBy, having,
470+
projectionIn, selection, groupBy, having,
467471
null /* sortOrder */,
468472
null /* limit */);
469473
}
470474

475+
/**
476+
* @deprecated This method's signature is misleading since no SQL parameter
477+
* substitution is carried out. The selection arguments parameter does not get
478+
* used at all. To avoid confusion, call
479+
* {@link #buildUnionSubQuery(String, String[], Set<String>, int, String, String, String, String)}
480+
* instead.
481+
*/
482+
@Deprecated
483+
public String buildUnionSubQuery(
484+
String typeDiscriminatorColumn,
485+
String[] unionColumns,
486+
Set<String> columnsPresentInTable,
487+
int computedColumnsOffset,
488+
String typeDiscriminatorValue,
489+
String selection,
490+
String[] selectionArgs,
491+
String groupBy,
492+
String having) {
493+
return buildUnionSubQuery(
494+
typeDiscriminatorColumn, unionColumns, columnsPresentInTable,
495+
computedColumnsOffset, typeDiscriminatorValue, selection,
496+
groupBy, having);
497+
}
498+
471499
/**
472500
* Given a set of subqueries, all of which are SELECT statements,
473501
* construct a query that returns the union of what those

0 commit comments

Comments
 (0)