
# HTAP系统函数
#### gs_htap_tmu_data(rel_oid oid, rowgroup_id integer)
描述：查看实时事务单元TMU中的活跃事务数据。当rowgroup_id为0时，返回表中所有活跃事务数据；当rowgroup_id非0时，返回表中指定行组中的活跃事务数据。
返回值类型：record
备注：必须是系统管理员或运维管理员才能执行此函数。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
本函数对OLTP业务有一定影响，仅作为运维接口使用，且不建议频繁执行。
表1gs_htap_tmu_data参数说明 
| 参数类型 | 参数名         | 类型                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| 输入参数 | rel_oid     | oid               | 行存表oid信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 输入参数 | rowgroup_id | integer unsigned  | 行组唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 输出参数 | rel_oid     | oid               | 行存表oid信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 输出参数 | rowgroup_id | integer unsigned  | 行组唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 输出参数 | xid         | xid               | 操作该数据的事务id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 输出参数 | ctid        | cstring           | 该数据在页面上的位置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 输出参数 | flag        | smallint unsigned | 二进制标记位，每一数位表示TMU记录的不同操作属性。其中： - 第4位为1时，表示该记录是一条更新操作。  - 第3位为1时，表示该记录是一条删除操作。  - 第2位为1时，表示该记录是一条插入操作。   |
   
示例：
- 当enable_htap=off时：
  ```
  gaussdb=# select * from gs_htap_tmu_data(16796,0);
  ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  ```
  
- 当enable_htap=on时：
  ```
  gaussdb=# select * from gs_htap_tmu_data(16796,0);
   rel_oid | rowgroup_id |  xid  | ctid  | flag
  ---------+-------------+-------+-------+-------
     16796 | 1           | 78437 | (0,1) | 16385
     16796 | 1           | 78437 | (0,2) | 16385
     16796 | 1           | 78439 | (0,1) | 4097
     16796 | 1           | 78439 | (0,2) | 4097
  (4 rows)
  ```
  
 
#### gs_htap_tmu_chunk_meta(rel_oid oid, rowgroup_id integer)
描述：查看实时事务单元TMU元数据信息。当rowgroup_id为0时，返回所有行组中的实时事务单元TMU数据信息；当rowgroup_id非0时，返回表中指定行组中的实时事务单元TMU数据信息。
返回值类型：record
备注：必须是系统管理员或运维管理员才能执行此函数。
表2gs_htap_tmu_chunk_meta参数说明 
| 参数类型 | 参数名          | 类型                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| 输入参数 | rel_oid      | oid               | 行存表oid信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 输入参数 | rowgroup_id  | integer unsigned  | 行组唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | rel_oid      | oid               | 行存表oid信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 输出参数 | rowgroup_id  | integer unsigned  | 行组唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | status       | smallint unsigned | 表示TMU的状态。 - 1表示TMU没有被清理过。  - 2表示TMU被清理过。   |
| 输出参数 | row_count    | integer unsigned  | 数据行数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 输出参数 | buffer_count | integer unsigned  | 包含的buffer个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 输出参数 | mem_usage    | bigint            | 申请内存大小。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | inprogress   | cstring           | 表示插入TMU数据的事务处于活跃状态的占比。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 输出参数 | completed    | cstring           | 表示插入TMU数据的事务处于提交或回滚状态的占比。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
示例：
- 当enable_htap=off时：
  ```
  gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0);
  ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  ```
  
- 当enable_htap=on时：
  ```
  gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0);
   rel_oid | rowgroup_id | status | row_count | buffer_count | mem_usage | inprogress | completed
  ---------+-------------+--------+-----------+--------------+-----------+------------+-----------
     16796 | 1           | 1      | 4         | 1            |     65536 | 0.00%      | 100.00%
  (1 row)
  ```
  
 
#### gs_imcv_bgworker_status()
描述：显示执行IMCV表重建的bgworker的状态信息。
返回值类型：record
备注：必须是系统管理员或运维管理员才能执行此函数。
表3gs_imcv_bgworker_status参数说明 
| 参数类型 | 参数名           | 类型                       | 描述                                            |
|:---|:---|:---|:---|
| 输出参数 | worker_pid    | bigint                   | 线程号。                                          |
| 输出参数 | relation_id   | oid                      | 正在处理的IMCV表的oid。                               |
| 输出参数 | worker_status | cstring                  | 表示idle（准备）、running（进行中）、finished（完成）三种线程工作状态。 |
| 输出参数 | start_time    | timestamp with time zone | 重建开始的时间戳。                                     |
   
