Claude Code Plugins

Community-maintained marketplace

Feedback

TD Trino SQL with TD-specific functions (td_interval, td_time_range, td_time_string, td_sessionize). Use for time-based filtering, partition pruning, and TD query patterns.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name trino
description TD Trino SQL with TD-specific functions (td_interval, td_time_range, td_time_string, td_sessionize). Use for time-based filtering, partition pruning, and TD query patterns.

TD Trino SQL

TD Time Functions

td_interval (Recommended for relative time)

where td_interval(time, '-1d', 'JST')      -- Yesterday
where td_interval(time, '-1w', 'JST')      -- Previous week
where td_interval(time, '-1M', 'JST')      -- Previous month
where td_interval(time, '-1d/-1d', 'JST')  -- 2 days ago
where td_interval(time, '-1M/-2M', 'JST')  -- 3 months ago

Note: Cannot use td_scheduled_time() as first arg. Include td_scheduled_time() elsewhere in query to establish reference date.

td_time_range (Explicit dates)

where td_time_range(time, '2024-01-01', '2024-01-31')
where td_time_range(time, td_time_add(td_scheduled_time(), '-7d'), td_scheduled_time())

td_time_string (Display formatting)

td_time_string(time, 'd!', 'JST')  -- 2024-01-15
td_time_string(time, 's!', 'JST')  -- 2024-01-15 10:30:45
td_time_string(time, 'M!', 'JST')  -- 2024-01
td_time_string(time, 'h!', 'JST')  -- 2024-01-15 10

Format codes: y!=year, q!=quarter, M!=month, w!=week, d!=day, h!=hour, m!=minute, s!=second. Without !, includes timezone offset.

Critical: Use for display only, never for filtering:

  • select td_time_string(time, 'd!', 'JST') as date
  • where td_time_string(time, 'd!', 'JST') = '2024-01-01'

td_time_format (Legacy)

td_time_format(time, 'yyyy-MM-dd HH:mm:ss', 'JST')

td_sessionize

select td_sessionize(time, 1800, user_id) as session_id  -- 30min timeout
from events

Table Format

select * from database_name.table_name
where td_interval(time, '-1d', 'JST')

Performance

Always include time filters for partition pruning:

-- Good: Partition pruning
where td_time_range(time, '2024-01-01', '2024-01-02')

-- Bad: Full table scan
where event_type = 'click'  -- Missing time filter!

Use approx_distinct() and approx_percentile() for large datasets.

Common Errors

Error Fix
Query exceeded memory limit Add time filters, use approx_ functions
Partition not found Verify time range syntax

Resources