7.3.13. column_list#

7.3.13.1. Summary#

column_list command lists columns in a table.

7.3.13.2. Syntax#

This command takes only one required parameter:

column_list table

7.3.13.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"
#       ],
#       [
#         "generator",
#         "ShortText"
#       ]
#     ],
#     [
#       256,
#       "_key",
#       "",
#       "",
#       "COLUMN_SCALAR",
#       "Users",
#       "ShortText",
#       [
#
#       ],
#       ""
#     ],
#     [
#       257,
#       "age",
#       "${DB_PATH}.0000101",
#       "fix",
#       "COLUMN_SCALAR|PERSISTENT",
#       "Users",
#       "UInt8",
#       [
#
#       ],
#       ""
#     ],
#     [
#       258,
#       "tags",
#       "${DB_PATH}.0000102",
#       "var",
#       "COLUMN_VECTOR|PERSISTENT",
#       "Users",
#       "ShortText",
#       [
#
#       ],
#       ""
#     ]
#   ]
# ]

7.3.13.4. Parameters#

This section describes parameters of column_list.

7.3.13.4.1. Required parameters#

All parameters are required.

7.3.13.4.1.1. table#

Specifies the name of table to be listed columns.

7.3.13.5. Return value#

column_list returns the list of column information in the table:

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

7.3.13.5.2. COLUMN_LIST_HEADER#

COLUMN_LIST_HEADER describes about content of each COLUMN_INFORMATION.

COLUMN_LIST_HEADER uses the following format:

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

It means the following:

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

7.3.13.5.3. COLUMN_INFORMATION#

Each COLUMN_INFORMATION uses the following format:

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

7.3.13.5.3.1. ID#

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

7.3.13.5.3.2. NAME#

The column name.

7.3.13.5.3.3. PATH#

The path for storing column data.

7.3.13.5.3.4. 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.

7.3.13.5.3.5. 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.

7.3.13.5.3.6. DOMAIN#

The name of table that has the column.

7.3.13.5.3.7. RANGE#

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

7.3.13.5.3.8. SOURCES#

An array of the source column names of the index column or the generated column.

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

7.3.13.5.3.9. GENERATOR#

Added in version 14.1.0.

The generator expression in Script syntax.

This is not an empty string only when the column is a Generated column. This is an empty string otherwise.

7.3.13.6. See also#