7.3.12. column_list

7.3.12.1. Summary

column_list command lists columns in a table.

7.3.12.2. Syntax

This command takes only one required parameter:

column_list table

7.3.12.3. Usage

Here is a simple example of column_list command.

Execution example:

table_create Users TABLE_PAT_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Users age COLUMN_SCALAR UInt8
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Users tags COLUMN_VECTOR ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_list Users
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     [
#       [
#         "id",
#         "UInt32"
#       ],
#       [
#         "name",
#         "ShortText"
#       ],
#       [
#         "path",
#         "ShortText"
#       ],
#       [
#         "type",
#         "ShortText"
#       ],
#       [
#         "flags",
#         "ShortText"
#       ],
#       [
#         "domain",
#         "ShortText"
#       ],
#       [
#         "range",
#         "ShortText"
#       ],
#       [
#         "source",
#         "ShortText"
#       ]
#     ],
#     [
#       256,
#       "_key",
#       "",
#       "",
#       "COLUMN_SCALAR",
#       "Users",
#       "ShortText",
#       []
#     ],
#     [
#       257,
#       "age",
#       "/tmp/groonga-databases/commands_column_list.0000101",
#       "fix",
#       "COLUMN_SCALAR|PERSISTENT",
#       "Users",
#       "UInt8",
#       []
#     ],
#     [
#       258,
#       "tags",
#       "/tmp/groonga-databases/commands_column_list.0000102",
#       "var",
#       "COLUMN_VECTOR|PERSISTENT",
#       "Users",
#       "ShortText",
#       []
#     ]
#   ]
# ]

7.3.12.4. Parameters

This section describes parameters of column_list.

7.3.12.4.1. Required parameters

All parameters are required.

7.3.12.4.1.1. table

Specifies the name of table to be listed columns.

7.3.12.5. Return value

column_list returns the list of column information in the table:

[
  HEADER,
  [
    COLUMN_LIST_HEADER,
    COLUMN_INFORMATION1,
    COLUMN_INFORMATION2,
    ...
  ]
]

HEADER

See Output format about HEADER.

COLUMN_LIST_HEADER

COLUMN_LIST_HEADER describes about content of each COLUMN_INFORMATION.

COLUMN_LIST_HEADER is the following format:

[
  ["id",     "UInt32"],
  ["name",   "ShortText"],
  ["path",   "ShortText"],
  ["type",   "ShortText"],
  ["flags",  "ShortText"],
  ["domain", "ShortText"],
  ["range",  "ShortText"],
  ["source", "ShortText"]
]

It means the following:

  • The first content in COLUMN_INFORMATION is id value and the value type is UInt32.
  • The second content in COLUMN_INFORMATION is name value and the value type is ShortText.
  • The third content ....

See the following COLUMN_INFORMATION description for details.

This field provides meta-data of column information. So this field will be useful for programs rather than humans.

COLUMN_INFORMATION

Each COLUMN_INFORMATION is the following format:

[
  ID,
  NAME,
  PATH,
  TYPE,
  FLAGS,
  DOMAIN,
  RANGE,
  SOURCES
]

ID

The column ID in the Groonga database. Normally, you don't care about it.

NAME

The column name.

PATH

The path for storing column data.

TYPE

The type of the column. It is one of the followings:

Value Description
fix The column is a fixed size column. Scalar column that its type is fixed size type is fixed size column.
var The column is a variable size column. Vector column or scalar column that its type is variable size type are variable size column.
index The column is an index column.

FLAGS

The flags of the column. Each flag is separated by | like COLUMN_VECTOR|WITH_WEIGHT. FLAGS must include one of COLUMN_SCALAR, COLUMN_VECTOR or COLUMN_INDEX. Other flags are optional.

Here is the available flags:

Flag Description
COLUMN_SCALAR The column is a scalar column.
COLUMN_VECTOR The column is a vector column.
COLUMN_INDEX The column is an index column.
WITH_WEIGHT The column can have weight. COLUMN_VECTOR and COLUMN_INDEX may have it. COLUMN_SCALAR doesn't have it.
WITH_SECTION

The column can have section information. COLUMN_INDEX may have it. COLUMN_SCALAR and COLUMN_VECTOR don't have it.

Multiple column index has it.

WITH_POSITION

The column can have position information. COLUMN_INDEX may have it. COLUMN_SCALAR and COLUMN_VECTOR don't have it.

Full text search index must has it.

PERSISTENT The column is a persistent column. It means that the column isn't a Pseudo column.

DOMAIN

The name of table that has the column.

RANGE

The value type name of the column. It is a type name or a table name.

SOURCES

An array of the source column names of the index. If the index column is multiple column index, the array has two or more source column names.

It is always an empty array for COLUMN_SCALAR and COLUMN_VECTOR.

7.3.12.6. See also