/** * Convert the values if required. Default values are not set (kept as * null). * * @param session the session * @param row the row */ @Override public void validateConvertUpdateSequence(Session session, Row row) { for (int i = 0; i < columns.length; i++) { Value value = row.getValue(i); if (value != null) { // null means use the default value Column column = columns[i]; Value v2 = column.validateConvertUpdateSequence(session, value); if (v2 != value) { row.setValue(i, v2); } } } }
@Override public boolean next() { try { boolean result = rs.next(); if (!result) { rs.close(); tableLink.reusePreparedStatement(prep, sql); current = null; return false; } } catch (SQLException e) { throw DbException.convert(e); } current = tableLink.getTemplateRow(); for (int i = 0; i < current.getColumnCount(); i++) { Column col = tableLink.getColumn(i); Value v = DataType.readValue(session, rs, i + 1, col.getType()); current.setValue(i, v); } return true; }
/** * Validate all values in this row, convert the values if required, and * update the sequence values if required. This call will also set the * default values if required and set the computed column if there are any. * * @param session the session * @param row the row */ public void validateConvertUpdateSequence(Session session, Row row) { for (int i = 0; i < columns.length; i++) { Value value = row.getValue(i); Column column = columns[i]; Value v2; if (column.getComputed()) { // force updating the value value = null; v2 = column.computeValue(session, row); } v2 = column.validateConvertUpdateSequence(session, value); if (v2 != value) { row.setValue(i, v2); } } }
row.setValue(0, ValueInt.get(index.getId())); row.setValue(1, ValueInt.get(type)); row.setValue(2, ValueInt.get(table.getId())); row.setValue(3, ValueInt.get(index.getRootPageId())); row.setValue(4, ValueString.get(options)); row.setValue(5, ValueString.get(columnList)); row.setKey(index.getId() + 1); metaIndex.add(session, row);
for (int i = 0, len = current.getColumnCount(); i < len; i++) { Value v = i < values.length ? values[i] : ValueNull.INSTANCE; current.setValue(i, v);
private Row addRowImpl(Value[] values) { Row newRow = table.getTemplateRow(); setCurrentRowNumber(++rowNumber); for (int j = 0, len = columns.length; j < len; j++) { Column c = columns[j]; int index = c.getColumnId(); try { Value v = c.convert(values[j], session.getDatabase().getMode()); newRow.setValue(index, v); } catch (DbException ex) { throw setRow(ex, rowNumber, getSQL(values)); } } table.validateConvertUpdateSequence(session, newRow); boolean done = table.fireBeforeRow(session, null, newRow); if (!done) { table.addRow(session, newRow); session.log(table, UndoLogRecord.INSERT, newRow); table.fireAfterRow(session, null, newRow, false); return newRow; } return null; }
row.setValue(i, v2);
Column refCol = refColumns[i].column; int refIdx = refCol.getColumnId(); check.setValue(refIdx, refCol.convert(v));
Value v = DataType.convertToValue(session, o, Value.UNKNOWN); session.getGeneratedKeys().add(table.getColumn(i)); newRow.setValue(i, v);
try { Value v = c.convert(e.getValue(session), session.getDatabase().getMode()); newRow.setValue(index, v); if (e instanceof SequenceValue) { generatedKeys.add(c);
public Row getNullRow() { synchronized (this) { if (nullRow == null) { nullRow = new Row(new Value[columns.length], 0); for (int i = 0; i < columns.length; i++) { nullRow.setValue(i, ValueNull.INSTANCE); } } return nullRow; } }
public boolean next() throws SQLException { boolean result = rs.next(); if (!result) { rs.close(); current = null; return false; } current = table.getTemplateRow(); for (int i = 0; i < current.getColumnCount(); i++) { Column col = table.getColumn(i); Value v = DataType.readValue(session, rs, i + 1, col.getType()); current.setValue(i, v); } return true; }
public Row get() throws SQLException { if (current == null && currentSearchRow != null) { if (table.isClustered()) { current = table.getTemplateRow(); for (int i = 0; i < currentSearchRow.getColumnCount(); i++) { current.setValue(i, currentSearchRow.getValue(i)); } } else { current = cursor.get(); } } return current; }
@Override public SearchRow getSearchRow() { Row row = new Row(new Value[tIndex.getTable().getColumns().length], Row.MEMORY_CALCULATE); row.setKey(rowIndex); // Add indexed columns values for(IndexColumn column : tIndex.getIndexColumns()) { if(column.column.getColumnId() >= 0) { row.setValue(column.column.getColumnId(), ValueLong.get(rowIndex)); } } return row; }
@Override public SearchRow getSearchRow() { Row row = session.createRow(new Value[tIndex.getTable().getColumns().length], Row.MEMORY_CALCULATE); row.setKey(rowIndex); // Add indexed columns values for(IndexColumn column : tIndex.getIndexColumns()) { if(column.column.getColumnId() >= 0) { row.setValue(column.column.getColumnId(), ValueLong.get(rowIndex)); } } return row; }
@Override public SearchRow getSearchRow() { Row row = session.createRow(new Value[tIndex.getTable().getColumns().length], Row.MEMORY_CALCULATE); row.setKey(rowIndex); // Add indexed columns values for(IndexColumn column : tIndex.getIndexColumns()) { if(column.column.getColumnId() >= 0) { row.setValue(column.column.getColumnId(), ValueLong.get(rowIndex)); } } return row; }
@Override public SearchRow getSearchRow() { Row row = session.createRow(new Value[tIndex.getTable().getColumns().length], Row.MEMORY_CALCULATE); row.setKey(rowIndex); // Add indexed columns values for(IndexColumn column : tIndex.getIndexColumns()) { if(column.column.getColumnId() >= 0) { row.setValue(column.column.getColumnId(), ValueLong.get(rowIndex)); } } return row; }