File: grn_column.rst

package info (click to toggle)
groonga 9.0.0-1%2Bdeb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 101,496 kB
  • sloc: ansic: 608,707; ruby: 35,042; xml: 23,643; cpp: 10,319; sh: 7,453; yacc: 5,968; python: 3,033; makefile: 2,609; perl: 133
file content (198 lines) | stat: -rw-r--r-- 7,398 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
.. -*- rst -*-

.. highlightlang:: c

``grn_column``
==============

Summary
-------

TODO...

Example
-------

TODO...

Reference
---------

.. c:macro:: GRN_COLUMN_NAME_ID

   It returns the name of :doc:`/reference/columns/pseudo` ``_id``.

   It is useful to use with :c:macro:`GRN_COLUMN_NAME_ID_LEN` like
   the following::

     grn_obj *id_column;
     id_column = grn_ctx_get(ctx, GRN_COLUMN_NAME_ID, GRN_COLUMN_NAME_ID_LEN);

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_ID_LEN

   It returns the byte size of :c:macro:`GRN_COLUMN_NAME_ID`.

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_KEY

   It returns the name of :doc:`/reference/columns/pseudo` ``_key``.

   It is useful to use with :c:macro:`GRN_COLUMN_NAME_KEY_LEN` like
   the following::

     grn_obj *key_column;
     key_column = grn_ctx_get(ctx, GRN_COLUMN_NAME_KEY, GRN_COLUMN_NAME_KEY_LEN);

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_KEY_LEN

   It returns the byte size of :c:macro:`GRN_COLUMN_NAME_KEY`.

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_VALUE

   It returns the name of :doc:`/reference/columns/pseudo` ``_value``.

   It is useful to use with :c:macro:`GRN_COLUMN_NAME_VALUE_LEN` like
   the following::

     grn_obj *value_column;
     value_column = grn_ctx_get(ctx, GRN_COLUMN_NAME_VALUE, GRN_COLUMN_NAME_VALUE_LEN);

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_VALUE_LEN

   It returns the byte size of :c:macro:`GRN_COLUMN_NAME_VALUE`.

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_SCORE

   It returns the name of :doc:`/reference/columns/pseudo` ``_score``.

   It is useful to use with :c:macro:`GRN_COLUMN_NAME_SCORE_LEN` like
   the following::

     grn_obj *score_column;
     score_column = grn_ctx_get(ctx, GRN_COLUMN_NAME_SCORE, GRN_COLUMN_NAME_SCORE_LEN);

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_SCORE_LEN

   It returns the byte size of :c:macro:`GRN_COLUMN_NAME_SCORE`.

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_NSUBRECS

   It returns the name of :doc:`/reference/columns/pseudo` ``_nsubrecs``.

   It is useful to use with :c:macro:`GRN_COLUMN_NAME_NSUBRECS_LEN` like
   the following::

     grn_obj *nsubrecs_column;
     nsubrecs_column = grn_ctx_get(ctx, GRN_COLUMN_NAME_NSUBRECS, GRN_COLUMN_NAME_NSUBRECS_LEN);

   Since 3.1.1.

.. c:macro:: GRN_COLUMN_NAME_NSUBRECS_LEN

   It returns the byte size of :c:macro:`GRN_COLUMN_NAME_NSUBRECS`.

   Since 3.1.1.

