/** * Check if this result set contains the given row. * * @param values the row * @return true if the row exists */ public boolean containsDistinct(Value[] values) { if (distinctRows == null) { distinctRows = ValueHashMap.newInstance(); for (Value[] row : rows) { ValueArray array = getArrayOfVisible(row); distinctRows.put(array, array.getList()); } } ValueArray array = ValueArray.get(values); return distinctRows.get(array) != null; }
/** * Extracts expression columns from ValueArray * * @param session the current session * @param value the value to extract columns from * @return array of expression columns */ static Expression[] getExpressionColumns(Session session, ValueArray value) { Value[] list = value.getList(); ExpressionColumn[] expr = new ExpressionColumn[list.length]; for (int i = 0, len = list.length; i < len; i++) { Value v = list[i]; Column col = new Column("C" + (i + 1), v.getType(), v.getPrecision(), v.getScale(), v.getDisplaySize()); expr[i] = new ExpressionColumn(session.getDatabase(), col); } return expr; }
ValueArray key = (ValueArray) v; currentGroup = groups.get(key); Value[] keyValues = key.getList(); Value[] row = new Value[columnCount]; for (int j = 0; groupIndex != null && j < groupIndex.length; j++) {
ValueArray key = (ValueArray) v; currentGroup = groups.get(key); Value[] keyValues = key.getList(); Value[] row = new Value[columnCount]; for (int j = 0; groupIndex != null && j < groupIndex.length; j++) {
String s; if (val.getType() == Value.ARRAY) { s = ((ValueArray) val).getList()[0].getString(); } else { s = val.getString();
} else { ValueArray array = (ValueArray) v.convertTo(Value.ARRAY); Value[] l = array.getList(); list[i] = l; rows = Math.max(rows, l.length);
Value v1 = getNullOrValue(session, args, values, 1); int element = v1.getInt(); Value[] list = ((ValueArray) v0).getList(); if (element < 1 || element > list.length) { result = ValueNull.INSTANCE; Value[] list = ((ValueArray) v0).getList(); result = ValueInt.get(list.length); } else { if (v0.getType() == Value.ARRAY) { Value v1 = getNullOrValue(session, args, values, 1); Value[] list = ((ValueArray) v0).getList(); for (Value v : list) { if (v.equals(v1)) {