You are here

protected function SearchApiDbService::sqlType in Search API Database Search 7

Returns the schema definition for a database column for a search data type.

Parameters

string $type: An indexed field's search type. One of the keys from search_api_default_field_types().

Return value

array Column configurations to use for the field's database column.

Throws

SearchApiException If $type is unknown.

2 calls to SearchApiDbService::sqlType()
SearchApiDbService::createFieldTable in ./service.inc
Creates or modifies a table to add an indexed field.
SearchApiDbService::fieldsUpdated in ./service.inc
Overrides SearchApiAbstractService::fieldsUpdated().

File

./service.inc, line 480
Contains SearchApiDbService.

Class

SearchApiDbService
Indexes and searches items using the database.

Code

protected function sqlType($type) {
  $type = search_api_extract_inner_type($type);
  switch ($type) {
    case 'string':
    case 'uri':
      return array(
        'type' => 'varchar',
        'length' => 255,
      );
    case 'integer':
    case 'duration':
    case 'date':

      // 'datetime' sucks. Therefore, we just store the timestamp.
      return array(
        'type' => 'int',
        'size' => 'big',
      );
    case 'decimal':
      return array(
        'type' => 'float',
      );
    case 'boolean':
      return array(
        'type' => 'int',
        'size' => 'tiny',
      );
    default:
      throw new SearchApiException(t('Unknown field type @type. Database search module might be out of sync with Search API.', array(
        '@type' => $type,
      )));
  }
}