Package edu.caltech.nanodb.relations

This package contains the basic data-types for representing relations in NanoDB. Relations can be many different things - tables, views, external tables, or results of subqueries in a particular SQL query, for example. All of the common classes are in this package.

Type Information

One of the major aspects of this package is the collection of classes that represent type information in the database. The classes are as follows:
  • Data-types are defined by the SQLDataType enumeration, which contains both the enumerated types and predefined type-ID byte-values.
  • Column-types are defined by the ColumnType class, which contains the SQL data-type for the column (using the SQLDataType enum), and any additional information about the column's type that might need to be specified. For example, a CHAR(100) column has a base-type of SQLDataType.CHAR, but it must also specify its length as 100 characters. This additional information is also included in the ColumnType class.