Data types¶
Type map¶
This driver maps CrateDB types to the following PHP types:
CrateDB Type |
PHP Type |
|
---|---|---|
Column type definitions¶
When defining CrateDB timestamp, object or array type columns, you must construct the DBAL column definition programatically, using the types and attributes provided by the CrateDB DBAL driver.
Primitive column types (e.g. string, integer, and so on) can be defined in the regular DBAL way.
The custom type objects provided by the CrateDB DBAL driver are:
Here’s an example of how the MapType
can be used:
use Doctrine\DBAL\Schema\Column;
use Doctrine\DBAL\Schema\Table;
use Doctrine\DBAL\Types\Type;
use Crate\DBAL\Types\MapType;
$table = new Table('test_table');
$objDefinition = array(
'type' => MapType::STRICT,
'fields' => array(
new Column('id', Type::getType('integer'), array()),
new Column('name', Type::getType('string'), array()),
),
);
$table->addColumn(
'object_column', MapType::NAME,
array('platformOptions'=>$objDefinition));
$schemaManager->createTable($table);
Here, the MapType
class being used to model a CrateDB object. Standard DBAL
types, like string
, are being used to construct the schema of the object,
via calls to the the use of the Column
class and calls to the
Type::getType
static method, and so on.
See also
The Doctrine ORM documentation has more about type mapping.