.. c:function:: grn_obj *grn_column_create(grn_ctx *ctx, grn_obj *table, const char *name, unsigned int name_size, const char *path, grn_obj_flags flags, grn_obj *type)

   tableに新たなカラムを定義します。nameは省略できません。一つのtableに同一のnameのcolumnを複数定義することはできません。

   :param table: 対象tableを指定します。
   :param name: カラム名を指定します。
   :param name_size: nameパラメータのsize(byte)を指定します。
   :param path:
      カラムを格納するファイルパスを指定します。
      flagsに ``GRN_OBJ_PERSISTENT`` が指定されている場合のみ有効です。
      NULLなら自動的にファイルパスが付与されます。
   :param flags:
      ``GRN_OBJ_PERSISTENT`` を指定すると永続columnとなります。

      ``GRN_OBJ_COLUMN_INDEX`` を指定すると転置インデックスとなります。

      ``GRN_OBJ_COLUMN_SCALAR`` を指定するとスカラ値(単独の値)を格納します。

      ``GRN_OBJ_COLUMN_VECTOR`` を指定すると値の配列を格納します。

      ``GRN_OBJ_COMPRESS_ZLIB`` を指定すると値をzlib圧縮して格納します。

      ``GRN_OBJ_COMPRESS_LZO`` を指定すると値をlzo圧縮して格納します。

      ``GRN_OBJ_COLUMN_INDEX`` と共に ``GRN_OBJ_WITH_SECTION`` を指定すると、転置索引にsection(段落情報)を合わせて格納します。

      ``GRN_OBJ_COLUMN_INDEX`` と共に ``GRN_OBJ_WITH_WEIGHT`` を指定すると、転置索引にweight情報を合わせて格納します。

      ``GRN_OBJ_COLUMN_INDEX`` と共に ``GRN_OBJ_WITH_POSITION`` を指定すると、転置索引に出現位置情報を合わせて格納します。
   :param type: カラム値の型を指定します。定義済みのtypeあるいはtableを指定できます。

.. c:function:: grn_rc grn_column_index_update(grn_ctx *ctx, grn_obj *column, grn_id id, unsigned int section, grn_obj *oldvalue, grn_obj *newvalue)

   oldvalue, newvalueの値から得られるキーに対応するcolumnの値の中の、id, sectionに対応するエントリを更新します。columnは ``GRN_OBJ_COLUMN_INDEX`` 型のカラムでなければなりません。

   :param column: 対象columnを指定します。
   :param id: 対象レコードのIDを指定します。
   :param section: 対象レコードのセクション番号を指定します。
   :param oldvalue: 更新前の値を指定します。
   :param newvalue: 更新後の値を指定します。

.. c:function:: grn_obj *grn_column_table(grn_ctx *ctx, grn_obj *column)

   columnが属するtableを返します。

   :param column: 対象columnを指定します。

.. c:function:: grn_rc grn_column_rename(grn_ctx *ctx, grn_obj *column, const char *name, unsigned int name_size)

   ctxが使用するdbにおいてcolumnに対応する名前をnameに更新します。columnは永続オブジェクトでなければいけません。

   :param column: 対象columnを指定します。
   :param name: 新しい名前を指定します。
   :param name_size: nameパラメータのsize(byte)を指定します。

.. c:function:: int grn_column_name(grn_ctx *ctx, grn_obj *obj, char *namebuf, int buf_size)

   カラムobjの名前の長さを返します。buf_sizeの長さが名前の長さ以上であった場合は、namebufに該当する名前をコピーします。

   :param obj: 対象objectを指定します。
   :param namebuf: 名前を格納するバッファ(呼出側で準備する)を指定します。
   :param buf_size: namebufのサイズ(byte長)を指定します。

.. c:function:: int grn_column_index(grn_ctx *ctx, grn_obj *column, grn_operator op, grn_obj **indexbuf, int buf_size, int *section)

   columnに張られているindexのうち、opの操作を実行可能なものの数を返します。またそれらのidを、buf_sizeに指定された個数を上限としてindexbufに返します。

   :param column: 対象のcolumnを指定します。
   :param op: indexで実行したい操作を指定します。
   :param indexbuf: indexを格納するバッファ(呼出側で準備する)を指定します。
   :param buf_size: indexbufのサイズ(byte長)を指定します。
   :param section: section番号を格納するint長バッファ(呼出側で準備する)を指定します。

.. c:function:: grn_rc grn_column_truncate(grn_ctx *ctx, grn_obj *column)

   .. note::

      This is a dangerous API. You must not use this API when other
      thread or process accesses the target column. If you use this
      API against shared column, the process that accesses the column
      may be broken and the column may be broken.

   .. versionadded:: 4.0.9

   Clears all values in the column.

   :param column: The column to be truncated.
   :return: ``GRN_SUCCESS`` on success, not ``GRN_SUCCESS`` on error.