protected function getGenericColumn(array $column)
    {
        $name = $column['name'];

        list($column['comment'], $typeName) = $this->extractTypeFromComment($column['comment']);

        if ($typeName === null) {
            $typeName = $this->getConnection()->getPlatform()->getMappedType($column['type']);
        }

        $type = Type::getType($typeName);

        if ($column['default'] !== null) {
            $column['default'] = $type->convertToPHPValue($column['default'], $this->getConnection()->getPlatform());
        }

        $options = array(
            'length'         => ($column['length'] !== null) ? (int) $column['length'] : null,
            'precision'      => ($column['precision'] !== null) ? (int) $column['precision'] : null,
            'scale'          => ($column['scale'] !== null) ? (int) $column['scale'] : null,
            'unsigned'       => ($column['unsigned'] !== null) ? (bool) $column['unsigned'] : null,
            'fixed'          => ($column['fixed'] !== null) ? (bool) $column['fixed'] : null,
            'not_null'       => (bool) $column['not_null'],
            'default'        => $column['default'],
            'auto_increment' => ($column['auto_increment'] !== null) ? (bool) $column['auto_increment'] : null,
            'comment'        => $column['comment'],
        );

        return new Column($name, $type, $options);
    }