Skip to content

Commit

Permalink
fix: add support for mysql
Browse files Browse the repository at this point in the history
Signed-off-by: Jiacheng Xu <[email protected]>
  • Loading branch information
jiachengxu committed Apr 8, 2024
1 parent fd5f9da commit 1cd9117
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions persist/sqldb/workflow_archive.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,13 @@ func (r *workflowArchive) ListWorkflows(namespace string, name string, namePrefi
offset = -1
}

selectQuery, err := selectArchivedWorkflowQuery(r.dbType)
if err != nil {
return nil, err
}

selector := r.session.SQL().
Select(db.Raw("name, namespace, uid, phase, startedat, finishedat, (workflow::json)->'metadata'->>'labels' as labels, (workflow::json)->'metadata'->>'annotations' as annotations, (workflow::json)->'status'->>'progress' as progress")).
Select(selectQuery).
From(archiveTableName).
Where(r.clusterManagedNamespaceAndInstanceID()).
And(namespaceEqual(namespace)).
Expand All @@ -166,7 +171,7 @@ func (r *workflowArchive) ListWorkflows(namespace string, name string, namePrefi
And(startedAtFromClause(minStartedAt)).
And(startedAtToClause(maxStartedAt))

selector, err := labelsClause(selector, r.dbType, labelRequirements)
selector, err = labelsClause(selector, r.dbType, labelRequirements)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -371,3 +376,13 @@ func (r *workflowArchive) DeleteExpiredWorkflows(ttl time.Duration) error {
log.WithFields(log.Fields{"rowsAffected": rowsAffected}).Info("Deleted archived workflows")
return nil
}

func selectArchivedWorkflowQuery(t dbType) (*db.RawExpr, error) {
switch t {
case MySQL:
return db.Raw("name, namespace, uid, phase, startedat, finishedat, workflow->>'$.metadata.labels' as labels, workflow->>'$.metadata.annotations' as annotations, workflow->>'$.status.progress' as progress"), nil
case Postgres:
return db.Raw("name, namespace, uid, phase, startedat, finishedat, (workflow::json)->'metadata'->>'labels' as labels, (workflow::json)->'metadata'->>'annotations' as annotations, (workflow::json)->'status'->>'progress' as progress"), nil
}
return nil, fmt.Errorf("unsupported db type %s", t)
}

0 comments on commit 1cd9117

Please sign in to comment.