Material gathered by Scott Wehrly and Mike Prestwood.
The InterBase database format was introduced with InterBase Version 3.0, and applies to versions 3.x, 4.x, 5.0, 5.1, 5.2, 5.5, 5.6, and 6.0.
Supported platforms are Windows (95, 98, 98SE, ME), Windows NT(3.51, 4.0), Windows 2000, Solaris 2.x, HP-UX 10.20, and AIX. InterBase version 4.2 is the only version currently available for Linux, with version 5.6 due to be released soon.
InterBase databases are dynamically sized. Each database file has a maximum file size of 2GB on Windows 9x, and 4GB on Windows NT, Windows 2000, and Unix platforms.
Page size can be 1024, 2048, 4096, or 8192. The default page size is 1024. For Windows 9x databases, the optimal page size is 4096. On Windows NT and Unix databases, the optimal page size is 8192. The page size of a database can be altered by backing up the database and restoring the backup to a database with a new page size.
The total maximum size of an InterBase database is 32TB. This is also the maximum size for a single table.
Up to 64K Tables per Database. In multiple file databases, InterBase dynamically allocates table data across multiple files.
Four billion (4G) records per database file.
4G Indexes per database.
64K Row Size.
64K Indexes per Table.
Maximum number of fields: 32,768 Smallint fields (16 bytes per field) or 16,384 Integer, Float, or Date fields (32 bytes per field). The sum of (number of fields) times (byte length of field) cannot exceed 64K.
Stored procedure and trigger source code is compiled into BLR code, and stored in a BLOB field in the system tables. The maximum size of a single block of compiled BLR code (and thus a single stored procedure or trigger) is 48K.
64K maximum BLOB segment size. Maximum BLOB field size depends on the page size of the database:
1K page size = 64MB BLOB size.
2K page size = 512MB BLOB size.
4K page size = 4GB BLOB size.
8K page size = 32GB BLOB size.
16 fields maximum in a composite index.
InterBase Field Types
Smallint
InterBase 16-bit field type that can contain integer values from -32767 to 32767 (no decimal).
Integer
InterBase 32-bit field type that can contain integer values ranging from –2,147,483,648 to 2,147,483,647 (no decimal).
Float
InterBase 32-bit field type of 7 digit precision decimal values, ranging from -3.4 times 1038 to 3.4 times 1038.
Double Precision
InterBase 64-bit field type of 15 digit precision decimal values, ranging from -1.7 times 10308 to 1.7 times 10308.
Char(n)
InterBase fixed length character or text string, stored as one byte per character. From 1 to 32767 bytes in length. Field data storage size is fixed based on the number of bytes in the field definition. Field values of shorter length than the defined field size are padded with space characters.
Varchar(n)
InterBase variable length character or text string, stored as one byte per character. From 1 to 32767 bytes in length. Field data storage size is dynamic based on field value.
Numeric (precision,scale)
InterBase variable size field type that can store up to 15 significant digits of precision decimal values, with up to 15 digits of scale. Numeric values are held in exact precision. Scale must be less than or equal to precision.
Prior to Version 6.0, data values for precisions of 10 to 15 are stored as non-exact double-precision values. Beginning in Version 6, data values for precisions of 10 to 15 are stored as exact numeric values.
Decimal (precision,scale)
InterBase variable size field type that can store up to 15 significant digits of precision decimal values, with up to 15 digits of scale. Numeric values are held in exact precision. Scale must be less than or equal to precision.
Prior to Version 6.0, data values for precisions of 10 to 15 are
stored as non-exact double-precision values. Beginning in Version 6,
data values for precisions of 10 to 15 are stored as exact numeric
values.
Date
InterBase 32-bit field type comprised of both Date and Time. Range is from January 1, 100 A.D. to February 28, 32768 A.D.
Beginning with Version 6.0, this field type holds Date values only.
Note: For Date arithmetic purposes, date 0 (the integer value of zero)
as a Date in InterBase is November 17, 1898.
Timestamp (new to Version 6.0)
InterBase 64-bit field type comprised of both Date and Time. Range is from January 1, 100 A.D. to February 28, 32768 A.D.
Time (new to Version 6.0)
InterBase 32-bit field type of Time values. Range is from 0:00 AM to 23:59:9999 PM.
Blob
InterBase field type for storing data of indeterminate size. Data Subtypes are 0 for binary (raw) data, and 1 for text data. Further subtypes are user-defined, and can be associated with data filtering functions in external UDF libraries.