coderabbitai · GitHub

@robe2

coderabbitai[bot]

Bot reviewed Jul 14, 2026

patterned after pgAgent jobs
WIP for pgadmin-org#10148
 - PGTimetable Chains node underneath Servers
   if pg_timetable is installed in maintenance database
 - Tasks node under Chain
 - Ability to add/edit a Chain
 - Ability to add/edit a Task under a Chain
 - Generate create sql script for a Chain
 - Ability to trigger Run Now for a change
 - Basic text editor for Task parameters and ability to add/edit
 - Icons for PGTime table to represent chains and tasks
 - Kind drop down list containing SQL, PROGRAM, BUILTIN
 - Program, drop down list if kind is "BUILTIN"
 - Auto increment order id of both task and parameters.
   Increment by 1 for parameters and 10 for tasks
 - Stats tab for both chain and chain task
 - Make database connection not required for SQL and note it defaults to pgTimeTable database
 - last_run, next_run, currently_running_on to the chain readonly properties screen
 - Regression tests for pg_timetable
 - Add cron help preserve layout with html pre so easy to read

@robe2

@robe2 robe2 mentioned this pull request

Jul 14, 2026

Closed

coderabbitai[bot]

 - Fix: Unguarded query status before indexing res['rows'][0]
 - Rollback when the post-create lookup fails.
 - Fix: database_connection update isn't gated by has_connstr
 - Add a pg_timetable specific row level threshold

coderabbitai[bot]

 - Address status failures on tuple updates in  _process_ctasks(), _upsert_task_params(), _upsert_task_params()
 - Do not return ok on partial chain-field UPDATE failures
 - Unguarded query status before indexing res['rows'][0] in check_precondition()
 - kind should not be represented as  boolean, should be cast to text
 - Only insert to database_connection column if has_connstr

coderabbitai[bot]

 - Fix the conditional commas in the INSERT values list of chain.tasks
 - _init_ is not __init__ — this initializer never runs.
 - Prevent updating non-existent database_connection column
 - Another unguarded check in pg_timetable init
 - Change terminology from pgAgent Jobs/steps to pgTimetable Chain/tasks
 - Make task ordering less fragile
 - Fix some issues with parameter update when reordering
 - Force tasks to be sorted by task_order using custom label that prefixes with task_order
 - Regress tests add super().setUp()
   to 6 test files that were missing it:
	test_pgt_chain_delete.py, test_pgt_chain_get_msql.py, test_pgt_chain_get_nodes.py,
	test_pgt_chain_sql.py, test_pgt_task_delete.py, test_pgt_task_get_msql.py
- Guard undefined fields when inserting chains
 - Force tasks to be sorted by task_order using custom label that prefixes with task_order
 - Regress tests add super().setUp()
   to 6 test files that were missing it:
	test_pgt_chain_delete.py, test_pgt_chain_get_msql.py, test_pgt_chain_get_nodes.py,
	test_pgt_chain_sql.py, test_pgt_task_delete.py, test_pgt_task_get_msql.py
- Guard undefined fields when inserting chains

coderabbitai[bot]

 - Close the connection if it exists even when there is a failure
 - Always assign a response output even if mocking is not required
 - run_now
	- when no client_name specified in the chain, run on all active agents
	- if no active agent and no client_name specified in chain, raise an error
 - fix missing :
 - fix parsing / deparsing of json data in timetable.parameter
 - utils is_pgtimetable_installed_on_server should return exception message
   and format of output should be same structure as the success case

coderabbitai[bot]

 - Change task label from "<task_order>  <name of task>" to "<task_order>: <name of task>"
 - Change run_now so it doesn't run on all active agents. Should only run on one that is active.
   Change wording from active session to active agent
…ndling.
 - Add negative tests

@robe2 robe2 changed the title WIP: pg_timetable UI basic functionality pg_timetable UI basic functionality

Jul 17, 2026

coderabbitai[bot]

@robe2

@robe2 robe2 changed the title pg_timetable UI basic functionality feat: pg_timetable UI basic functionality

Jul 19, 2026

Read the original on github.com ↗