if(totalOleLen > DataType.OLE.getMaxSize()) { throw new IllegalArgumentException("Content size of " + totalOleLen + " is too large for ole column");
public boolean isTrueVariableLength() { // some "var len" fields do not really have a variable length, // e.g. NUMERIC return (isVariableLength() && (getMinSize() != getMaxSize())); }
/** * Sets the length for the new column to the max length for the type. Does * nothing for types which are not variable length. */ public ColumnBuilder setMaxLength() { // length setting only makes sense for variable length columns if(_type.isVariableLength()) { setLength(_type.getMaxSize()); } return this; }
public boolean isValidSize(int size) { return isWithinRange(size, getMinSize(), getMaxSize()); }
public int toValidSize(int size) { return toValidRange(size, getMinSize(), getMaxSize()); }
@Override protected int calcMaxLengthInUnits() { // the byte "length" includes the calculated field overhead. remove // that to get the _actual_ data length (in units) return getType().toUnitSize(getType().getMaxSize() - CALC_EXTRA_DATA_LEN, getFormat()); }
/** * @usage _advanced_method_ */ protected ColumnImpl(TableImpl table, String name, DataType type, int colNumber, int fixedOffset, int varLenIndex) { _table = table; _name = name; _type = type; if(!_type.isVariableLength()) { _columnLength = (short)type.getFixedSize(); } else { _columnLength = (short)type.getMaxSize(); } _variableLength = type.isVariableLength(); _autoNumber = false; _calculated = false; _autoNumberGenerator = null; _columnNumber = (short)colNumber; _columnIndex = colNumber; _displayIndex = colNumber; _fixedDataOffset = fixedOffset; _varLenTableIndex = varLenIndex; }
protected int calcMaxLengthInUnits() { return getType().toUnitSize(getType().getMaxSize(), getFormat()); }
columns.add(new ColumnBuilder((String)columnNames[i], DataType.TEXT) .escapeName() .setLength((short)DataType.TEXT.getMaxSize()) .toColumn());
if(totalOleLen > DataType.OLE.getMaxSize()) { throw new IllegalArgumentException("Content size of " + totalOleLen + " is too large for ole column");
if(totalOleLen > DataType.OLE.getMaxSize()) { throw new IllegalArgumentException("Content size of " + totalOleLen + " is too large for ole column");
throws IOException if(value.length > getType().getMaxSize()) { throw new InvalidValueException(withErrorContext( "value too big for column, max " + getType().getMaxSize() + ", got " + value.length));
@Override public void createLinkedTable(String name, String linkedDbName, String linkedTableName) throws IOException { if(lookupTable(name) != null) { throw new IllegalArgumentException(withErrorContext( "Cannot create linked table with name of existing table '" + name + "'")); } validateIdentifierName(name, getFormat().MAX_TABLE_NAME_LENGTH, "table"); validateName(linkedDbName, DataType.MEMO.getMaxSize(), "linked database"); validateIdentifierName(linkedTableName, getFormat().MAX_TABLE_NAME_LENGTH, "linked table"); getPageChannel().startWrite(); try { int linkedTableId = _tableFinder.getNextFreeSyntheticId(); addNewTable(name, linkedTableId, TYPE_LINKED_TABLE, linkedDbName, linkedTableName); } finally { getPageChannel().finishWrite(); } }
throw new IllegalArgumentException(withErrorContext( "Var length must be from " + getType().getMinSize() + " to " + getType().getMaxSize() + " inclusive, found " + getLength()));