Skip to content

Commit e02f320

Browse files
committed
add index
1 parent 40f3edc commit e02f320

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

dbos/dbos_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func TestConfig(t *testing.T) {
251251
require.NoError(t, err)
252252
assert.True(t, exists, "dbos_migrations table should exist")
253253

254-
// Verify migration version is 1 (after initial migration)
254+
// Verify migration version is 3 (after initial migration, queue partition key migration, and workflow status index migration)
255255
var version int64
256256
var count int
257257
err = sysDB.pool.QueryRow(dbCtx, "SELECT COUNT(*) FROM dbos.dbos_migrations").Scan(&count)
@@ -260,7 +260,7 @@ func TestConfig(t *testing.T) {
260260

261261
err = sysDB.pool.QueryRow(dbCtx, "SELECT version FROM dbos.dbos_migrations").Scan(&version)
262262
require.NoError(t, err)
263-
assert.Equal(t, int64(2), version, "migration version should be 1 (after initial migration)")
263+
assert.Equal(t, int64(3), version, "migration version should be 3 (after initial migration, queue partition key migration, and workflow status index migration)")
264264

265265
// Test manual shutdown and recreate
266266
Shutdown(ctx, 1*time.Minute)
@@ -459,7 +459,7 @@ func TestCustomSystemDBSchema(t *testing.T) {
459459
require.NoError(t, err)
460460
assert.True(t, exists, "dbos_migrations table should exist in custom schema")
461461

462-
// Verify migration version is 1 (after initial migration)
462+
// Verify migration version is 3 (after initial migration, queue partition key migration, and workflow status index migration)
463463
var version int64
464464
var count int
465465
err = sysDB.pool.QueryRow(dbCtx, fmt.Sprintf("SELECT COUNT(*) FROM %s.dbos_migrations", customSchema)).Scan(&count)
@@ -468,7 +468,7 @@ func TestCustomSystemDBSchema(t *testing.T) {
468468

469469
err = sysDB.pool.QueryRow(dbCtx, fmt.Sprintf("SELECT version FROM %s.dbos_migrations", customSchema)).Scan(&version)
470470
require.NoError(t, err)
471-
assert.Equal(t, int64(2), version, "migration version should be 2 (after initial migration and queue partition key migration)")
471+
assert.Equal(t, int64(3), version, "migration version should be 3 (after initial migration, queue partition key migration, and workflow status index migration)")
472472
})
473473

474474
// Test workflows for exercising Send/Recv and SetEvent/GetEvent
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- Migration 3: Add index on workflow_status for queue, status, and started_at_epoch_ms
2+
-- This index improves query performance for queue operations that filter by queue_name, status, and started_at_epoch_ms
3+
4+
CREATE INDEX "idx_workflow_status_queue_status_started" ON %s."workflow_status" ("queue_name", "status", "started_at_epoch_ms");
5+

dbos/system_database.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ var migration1SQL string
129129
//go:embed migrations/2_add_queue_partition_key.sql
130130
var migration2SQL string
131131

132+
//go:embed migrations/3_add_workflow_status_index.sql
133+
var migration3SQL string
134+
132135
type migrationFile struct {
133136
version int64
134137
sql string
@@ -165,10 +168,13 @@ func runMigrations(pool *pgxpool.Pool, schema string) error {
165168

166169
migration2SQLProcessed := fmt.Sprintf(migration2SQL, sanitizedSchema)
167170

171+
migration3SQLProcessed := fmt.Sprintf(migration3SQL, sanitizedSchema)
172+
168173
// Build migrations list with processed SQL
169174
migrations := []migrationFile{
170175
{version: 1, sql: migration1SQLProcessed},
171176
{version: 2, sql: migration2SQLProcessed},
177+
{version: 3, sql: migration3SQLProcessed},
172178
}
173179

174180
// Begin transaction for atomic migration execution

0 commit comments

Comments
 (0)