docs: public String buildQuery(
              String[] projectionIn, String selection, String groupBy,
              String having, String sortOrder, String limit) {
          String[] projection = computeProjection(projectionIn);
  
          StringBuilder where = new StringBuilder();
          boolean hasBaseWhereClause = mWhereClause != null && mWhereClause.length() > 0;
  
          if (hasBaseWhereClause) {
              where.append(mWhereClause.toString());
              where.append(')');
          }
  
          // Tack on the user's selection, if present.
          if (selection != null && selection.length() > 0) {
              if (hasBaseWhereClause) {
                  where.append(" AND ");
              }
  
              where.append('(');
              where.append(selection);
              where.append(')');
          }
  
          return buildQueryString(
                  mDistinct, mTables, projection, where.toString(),
                  groupBy, having, sortOrder, limit);
      }