示例：
- 当enable_htap=off时：
  ```
  gaussdb=# select * from gs_imcv_bgworker_status();
  ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  ```
  
- 当enable_htap=on时：
  ```
  gaussdb=# select * from gs_imcv_bgworker_status();
   worker_pid | relation_id | worker_status | start_time
  ------------+-------------+---------------+------------
            0 |           0 | finished      |
            0 |           0 | idle          |
            0 |           0 | idle          |
  (3 rows)
  ```
  
 
#### gs_imcv_flush(reloid oid)
描述：对数据库中指定的IMCV表立即进行一次重建，并显示重建的结果。重建过程将刷新IMCV表，移除旧数据并同步当前表的非活跃数据。
返回值类型：text
备注：必须是系统管理员或运维管理员才能执行此函数。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
当IMCV表内的数据足够新鲜时，可能会跳过重建。本函数对OLTP业务有一定影响，仅作为运维接口使用，且不建议频繁执行。
表4gs_imcv_flush参数说明 
| 参数类型 | 参数名    | 类型   | 描述                              |
|:---|:---|:---|:---|
| 输入参数 | reloid | oid  | 行存表oid。                         |
| 输出参数 | output | text | 返回本次重建的结果。显示行组重建成功的数量以及跳过重建的数量。 |
   
示例：
- 当enable_htap=off时：
  ```
  gaussdb=# select * from gs_imcv_flush(16796);
  ERROR:  Manual row group rebuilding failed due to ENABLE_HTAP is not enabled.
  ```
  
- 当enable_htap=on时：
  ```
  gaussdb=# select * from gs_imcv_flush(16796);
                   gs_imcv_flush
  ------------------------------------------------
   2 row groups rebuilt successfully, 1 skipped.
  (1 row)
  ```
  
 
#### gs_imcv_taskbuffer_view()
描述：gs_imcv_taskbuffer_view显示HTAP业务中重建任务队列使用情况，入参为空。
返回值类型：record
备注：必须是系统管理员或运维管理员才能执行此函数。
表5gs_imcv_taskbuffer_view参数说明 
| 参数类型 | 参数名               | 类型      | 描述              |
|:---|:---|:---|:---|
| 输出参数 | buffer_is_empty   | boolean | 任务队列是否为空。默认值为t。 |
| 输出参数 | buffer_is_full    | boolean | 任务队列是否存满。默认值为f。 |
| 输出参数 | buffer_used_space | integer | 任务已使用空间。默认值为0。  |
| 输出参数 | buffer_free_space | integer | 任务剩余空间。默认值为999。 |
   
示例：
- 当enable_htap=off时：
  ```
  gaussdb=# select * from gs_imcv_taskbuffer_view();
  ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  ```
  
- 当enable_htap=on时：
  ```
  gaussdb=# select * from gs_imcv_taskbuffer_view();
   buffer_is_empty | buffer_is_full | buffer_used_space | buffer_free_space
  -----------------+----------------+-------------------+-------------------
   t               | f              |                 0 |               999
  (1 row)
  ```
  
 
