mirror of
https://github.com/cole-maxwell1/dotfiles.git
synced 2026-10-27 16:32:49 -05:00
Introduce a custom tool that returns total row counts via the Db2 for i catalog statistic QSYS2.SYSTABLESTAT.NUMBER_ROWS. Supports an optional table_schema parameter to disambiguate tables sharing a name across libraries. Register the tool in the custom_tools toolset.
75 lines
2.0 KiB
YAML
75 lines
2.0 KiB
YAML
sources:
|
|
ibmi-system:
|
|
host: ${DB2i_HOST}
|
|
user: ${DB2i_USER}
|
|
password: ${DB2i_PASS}
|
|
|
|
tools:
|
|
get_column_info:
|
|
source: ibmi-system
|
|
description: >-
|
|
Retrieve a table's column details like TABLE_NAME, SYSTEM_TABLE_NAME,
|
|
COLUMN_NAME, SYSTEM_COLUMN_NAME, DATA_TYPE, LENGTH, NUMERIC_SCALE,
|
|
IS_NULLABLE, COLUMN_HEADING, COLUMN_TEXT from the system catalog for the
|
|
specified table.
|
|
parameters:
|
|
- name: table_name
|
|
type: string
|
|
description: "The name of the table to retrieve columns for."
|
|
required: true
|
|
statement: |
|
|
SELECT
|
|
TABLE_NAME,
|
|
SYSTEM_TABLE_NAME,
|
|
COLUMN_NAME,
|
|
SYSTEM_COLUMN_NAME,
|
|
DATA_TYPE,
|
|
LENGTH,
|
|
NUMERIC_SCALE,
|
|
IS_NULLABLE,
|
|
COLUMN_HEADING,
|
|
COLUMN_TEXT
|
|
FROM
|
|
QSYS2.SYSCOLUMNS
|
|
WHERE
|
|
TABLE_NAME = UPPER(:table_name)
|
|
ORDER BY
|
|
TABLE_NAME,
|
|
ORDINAL_POSITION
|
|
|
|
count_total_records:
|
|
source: ibmi-system
|
|
description: >-
|
|
Return the total row count for a table by reading the Db2 for i
|
|
catalog statistic QSYS2.SYSTABLESTAT.NUMBER_ROWS. Optionally
|
|
provide table_schema to disambiguate tables that share a name
|
|
across libraries.
|
|
parameters:
|
|
- name: table_name
|
|
type: string
|
|
description: "The name of the table to count records for."
|
|
required: true
|
|
- name: table_schema
|
|
type: string
|
|
description: "Schema/library holding the table. Example: 'MYLIB'."
|
|
required: true
|
|
statement: |
|
|
SELECT
|
|
TABLE_SCHEMA,
|
|
TABLE_NAME,
|
|
NUMBER_ROWS AS TOTAL_RECORDS,
|
|
LAST_USED_TIMESTAMP
|
|
FROM
|
|
QSYS2.SYSTABLESTAT
|
|
WHERE
|
|
TABLE_NAME = UPPER(:table_name)
|
|
AND (:table_schema IS NULL OR TABLE_SCHEMA = UPPER(:table_schema))
|
|
ORDER BY
|
|
TABLE_SCHEMA
|
|
|
|
toolsets:
|
|
custom_tools:
|
|
tools:
|
|
- get_column_info
|
|
- count_total_records
|