Monorepo for Tangled
0

Configure Feed

Select the types of activity you want to include in your feed.

spindle/db: add pipeline event indices for faster index.

Signed-off-by: Seongmin Lee <git@boltless.me>

author
Seongmin Lee
date (Jul 17, 2026, 12:10 AM +0900) commit 1ee613c4 parent aa2f9752 change-id kpkpvkwz
+26 -2
+26 -2
spindle/db/db.go
··· 194 194 return err 195 195 } 196 196 197 - return orm.RunMigration(conn, logger, "spindle-members-unique-on-rkey", func(tx *sql.Tx) error { 197 + if err := orm.RunMigration(conn, logger, "spindle-members-unique-on-rkey", func(tx *sql.Tx) error { 198 198 hasTarget, err := hasUniqueIndex(tx, "spindle_members", []string{"did", "rkey"}) 199 199 if err != nil { 200 200 return err ··· 237 237 alter table spindle_members_new rename to spindle_members; 238 238 `) 239 239 return err 240 - }) 240 + }); err != nil { 241 + return err 242 + } 243 + 244 + if err := orm.RunMigration(conn, logger, "events-pipeline-index", func(tx *sql.Tx) error { 245 + _, err := tx.Exec(` 246 + create index if not exists idx_events_pipeline_lookup on events( 247 + coalesce(json_extract(event, '$.triggerMetadata.repo.repoDid'), 248 + json_extract(event, '$.triggerMetadata.repo.did')), 249 + coalesce(json_extract(event, '$.triggerMetadata.push.newSha'), 250 + json_extract(event, '$.triggerMetadata.pullRequest.sourceSha'), 251 + json_extract(event, '$.triggerMetadata.manual.sha')) 252 + ) where nsid = 'sh.tangled.pipeline'; 253 + 254 + create index if not exists idx_events_pipeline_status on events( 255 + json_extract(event, '$.pipeline'), 256 + json_extract(event, '$.workflow') 257 + ) where nsid = 'sh.tangled.pipeline.status'; 258 + `) 259 + return err 260 + }); err != nil { 261 + return err 262 + } 263 + 264 + return nil 241 265 } 242 266 243 267 func hasUniqueIndex(tx *sql.Tx, table string, cols []string) (bool, error) {