#### gs_imcu_meta(rel_name)
**描述：**gs_imcu_meta用于显示指定rel_name的IMCV表下的IMCU元信息。
返回值类型：record
表6gs_imcu_meta参数列表 
| 参数类型 | 参数           | 类型       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| 输入参数 | relname      | text     | IMCV表名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 输出参数 | reloid       | oid      | 表id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 输出参数 | relname      | text     | 表名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 输出参数 | imcu_xmin    | xid      | 预留，暂不使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 输出参数 | imcu_id      | integer  | IMCU id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 输出参数 | row_count    | integer  | IMCU行数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 输出参数 | imcu_size    | integer  | IMCU大小，单位字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 输出参数 | imcu_mode    | integer  | IMCU加载列数据特征： - 普通。  - 全部为空。  - 相同值。  - 无最大最小值。  - 有空行。   |
| 输出参数 | imcu_pointer | bigint   | 预留，暂不使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 输出参数 | magic        | integer  | IMCU校验magic。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 输出参数 | attnum       | smallint | IMCU加载列对应的attnum。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
示例：
```
gaussdb=# SELECT * FROM gs_imcu_meta('test2');
I reloid | relname | imcu_xmin | imcu_id | row_count | imcu_size | imcu_mode | imcu_pointer | magic | attnum 
--------+---------+-----------+---------+-----------+-----------+-----------+--------------+-------+--------
 115114 | test2   |         0 |       1 |         9 |      8192 |         1 |            0 | 74802 |      0
 115114 | test2   |         0 |       1 |         9 |      8192 |         1 |            0 | 74802 |      1
 115114 | test2   |         0 |       1 |         9 |      8192 |         1 |            0 | 74802 |      2
 115114 | test2   |         0 |       1 |         9 |      8192 |         1 |            0 | 74802 |      3
 115114 | test2   |         0 |       1 |         9 |      8192 |         0 |            0 | 74802 |      4
 115114 | test2   |         0 |       1 |         9 |      8192 |         0 |            0 | 74802 |      5
(6 rows)
```
备注：该示例表示共有1个行组（imcu_id为1），每一行代表一个cu（其中attnum为0的列为ctid列），每个cu行数为9行。
#### gs_imcv_status()
**描述：**gs_imcv_status函数用于显示当前所有IMCV表的状态信息。
返回值类型：record
表7gs_imcv_status参数列表 
| 参数   | 参数                                                                                                                 | **类型**                                                                                                        | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| 输出参数 | reloid                                                                                                             | oid                                                                                                           | 表id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | relname                                                                                                            | name                                                                                                          | 表名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 输出参数 | dbname                                                                                                             | name                                                                                                          | 数据库名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 输出参数 | username                                                                                                           | name                                                                                                          | 用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | parentoid                                                                                                          | oid                                                                                                           | 父表id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 输出参数 |   imcvstatus   |   char   | IMCV表状态： - 'I': POPULATE_STAT_INIT初始化。  - 'L': POPULATE_STAT_LOAD_START开始加载。  - 'M': POPULATE_STAT_LOAD_META_DONE加载元数据。  - 'F': POPULATE_STAT_LOAD_FINISH加载完成。  - 'D': POPULATE_STAT_DROP已删除。  - 'E': POPULATE_STAT_ERROR异常。   |
| 输出参数 | imcvnattr                                                                                                          | smallint                                                                                                      | 加载列数量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 输出参数 | imcvkey                                                                                                            | int2vector                                                                                                    | 加载的列数组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 输出参数 | priority                                                                                                           | smallint                                                                                                      | 加载优先级。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 输出参数 | rowgroup_num                                                                                                       | integer                                                                                                       | 行组数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 输出参数 | cu_num_in_mem                                                                                                      | integer                                                                                                       | 内存中的IMCU数量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 输出参数 | cu_mem_size                                                                                                        | bigint                                                                                                        | IMCU占用的内存大小，单位字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 输出参数 | cu_num_in_disk                                                                                                     | integer                                                                                                       | 暂不支持，值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 输出参数 | cu_disk_size                                                                                                       | bigint                                                                                                        | 暂不支持，值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
示例：
```
gaussdb=# SELECT * FROM gs_imcv_status();
 reloid | relname |  dbname  | username | parentoid | imcvstatus | imcvnattr |  imcvkey  | priority | rowgroup_num | cu_num_in_mem | cu_mem_size | cu_num_in_disk | cu_disk_size 
--------+---------+----------+----------+-----------+------------+-----------+-----------+----------+--------------+---------------+-------------+----------------+--------------
 115114 | test2   | postgres | lqy      |         0 | F          |         5 | 1 2 3 4 5 |        1 |            1 |             6 |       49152 |              0 |            0
(1 row)
```
#### gs_imcu_slot_status()
**描述：**gs_imcu_slot_status记录了IMCV表下的IMCU对应的缓存slot信息。
返回值类型：record
表8gs_imcu_slot_status参数列表 
| 参数类型 | 参数         | **类型**  | **描述**         |
|:---|:---|:---|:---|
| 输出参数 | reloid     | oid     | 表id。           |
| 输出参数 | cu_id      | integer | IMCU id。       |
| 输出参数 | col_id     | integer | IMCU 所属列id。    |
| 输出参数 | slot_id    | integer | 缓存区slot id。    |
| 输出参数 | block_size | integer | IMCU内存大小，单位字节。 |
| 输出参数 | flag       | char    | 缓存块标志位。        |
   
示例（flag为\\x01表示缓存slot包含有效数据）：
```
gaussdb=# SELECT * FROM gs_imcu_slot_status();
 reloid | cu_id | col_id | slot_id | block_size | flag 
--------+-------+--------+---------+------------+------
 115114 |     1 |      1 |       0 |       8192 | \x01
 115114 |     1 |      2 |       1 |       8192 | \x01
 115114 |     1 |      3 |       2 |       8192 | \x01
 115114 |     1 |      4 |       3 |       8192 | \x01
 115114 |     1 |      5 |       4 |       8192 | \x01
 115114 |     1 |      0 |       5 |       8192 | \x01
(6 rows)
```
