golang.org/x/build@v0.0.0-20240506185731-218518f32b70/internal/relui/db/workflows.sql.go (about) 1 // Code generated by sqlc. DO NOT EDIT. 2 // versions: 3 // sqlc v1.15.0 4 // source: workflows.sql 5 6 package db 7 8 import ( 9 "context" 10 "database/sql" 11 "time" 12 13 "github.com/google/uuid" 14 ) 15 16 const approveTask = `-- name: ApproveTask :one 17 UPDATE tasks 18 SET approved_at = $3, 19 updated_at = $3 20 WHERE workflow_id = $1 21 AND name = $2 22 RETURNING workflow_id, name, finished, result, error, created_at, updated_at, approved_at, ready_for_approval, started, retry_count 23 ` 24 25 type ApproveTaskParams struct { 26 WorkflowID uuid.UUID 27 Name string 28 ApprovedAt sql.NullTime 29 } 30 31 func (q *Queries) ApproveTask(ctx context.Context, arg ApproveTaskParams) (Task, error) { 32 row := q.db.QueryRow(ctx, approveTask, arg.WorkflowID, arg.Name, arg.ApprovedAt) 33 var i Task 34 err := row.Scan( 35 &i.WorkflowID, 36 &i.Name, 37 &i.Finished, 38 &i.Result, 39 &i.Error, 40 &i.CreatedAt, 41 &i.UpdatedAt, 42 &i.ApprovedAt, 43 &i.ReadyForApproval, 44 &i.Started, 45 &i.RetryCount, 46 ) 47 return i, err 48 } 49 50 const clearWorkflowSchedule = `-- name: ClearWorkflowSchedule :many 51 UPDATE workflows 52 SET schedule_id = NULL 53 WHERE schedule_id = $1::int 54 RETURNING id 55 ` 56 57 func (q *Queries) ClearWorkflowSchedule(ctx context.Context, dollar_1 int32) ([]uuid.UUID, error) { 58 rows, err := q.db.Query(ctx, clearWorkflowSchedule, dollar_1) 59 if err != nil { 60 return nil, err 61 } 62 defer rows.Close() 63 var items []uuid.UUID 64 for rows.Next() { 65 var id uuid.UUID 66 if err := rows.Scan(&id); err != nil { 67 return nil, err 68 } 69 items = append(items, id) 70 } 71 if err := rows.Err(); err != nil { 72 return nil, err 73 } 74 return items, nil 75 } 76 77 const createSchedule = `-- name: CreateSchedule :one 78 INSERT INTO schedules (workflow_name, workflow_params, spec, once, interval_minutes, created_at, updated_at) 79 VALUES ($1, $2, $3, $4, $5, $6, $7) 80 RETURNING id, workflow_name, workflow_params, spec, once, interval_minutes, created_at, updated_at 81 ` 82 83 type CreateScheduleParams struct { 84 WorkflowName string 85 WorkflowParams sql.NullString 86 Spec string 87 Once time.Time 88 IntervalMinutes int32 89 CreatedAt time.Time 90 UpdatedAt time.Time 91 } 92 93 func (q *Queries) CreateSchedule(ctx context.Context, arg CreateScheduleParams) (Schedule, error) { 94 row := q.db.QueryRow(ctx, createSchedule, 95 arg.WorkflowName, 96 arg.WorkflowParams, 97 arg.Spec, 98 arg.Once, 99 arg.IntervalMinutes, 100 arg.CreatedAt, 101 arg.UpdatedAt, 102 ) 103 var i Schedule 104 err := row.Scan( 105 &i.ID, 106 &i.WorkflowName, 107 &i.WorkflowParams, 108 &i.Spec, 109 &i.Once, 110 &i.IntervalMinutes, 111 &i.CreatedAt, 112 &i.UpdatedAt, 113 ) 114 return i, err 115 } 116 117 const createTask = `-- name: CreateTask :one 118 INSERT INTO tasks (workflow_id, name, finished, result, error, created_at, updated_at, approved_at, 119 ready_for_approval) 120 VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) 121 RETURNING workflow_id, name, finished, result, error, created_at, updated_at, approved_at, ready_for_approval, started, retry_count 122 ` 123 124 type CreateTaskParams struct { 125 WorkflowID uuid.UUID 126 Name string 127 Finished bool 128 Result sql.NullString 129 Error sql.NullString 130 CreatedAt time.Time 131 UpdatedAt time.Time 132 ApprovedAt sql.NullTime 133 ReadyForApproval bool 134 } 135 136 func (q *Queries) CreateTask(ctx context.Context, arg CreateTaskParams) (Task, error) { 137 row := q.db.QueryRow(ctx, createTask, 138 arg.WorkflowID, 139 arg.Name, 140 arg.Finished, 141 arg.Result, 142 arg.Error, 143 arg.CreatedAt, 144 arg.UpdatedAt, 145 arg.ApprovedAt, 146 arg.ReadyForApproval, 147 ) 148 var i Task 149 err := row.Scan( 150 &i.WorkflowID, 151 &i.Name, 152 &i.Finished, 153 &i.Result, 154 &i.Error, 155 &i.CreatedAt, 156 &i.UpdatedAt, 157 &i.ApprovedAt, 158 &i.ReadyForApproval, 159 &i.Started, 160 &i.RetryCount, 161 ) 162 return i, err 163 } 164 165 const createTaskLog = `-- name: CreateTaskLog :one 166 INSERT INTO task_logs (workflow_id, task_name, body) 167 VALUES ($1, $2, $3) 168 RETURNING id, workflow_id, task_name, body, created_at, updated_at 169 ` 170 171 type CreateTaskLogParams struct { 172 WorkflowID uuid.UUID 173 TaskName string 174 Body string 175 } 176 177 func (q *Queries) CreateTaskLog(ctx context.Context, arg CreateTaskLogParams) (TaskLog, error) { 178 row := q.db.QueryRow(ctx, createTaskLog, arg.WorkflowID, arg.TaskName, arg.Body) 179 var i TaskLog 180 err := row.Scan( 181 &i.ID, 182 &i.WorkflowID, 183 &i.TaskName, 184 &i.Body, 185 &i.CreatedAt, 186 &i.UpdatedAt, 187 ) 188 return i, err 189 } 190 191 const createWorkflow = `-- name: CreateWorkflow :one 192 INSERT INTO workflows (id, params, name, schedule_id, created_at, updated_at) 193 VALUES ($1, $2, $3, $4, $5, $6) 194 RETURNING id, params, name, created_at, updated_at, finished, output, error, schedule_id 195 ` 196 197 type CreateWorkflowParams struct { 198 ID uuid.UUID 199 Params sql.NullString 200 Name sql.NullString 201 ScheduleID sql.NullInt32 202 CreatedAt time.Time 203 UpdatedAt time.Time 204 } 205 206 func (q *Queries) CreateWorkflow(ctx context.Context, arg CreateWorkflowParams) (Workflow, error) { 207 row := q.db.QueryRow(ctx, createWorkflow, 208 arg.ID, 209 arg.Params, 210 arg.Name, 211 arg.ScheduleID, 212 arg.CreatedAt, 213 arg.UpdatedAt, 214 ) 215 var i Workflow 216 err := row.Scan( 217 &i.ID, 218 &i.Params, 219 &i.Name, 220 &i.CreatedAt, 221 &i.UpdatedAt, 222 &i.Finished, 223 &i.Output, 224 &i.Error, 225 &i.ScheduleID, 226 ) 227 return i, err 228 } 229 230 const deleteSchedule = `-- name: DeleteSchedule :one 231 DELETE 232 FROM schedules 233 WHERE id = $1 234 RETURNING id, workflow_name, workflow_params, spec, once, interval_minutes, created_at, updated_at 235 ` 236 237 func (q *Queries) DeleteSchedule(ctx context.Context, id int32) (Schedule, error) { 238 row := q.db.QueryRow(ctx, deleteSchedule, id) 239 var i Schedule 240 err := row.Scan( 241 &i.ID, 242 &i.WorkflowName, 243 &i.WorkflowParams, 244 &i.Spec, 245 &i.Once, 246 &i.IntervalMinutes, 247 &i.CreatedAt, 248 &i.UpdatedAt, 249 ) 250 return i, err 251 } 252 253 const failUnfinishedTasks = `-- name: FailUnfinishedTasks :exec 254 UPDATE tasks 255 SET finished = TRUE, 256 started = TRUE, 257 error = 'task interrupted before completion', 258 updated_at = $2 259 WHERE workflow_id = $1 and started and not finished 260 ` 261 262 type FailUnfinishedTasksParams struct { 263 WorkflowID uuid.UUID 264 UpdatedAt time.Time 265 } 266 267 func (q *Queries) FailUnfinishedTasks(ctx context.Context, arg FailUnfinishedTasksParams) error { 268 _, err := q.db.Exec(ctx, failUnfinishedTasks, arg.WorkflowID, arg.UpdatedAt) 269 return err 270 } 271 272 const schedules = `-- name: Schedules :many 273 SELECT id, workflow_name, workflow_params, spec, once, interval_minutes, created_at, updated_at 274 FROM schedules 275 ORDER BY id 276 ` 277 278 func (q *Queries) Schedules(ctx context.Context) ([]Schedule, error) { 279 rows, err := q.db.Query(ctx, schedules) 280 if err != nil { 281 return nil, err 282 } 283 defer rows.Close() 284 var items []Schedule 285 for rows.Next() { 286 var i Schedule 287 if err := rows.Scan( 288 &i.ID, 289 &i.WorkflowName, 290 &i.WorkflowParams, 291 &i.Spec, 292 &i.Once, 293 &i.IntervalMinutes, 294 &i.CreatedAt, 295 &i.UpdatedAt, 296 ); err != nil { 297 return nil, err 298 } 299 items = append(items, i) 300 } 301 if err := rows.Err(); err != nil { 302 return nil, err 303 } 304 return items, nil 305 } 306 307 const schedulesLastRun = `-- name: SchedulesLastRun :many 308 WITH last_scheduled_run AS ( 309 SELECT DISTINCT ON (schedule_id) schedule_id, id, created_at, workflows.error, finished 310 FROM workflows 311 ORDER BY schedule_id, workflows.created_at DESC 312 ) 313 SELECT schedules.id, 314 last_scheduled_run.id AS workflow_id, 315 last_scheduled_run.created_at AS workflow_created_at, 316 last_scheduled_run.error AS workflow_error, 317 last_scheduled_run.finished AS workflow_finished 318 FROM schedules 319 LEFT OUTER JOIN last_scheduled_run ON last_scheduled_run.schedule_id = schedules.id 320 ` 321 322 type SchedulesLastRunRow struct { 323 ID int32 324 WorkflowID uuid.UUID 325 WorkflowCreatedAt sql.NullTime 326 WorkflowError sql.NullString 327 WorkflowFinished sql.NullBool 328 } 329 330 func (q *Queries) SchedulesLastRun(ctx context.Context) ([]SchedulesLastRunRow, error) { 331 rows, err := q.db.Query(ctx, schedulesLastRun) 332 if err != nil { 333 return nil, err 334 } 335 defer rows.Close() 336 var items []SchedulesLastRunRow 337 for rows.Next() { 338 var i SchedulesLastRunRow 339 if err := rows.Scan( 340 &i.ID, 341 &i.WorkflowID, 342 &i.WorkflowCreatedAt, 343 &i.WorkflowError, 344 &i.WorkflowFinished, 345 ); err != nil { 346 return nil, err 347 } 348 items = append(items, i) 349 } 350 if err := rows.Err(); err != nil { 351 return nil, err 352 } 353 return items, nil 354 } 355 356 const task = `-- name: Task :one 357 SELECT tasks.workflow_id, tasks.name, tasks.finished, tasks.result, tasks.error, tasks.created_at, tasks.updated_at, tasks.approved_at, tasks.ready_for_approval, tasks.started, tasks.retry_count 358 FROM tasks 359 WHERE workflow_id = $1 360 AND name = $2 361 LIMIT 1 362 ` 363 364 type TaskParams struct { 365 WorkflowID uuid.UUID 366 Name string 367 } 368 369 func (q *Queries) Task(ctx context.Context, arg TaskParams) (Task, error) { 370 row := q.db.QueryRow(ctx, task, arg.WorkflowID, arg.Name) 371 var i Task 372 err := row.Scan( 373 &i.WorkflowID, 374 &i.Name, 375 &i.Finished, 376 &i.Result, 377 &i.Error, 378 &i.CreatedAt, 379 &i.UpdatedAt, 380 &i.ApprovedAt, 381 &i.ReadyForApproval, 382 &i.Started, 383 &i.RetryCount, 384 ) 385 return i, err 386 } 387 388 const taskLogs = `-- name: TaskLogs :many 389 SELECT task_logs.id, task_logs.workflow_id, task_logs.task_name, task_logs.body, task_logs.created_at, task_logs.updated_at 390 FROM task_logs 391 ORDER BY created_at 392 ` 393 394 func (q *Queries) TaskLogs(ctx context.Context) ([]TaskLog, error) { 395 rows, err := q.db.Query(ctx, taskLogs) 396 if err != nil { 397 return nil, err 398 } 399 defer rows.Close() 400 var items []TaskLog 401 for rows.Next() { 402 var i TaskLog 403 if err := rows.Scan( 404 &i.ID, 405 &i.WorkflowID, 406 &i.TaskName, 407 &i.Body, 408 &i.CreatedAt, 409 &i.UpdatedAt, 410 ); err != nil { 411 return nil, err 412 } 413 items = append(items, i) 414 } 415 if err := rows.Err(); err != nil { 416 return nil, err 417 } 418 return items, nil 419 } 420 421 const taskLogsForTask = `-- name: TaskLogsForTask :many 422 SELECT task_logs.id, task_logs.workflow_id, task_logs.task_name, task_logs.body, task_logs.created_at, task_logs.updated_at 423 FROM task_logs 424 WHERE workflow_id = $1 425 AND task_name = $2 426 ORDER BY created_at 427 ` 428 429 type TaskLogsForTaskParams struct { 430 WorkflowID uuid.UUID 431 TaskName string 432 } 433 434 func (q *Queries) TaskLogsForTask(ctx context.Context, arg TaskLogsForTaskParams) ([]TaskLog, error) { 435 rows, err := q.db.Query(ctx, taskLogsForTask, arg.WorkflowID, arg.TaskName) 436 if err != nil { 437 return nil, err 438 } 439 defer rows.Close() 440 var items []TaskLog 441 for rows.Next() { 442 var i TaskLog 443 if err := rows.Scan( 444 &i.ID, 445 &i.WorkflowID, 446 &i.TaskName, 447 &i.Body, 448 &i.CreatedAt, 449 &i.UpdatedAt, 450 ); err != nil { 451 return nil, err 452 } 453 items = append(items, i) 454 } 455 if err := rows.Err(); err != nil { 456 return nil, err 457 } 458 return items, nil 459 } 460 461 const taskLogsForWorkflow = `-- name: TaskLogsForWorkflow :many 462 SELECT task_logs.id, task_logs.workflow_id, task_logs.task_name, task_logs.body, task_logs.created_at, task_logs.updated_at 463 FROM task_logs 464 WHERE workflow_id = $1 465 ORDER BY created_at 466 ` 467 468 func (q *Queries) TaskLogsForWorkflow(ctx context.Context, workflowID uuid.UUID) ([]TaskLog, error) { 469 rows, err := q.db.Query(ctx, taskLogsForWorkflow, workflowID) 470 if err != nil { 471 return nil, err 472 } 473 defer rows.Close() 474 var items []TaskLog 475 for rows.Next() { 476 var i TaskLog 477 if err := rows.Scan( 478 &i.ID, 479 &i.WorkflowID, 480 &i.TaskName, 481 &i.Body, 482 &i.CreatedAt, 483 &i.UpdatedAt, 484 ); err != nil { 485 return nil, err 486 } 487 items = append(items, i) 488 } 489 if err := rows.Err(); err != nil { 490 return nil, err 491 } 492 return items, nil 493 } 494 495 const tasks = `-- name: Tasks :many 496 WITH most_recent_logs AS ( 497 SELECT workflow_id, task_name, MAX(updated_at) AS updated_at 498 FROM task_logs 499 GROUP BY workflow_id, task_name 500 ) 501 SELECT tasks.workflow_id, tasks.name, tasks.finished, tasks.result, tasks.error, tasks.created_at, tasks.updated_at, tasks.approved_at, tasks.ready_for_approval, tasks.started, tasks.retry_count, 502 GREATEST(most_recent_logs.updated_at, tasks.updated_at)::timestamptz AS most_recent_update 503 FROM tasks 504 LEFT JOIN most_recent_logs ON tasks.workflow_id = most_recent_logs.workflow_id AND 505 tasks.name = most_recent_logs.task_name 506 ORDER BY most_recent_update DESC 507 ` 508 509 type TasksRow struct { 510 WorkflowID uuid.UUID 511 Name string 512 Finished bool 513 Result sql.NullString 514 Error sql.NullString 515 CreatedAt time.Time 516 UpdatedAt time.Time 517 ApprovedAt sql.NullTime 518 ReadyForApproval bool 519 Started bool 520 RetryCount int32 521 MostRecentUpdate time.Time 522 } 523 524 func (q *Queries) Tasks(ctx context.Context) ([]TasksRow, error) { 525 rows, err := q.db.Query(ctx, tasks) 526 if err != nil { 527 return nil, err 528 } 529 defer rows.Close() 530 var items []TasksRow 531 for rows.Next() { 532 var i TasksRow 533 if err := rows.Scan( 534 &i.WorkflowID, 535 &i.Name, 536 &i.Finished, 537 &i.Result, 538 &i.Error, 539 &i.CreatedAt, 540 &i.UpdatedAt, 541 &i.ApprovedAt, 542 &i.ReadyForApproval, 543 &i.Started, 544 &i.RetryCount, 545 &i.MostRecentUpdate, 546 ); err != nil { 547 return nil, err 548 } 549 items = append(items, i) 550 } 551 if err := rows.Err(); err != nil { 552 return nil, err 553 } 554 return items, nil 555 } 556 557 const tasksForWorkflow = `-- name: TasksForWorkflow :many 558 SELECT tasks.workflow_id, tasks.name, tasks.finished, tasks.result, tasks.error, tasks.created_at, tasks.updated_at, tasks.approved_at, tasks.ready_for_approval, tasks.started, tasks.retry_count 559 FROM tasks 560 WHERE workflow_id = $1 561 ORDER BY created_at 562 ` 563 564 func (q *Queries) TasksForWorkflow(ctx context.Context, workflowID uuid.UUID) ([]Task, error) { 565 rows, err := q.db.Query(ctx, tasksForWorkflow, workflowID) 566 if err != nil { 567 return nil, err 568 } 569 defer rows.Close() 570 var items []Task 571 for rows.Next() { 572 var i Task 573 if err := rows.Scan( 574 &i.WorkflowID, 575 &i.Name, 576 &i.Finished, 577 &i.Result, 578 &i.Error, 579 &i.CreatedAt, 580 &i.UpdatedAt, 581 &i.ApprovedAt, 582 &i.ReadyForApproval, 583 &i.Started, 584 &i.RetryCount, 585 ); err != nil { 586 return nil, err 587 } 588 items = append(items, i) 589 } 590 if err := rows.Err(); err != nil { 591 return nil, err 592 } 593 return items, nil 594 } 595 596 const tasksForWorkflowSorted = `-- name: TasksForWorkflowSorted :many 597 WITH most_recent_logs AS ( 598 SELECT workflow_id, task_name, MAX(updated_at) AS updated_at 599 FROM task_logs 600 GROUP BY workflow_id, task_name 601 ) 602 SELECT tasks.workflow_id, tasks.name, tasks.finished, tasks.result, tasks.error, tasks.created_at, tasks.updated_at, tasks.approved_at, tasks.ready_for_approval, tasks.started, tasks.retry_count, 603 GREATEST(most_recent_logs.updated_at, tasks.updated_at)::timestamptz AS most_recent_update 604 FROM tasks 605 LEFT JOIN most_recent_logs ON tasks.workflow_id = most_recent_logs.workflow_id AND 606 tasks.name = most_recent_logs.task_name 607 WHERE tasks.workflow_id = $1 608 ORDER BY most_recent_update DESC 609 ` 610 611 type TasksForWorkflowSortedRow struct { 612 WorkflowID uuid.UUID 613 Name string 614 Finished bool 615 Result sql.NullString 616 Error sql.NullString 617 CreatedAt time.Time 618 UpdatedAt time.Time 619 ApprovedAt sql.NullTime 620 ReadyForApproval bool 621 Started bool 622 RetryCount int32 623 MostRecentUpdate time.Time 624 } 625 626 func (q *Queries) TasksForWorkflowSorted(ctx context.Context, workflowID uuid.UUID) ([]TasksForWorkflowSortedRow, error) { 627 rows, err := q.db.Query(ctx, tasksForWorkflowSorted, workflowID) 628 if err != nil { 629 return nil, err 630 } 631 defer rows.Close() 632 var items []TasksForWorkflowSortedRow 633 for rows.Next() { 634 var i TasksForWorkflowSortedRow 635 if err := rows.Scan( 636 &i.WorkflowID, 637 &i.Name, 638 &i.Finished, 639 &i.Result, 640 &i.Error, 641 &i.CreatedAt, 642 &i.UpdatedAt, 643 &i.ApprovedAt, 644 &i.ReadyForApproval, 645 &i.Started, 646 &i.RetryCount, 647 &i.MostRecentUpdate, 648 ); err != nil { 649 return nil, err 650 } 651 items = append(items, i) 652 } 653 if err := rows.Err(); err != nil { 654 return nil, err 655 } 656 return items, nil 657 } 658 659 const unfinishedWorkflows = `-- name: UnfinishedWorkflows :many 660 SELECT workflows.id, workflows.params, workflows.name, workflows.created_at, workflows.updated_at, workflows.finished, workflows.output, workflows.error, workflows.schedule_id 661 FROM workflows 662 WHERE workflows.finished = FALSE 663 ` 664 665 func (q *Queries) UnfinishedWorkflows(ctx context.Context) ([]Workflow, error) { 666 rows, err := q.db.Query(ctx, unfinishedWorkflows) 667 if err != nil { 668 return nil, err 669 } 670 defer rows.Close() 671 var items []Workflow 672 for rows.Next() { 673 var i Workflow 674 if err := rows.Scan( 675 &i.ID, 676 &i.Params, 677 &i.Name, 678 &i.CreatedAt, 679 &i.UpdatedAt, 680 &i.Finished, 681 &i.Output, 682 &i.Error, 683 &i.ScheduleID, 684 ); err != nil { 685 return nil, err 686 } 687 items = append(items, i) 688 } 689 if err := rows.Err(); err != nil { 690 return nil, err 691 } 692 return items, nil 693 } 694 695 const updateTaskReadyForApproval = `-- name: UpdateTaskReadyForApproval :one 696 UPDATE tasks 697 SET ready_for_approval = $3 698 WHERE workflow_id = $1 699 AND name = $2 700 RETURNING workflow_id, name, finished, result, error, created_at, updated_at, approved_at, ready_for_approval, started, retry_count 701 ` 702 703 type UpdateTaskReadyForApprovalParams struct { 704 WorkflowID uuid.UUID 705 Name string 706 ReadyForApproval bool 707 } 708 709 func (q *Queries) UpdateTaskReadyForApproval(ctx context.Context, arg UpdateTaskReadyForApprovalParams) (Task, error) { 710 row := q.db.QueryRow(ctx, updateTaskReadyForApproval, arg.WorkflowID, arg.Name, arg.ReadyForApproval) 711 var i Task 712 err := row.Scan( 713 &i.WorkflowID, 714 &i.Name, 715 &i.Finished, 716 &i.Result, 717 &i.Error, 718 &i.CreatedAt, 719 &i.UpdatedAt, 720 &i.ApprovedAt, 721 &i.ReadyForApproval, 722 &i.Started, 723 &i.RetryCount, 724 ) 725 return i, err 726 } 727 728 const upsertTask = `-- name: UpsertTask :one 729 INSERT INTO tasks (workflow_id, name, started, finished, result, error, created_at, updated_at, 730 retry_count) 731 VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) 732 ON CONFLICT (workflow_id, name) DO UPDATE 733 SET workflow_id = excluded.workflow_id, 734 name = excluded.name, 735 started = excluded.started, 736 finished = excluded.finished, 737 result = excluded.result, 738 error = excluded.error, 739 updated_at = excluded.updated_at, 740 retry_count = excluded.retry_count 741 RETURNING workflow_id, name, finished, result, error, created_at, updated_at, approved_at, ready_for_approval, started, retry_count 742 ` 743 744 type UpsertTaskParams struct { 745 WorkflowID uuid.UUID 746 Name string 747 Started bool 748 Finished bool 749 Result sql.NullString 750 Error sql.NullString 751 CreatedAt time.Time 752 UpdatedAt time.Time 753 RetryCount int32 754 } 755 756 func (q *Queries) UpsertTask(ctx context.Context, arg UpsertTaskParams) (Task, error) { 757 row := q.db.QueryRow(ctx, upsertTask, 758 arg.WorkflowID, 759 arg.Name, 760 arg.Started, 761 arg.Finished, 762 arg.Result, 763 arg.Error, 764 arg.CreatedAt, 765 arg.UpdatedAt, 766 arg.RetryCount, 767 ) 768 var i Task 769 err := row.Scan( 770 &i.WorkflowID, 771 &i.Name, 772 &i.Finished, 773 &i.Result, 774 &i.Error, 775 &i.CreatedAt, 776 &i.UpdatedAt, 777 &i.ApprovedAt, 778 &i.ReadyForApproval, 779 &i.Started, 780 &i.RetryCount, 781 ) 782 return i, err 783 } 784 785 const workflow = `-- name: Workflow :one 786 SELECT id, params, name, created_at, updated_at, finished, output, error, schedule_id 787 FROM workflows 788 WHERE id = $1 789 ` 790 791 func (q *Queries) Workflow(ctx context.Context, id uuid.UUID) (Workflow, error) { 792 row := q.db.QueryRow(ctx, workflow, id) 793 var i Workflow 794 err := row.Scan( 795 &i.ID, 796 &i.Params, 797 &i.Name, 798 &i.CreatedAt, 799 &i.UpdatedAt, 800 &i.Finished, 801 &i.Output, 802 &i.Error, 803 &i.ScheduleID, 804 ) 805 return i, err 806 } 807 808 const workflowCount = `-- name: WorkflowCount :one 809 SELECT COUNT(*) 810 FROM workflows 811 ` 812 813 func (q *Queries) WorkflowCount(ctx context.Context) (int64, error) { 814 row := q.db.QueryRow(ctx, workflowCount) 815 var count int64 816 err := row.Scan(&count) 817 return count, err 818 } 819 820 const workflowFinished = `-- name: WorkflowFinished :one 821 UPDATE workflows 822 SET finished = $2, 823 output = $3, 824 error = $4, 825 updated_at = $5 826 WHERE workflows.id = $1 827 RETURNING id, params, name, created_at, updated_at, finished, output, error, schedule_id 828 ` 829 830 type WorkflowFinishedParams struct { 831 ID uuid.UUID 832 Finished bool 833 Output string 834 Error string 835 UpdatedAt time.Time 836 } 837 838 func (q *Queries) WorkflowFinished(ctx context.Context, arg WorkflowFinishedParams) (Workflow, error) { 839 row := q.db.QueryRow(ctx, workflowFinished, 840 arg.ID, 841 arg.Finished, 842 arg.Output, 843 arg.Error, 844 arg.UpdatedAt, 845 ) 846 var i Workflow 847 err := row.Scan( 848 &i.ID, 849 &i.Params, 850 &i.Name, 851 &i.CreatedAt, 852 &i.UpdatedAt, 853 &i.Finished, 854 &i.Output, 855 &i.Error, 856 &i.ScheduleID, 857 ) 858 return i, err 859 } 860 861 const workflowNames = `-- name: WorkflowNames :many 862 SELECT DISTINCT name::text 863 FROM workflows 864 ` 865 866 func (q *Queries) WorkflowNames(ctx context.Context) ([]string, error) { 867 rows, err := q.db.Query(ctx, workflowNames) 868 if err != nil { 869 return nil, err 870 } 871 defer rows.Close() 872 var items []string 873 for rows.Next() { 874 var name string 875 if err := rows.Scan(&name); err != nil { 876 return nil, err 877 } 878 items = append(items, name) 879 } 880 if err := rows.Err(); err != nil { 881 return nil, err 882 } 883 return items, nil 884 } 885 886 const workflowSidebar = `-- name: WorkflowSidebar :many 887 SELECT name, COUNT(*) 888 FROM workflows 889 GROUP BY name 890 ORDER BY name 891 ` 892 893 type WorkflowSidebarRow struct { 894 Name sql.NullString 895 Count int64 896 } 897 898 func (q *Queries) WorkflowSidebar(ctx context.Context) ([]WorkflowSidebarRow, error) { 899 rows, err := q.db.Query(ctx, workflowSidebar) 900 if err != nil { 901 return nil, err 902 } 903 defer rows.Close() 904 var items []WorkflowSidebarRow 905 for rows.Next() { 906 var i WorkflowSidebarRow 907 if err := rows.Scan(&i.Name, &i.Count); err != nil { 908 return nil, err 909 } 910 items = append(items, i) 911 } 912 if err := rows.Err(); err != nil { 913 return nil, err 914 } 915 return items, nil 916 } 917 918 const workflows = `-- name: Workflows :many 919 920 SELECT id, params, name, created_at, updated_at, finished, output, error, schedule_id 921 FROM workflows 922 ORDER BY created_at DESC 923 ` 924 925 // Copyright 2021 The Go Authors. All rights reserved. 926 // Use of this source code is governed by a BSD-style 927 // license that can be found in the LICENSE file. 928 func (q *Queries) Workflows(ctx context.Context) ([]Workflow, error) { 929 rows, err := q.db.Query(ctx, workflows) 930 if err != nil { 931 return nil, err 932 } 933 defer rows.Close() 934 var items []Workflow 935 for rows.Next() { 936 var i Workflow 937 if err := rows.Scan( 938 &i.ID, 939 &i.Params, 940 &i.Name, 941 &i.CreatedAt, 942 &i.UpdatedAt, 943 &i.Finished, 944 &i.Output, 945 &i.Error, 946 &i.ScheduleID, 947 ); err != nil { 948 return nil, err 949 } 950 items = append(items, i) 951 } 952 if err := rows.Err(); err != nil { 953 return nil, err 954 } 955 return items, nil 956 } 957 958 const workflowsByName = `-- name: WorkflowsByName :many 959 SELECT id, params, name, created_at, updated_at, finished, output, error, schedule_id 960 FROM workflows 961 WHERE name = $1 962 ORDER BY created_at DESC 963 ` 964 965 func (q *Queries) WorkflowsByName(ctx context.Context, name sql.NullString) ([]Workflow, error) { 966 rows, err := q.db.Query(ctx, workflowsByName, name) 967 if err != nil { 968 return nil, err 969 } 970 defer rows.Close() 971 var items []Workflow 972 for rows.Next() { 973 var i Workflow 974 if err := rows.Scan( 975 &i.ID, 976 &i.Params, 977 &i.Name, 978 &i.CreatedAt, 979 &i.UpdatedAt, 980 &i.Finished, 981 &i.Output, 982 &i.Error, 983 &i.ScheduleID, 984 ); err != nil { 985 return nil, err 986 } 987 items = append(items, i) 988 } 989 if err := rows.Err(); err != nil { 990 return nil, err 991 } 992 return items, nil 993 } 994 995 const workflowsByNames = `-- name: WorkflowsByNames :many 996 SELECT id, params, name, created_at, updated_at, finished, output, error, schedule_id 997 FROM workflows 998 WHERE name = ANY($1::text[]) 999 ORDER BY created_at DESC 1000 ` 1001 1002 func (q *Queries) WorkflowsByNames(ctx context.Context, names []string) ([]Workflow, error) { 1003 rows, err := q.db.Query(ctx, workflowsByNames, names) 1004 if err != nil { 1005 return nil, err 1006 } 1007 defer rows.Close() 1008 var items []Workflow 1009 for rows.Next() { 1010 var i Workflow 1011 if err := rows.Scan( 1012 &i.ID, 1013 &i.Params, 1014 &i.Name, 1015 &i.CreatedAt, 1016 &i.UpdatedAt, 1017 &i.Finished, 1018 &i.Output, 1019 &i.Error, 1020 &i.ScheduleID, 1021 ); err != nil { 1022 return nil, err 1023 } 1024 items = append(items, i) 1025 } 1026 if err := rows.Err(); err != nil { 1027 return nil, err 1028 } 1029 return items, nil 1030 }