.. -*- rst -*-

.. highlightlang:: none

データ型
========

名前
----

groonga データ型

説明
----

groonga は、格納するデータの型を区別します。

groongaのデータベースでは、テーブルの主キーや、カラムの値はいずれも何らかの型に属します。また通常は、一つのテーブルの中の全てのレコードについて、カラムの値は共通となります。

主キーの型とカラムの型には、groongaで予め定義済みの型か、ユーザが定義する型、またはユーザが定義したテーブルを指定することができます。

主キーの型に他のテーブルを指定する場合は、そのテーブルは、主キーの型となるテーブルのサブセットとなります。

カラムの型に他のテーブルを指定する場合は、そのカラムは、カラムの型となるテーブルの参照キーとなります。

組込型
------

以下の型が組込型としてあらかじめ定義されています。

``Object``

  任意のテーブルに属する全てのレコード [#]_

``Bool``

  bool型。trueとfalse。

``Int8``

  8bit符号付き整数。

``UInt8``

  8bit符号なし整数。

``Int16``

  16bit符号付き整数。

``UInt16``

  16bit符号なし整数。

``Int32``

  32bit符号付き整数。

``UInt32``

  32bit符号なし整数。

``Int64``

  64bit符号付き整数。

``UInt64``

  64bit符号なし整数。

``Float``

  ieee754形式の64bit浮動小数点数。

``Time``

  1970年1月1日0時0分0秒からの経過マイクロ秒数を64bit符号付き整数で表現した値。

``ShortText``

  4Kbyte以下の文字列。

``Text``

  64Kbyte以下の文字列。

``LongText``

  2Gbyte以下の文字列。

``TokyoGeoPoint``

  日本測地系緯度経度座標。緯度と経度はミリ秒単位での整数。
  "経度のミリ秒x緯度のミリ秒"という文字列表現を持つ。
  度分秒形式であれば、x度y分z秒は(((x * 60) + y) * 60 + z) * 1000という計算式で変換した値を代入します。

``WGS84GeoPoint``

  世界測地系緯度経度座標。緯度と経度はミリ秒単位での整数。
  "経度のミリ秒x緯度のミリ秒"という文字列表現を持つ。
  度分秒形式であれば、x度y分z秒は(((x * 60) + y) * 60 + z) * 1000という計算式で変換した値を代入します。

型に関する制限事項
------------------

テーブルの主キーに指定できない型
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Text型とLongText型については、テーブルの主キーに指定することはできません。

ベクトルとして格納できない型
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

groongaのカラムは、ある型のベクトルを保存することができます。しかし、ShortText, Text, LongTextの３つの型についてはベクトルとして保存することはできません。

テーブル型は、ベクトルとして格納することができます。よって、ShortTextのベクトルを保存したい場合には、主キーがShortText型のテーブルを別途作成し、そのテーブルを型として利用します。

.. rubric:: 脚注

.. [#] Object型はv1.2でサポートされます。
