private Constraint extractIntegerPrimaryKeyConstraintFrom(Cursor columnsCursor) { if (isTableInfoItemAnIntegerPrimaryKey(columnsCursor)) { String columnName = columnsCursor.getString(columnsCursor.getColumnIndex(COLUMN_NAME)); return new Constraint(Collections.singletonList(columnName)); } return null; }
private String getWhereClause(Constraint constraint) { List<String> columns = constraint.getColumns(); String whereClause = ""; for (int i = 0; i < columns.size(); i++) { String column = columns.get(i); if (i > 0) { whereClause += " AND "; } whereClause += column + "=?"; } return whereClause; }
private Constraint uniqueIndexConstraintFrom(Cursor indexCursor) { if (!isIndexUnique(indexCursor)) { return null; } String indexName = indexCursor.getString(1); Cursor indexInfoCursor = queryInfoFor(indexName); List<String> columns = parseIndexColumnsFrom(indexInfoCursor); indexInfoCursor.close(); return new Constraint(columns); }
private String[] getWhereArguments(Constraint constraint, ContentValues values) { List<String> columns = constraint.getColumns(); int columnCount = columns.size(); String[] whereArgs = new String[columnCount]; for (int i = 0; i < columnCount; i++) { String column = columns.get(i); whereArgs[i] = values.getAsString(column); } return whereArgs; }
/** * Use {@link #tryUpdateWithConstraint(String, Constraint, ContentValues)} */ @Deprecated protected long tryUpdateWithConstrain(String table, String constrain, ContentValues values) { long rowId = -1; int update = dbHelper.getWritableDatabase().update(table, values, constrain + "=?", new String[]{ values.getAsString(constrain) }); if (Log.Provider.verboseLoggingEnabled()) { Log.Provider.v("Constrain " + constrain + " yield " + update); } if (update > 0) { rowId = getRowIdForUpdate(table, new Constraint(Arrays.asList(constrain)), values); } return rowId; }
public Constraint getFirstConstraint(String table, ContentValues values) { List<Constraint> constraints = getUniqueConstraints(table); if (constraints == null) { return null; } for (Constraint constraint : constraints) { boolean isValidConstraint = true; for (String column : constraint.getColumns()) { if (!values.containsKey(column)) { isValidConstraint = false; } } if (isValidConstraint) { return constraint; } } return null; } }
public void testMultiColumnUniqueConstraints() { createDatabase(CREATE_TABLE_WITH_MULTI_COLUMN_CONSTRAINT); List<Constraint> constraints = databaseStructure.uniqueConstraintsFor("t"); assertContentsInAnyOrder(constraints, new Constraint(Arrays.asList("name", "desc"))); }
public void testUniqueConstraints() { createDatabase(CREATE_TABLE_WITH_CONSTRAINT); List<Constraint> constraints = databaseStructure.uniqueConstraintsFor("t"); assertContentsInAnyOrder(constraints, new Constraint(Collections.singletonList("const"))); }
public void testUniqueConstraintsForIntegerPrimaryKey() { createDatabase(CREATE_TABLE_WITH_INTEGER_PRIMARY_KEY); List<Constraint> constraints = databaseStructure.uniqueConstraintsFor("t"); assertContentsInAnyOrder(constraints, new Constraint(Collections.singletonList("_id"))); }