From bf1d3c6bade9c2ac16db24f3aea760144d178416 Mon Sep 17 00:00:00 2001 From: sneak Date: Fri, 7 Aug 2026 16:59:56 +0000 Subject: [PATCH] Fix noinlineerr findings: internal/database (refs #61) --- internal/database/blob_chunks.go | 8 ++++-- internal/database/chunk_files_test.go | 9 ++++--- internal/database/database.go | 19 ++++++++++----- internal/database/database_test.go | 35 ++++++++++++++++++--------- 4 files changed, 49 insertions(+), 22 deletions(-) diff --git a/internal/database/blob_chunks.go b/internal/database/blob_chunks.go index 6897e21..5a83b07 100644 --- a/internal/database/blob_chunks.go +++ b/internal/database/blob_chunks.go @@ -148,7 +148,9 @@ func (r *BlobChunkRepository) DeleteOrphaned(ctx context.Context) error { WHERE blobs.id = blob_chunks.blob_id ) ` - if _, err := r.db.ExecWithLog(ctx, query1); err != nil { + + _, err := r.db.ExecWithLog(ctx, query1) + if err != nil { return fmt.Errorf("deleting blob_chunks with missing blobs: %w", err) } @@ -160,7 +162,9 @@ func (r *BlobChunkRepository) DeleteOrphaned(ctx context.Context) error { WHERE chunks.chunk_hash = blob_chunks.chunk_hash ) ` - if _, err := r.db.ExecWithLog(ctx, query2); err != nil { + + _, err = r.db.ExecWithLog(ctx, query2) + if err != nil { return fmt.Errorf("deleting blob_chunks with missing chunks: %w", err) } diff --git a/internal/database/chunk_files_test.go b/internal/database/chunk_files_test.go index ca3fd98..c198a28 100644 --- a/internal/database/chunk_files_test.go +++ b/internal/database/chunk_files_test.go @@ -150,15 +150,18 @@ func TestChunkFileRepositoryComplexDeduplication(t *testing.T) { file2 := &File{Path: "/file2.txt", MTime: testTime, Size: 3072, Mode: 0644, UID: 1000, GID: 1000} file3 := &File{Path: "/file3.txt", MTime: testTime, Size: 2048, Mode: 0644, UID: 1000, GID: 1000} - if err := fileRepo.Create(ctx, nil, file1); err != nil { + err := fileRepo.Create(ctx, nil, file1) + if err != nil { t.Fatalf("failed to create file1: %v", err) } - if err := fileRepo.Create(ctx, nil, file2); err != nil { + err = fileRepo.Create(ctx, nil, file2) + if err != nil { t.Fatalf("failed to create file2: %v", err) } - if err := fileRepo.Create(ctx, nil, file3); err != nil { + err = fileRepo.Create(ctx, nil, file3) + if err != nil { t.Fatalf("failed to create file3: %v", err) } diff --git a/internal/database/database.go b/internal/database/database.go index 7fc717f..2d2dba3 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -117,7 +117,8 @@ func New(ctx context.Context, path string) (*DB, error) { log.Debug("Database opened successfully with WAL mode", "path", path) // Enable foreign keys explicitly - if _, err := conn.ExecContext(ctx, "PRAGMA foreign_keys = ON"); err != nil { + _, err = conn.ExecContext(ctx, "PRAGMA foreign_keys = ON") + if err != nil { log.Warn("Failed to enable foreign keys", "error", err) } @@ -159,7 +160,8 @@ func New(ctx context.Context, path string) (*DB, error) { conn.SetMaxOpenConns(1) conn.SetMaxIdleConns(1) - if err := conn.PingContext(ctx); err != nil { + err = conn.PingContext(ctx) + if err != nil { log.Debug("Failed to ping database in recovery mode, closing", "path", path, "error", err) _ = conn.Close() @@ -175,17 +177,21 @@ func New(ctx context.Context, path string) (*DB, error) { // Switch back to WAL mode log.Debug("Switching database back to WAL mode", "path", path) - if _, err := conn.ExecContext(ctx, "PRAGMA journal_mode=WAL"); err != nil { + _, err = conn.ExecContext(ctx, "PRAGMA journal_mode=WAL") + if err != nil { log.Warn("Failed to switch back to WAL mode", "path", path, "error", err) } // Ensure foreign keys are enabled - if _, err := conn.ExecContext(ctx, "PRAGMA foreign_keys=ON"); err != nil { + _, err = conn.ExecContext(ctx, "PRAGMA foreign_keys=ON") + if err != nil { log.Warn("Failed to enable foreign keys", "path", path, "error", err) } db := &DB{conn: conn, path: path} - if err := applyMigrations(ctx, conn); err != nil { + + err = applyMigrations(ctx, conn) + if err != nil { _ = conn.Close() return nil, fmt.Errorf("applying migrations: %w", err) @@ -323,7 +329,8 @@ func bootstrapMigrationsTable(ctx context.Context, db *sql.DB) error { // the schema_migrations table via 000.sql, then iterates through remaining // migration files in order. func applyMigrations(ctx context.Context, db *sql.DB) error { - if err := bootstrapMigrationsTable(ctx, db); err != nil { + err := bootstrapMigrationsTable(ctx, db) + if err != nil { return err } diff --git a/internal/database/database_test.go b/internal/database/database_test.go index 7700ac1..0e5d2d8 100644 --- a/internal/database/database_test.go +++ b/internal/database/database_test.go @@ -168,24 +168,30 @@ func TestApplyMigrations_Idempotent(t *testing.T) { conn.SetMaxIdleConns(1) // First run: apply all migrations. - if err := applyMigrations(ctx, conn); err != nil { + err = applyMigrations(ctx, conn) + if err != nil { t.Fatalf("first applyMigrations failed: %v", err) } // Count rows in schema_migrations after first run. var countBefore int - if err := conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM schema_migrations").Scan(&countBefore); err != nil { + + err = conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM schema_migrations").Scan(&countBefore) + if err != nil { t.Fatalf("failed to count schema_migrations after first run: %v", err) } // Second run: must be a no-op. - if err := applyMigrations(ctx, conn); err != nil { + err = applyMigrations(ctx, conn) + if err != nil { t.Fatalf("second applyMigrations failed: %v", err) } // Count rows in schema_migrations after second run — must be unchanged. var countAfter int - if err := conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM schema_migrations").Scan(&countAfter); err != nil { + + err = conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM schema_migrations").Scan(&countAfter) + if err != nil { t.Fatalf("failed to count schema_migrations after second run: %v", err) } @@ -213,9 +219,11 @@ func TestBootstrapMigrationsTable_FreshDatabase(t *testing.T) { // Verify schema_migrations does NOT exist yet. var tableBefore int - if err := conn.QueryRowContext(ctx, + + err = conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='schema_migrations'", - ).Scan(&tableBefore); err != nil { + ).Scan(&tableBefore) + if err != nil { t.Fatalf("failed to check for table before bootstrap: %v", err) } @@ -224,15 +232,18 @@ func TestBootstrapMigrationsTable_FreshDatabase(t *testing.T) { } // Run bootstrap. - if err := bootstrapMigrationsTable(ctx, conn); err != nil { + err = bootstrapMigrationsTable(ctx, conn) + if err != nil { t.Fatalf("bootstrapMigrationsTable failed: %v", err) } // Verify schema_migrations now exists. var tableAfter int - if err := conn.QueryRowContext(ctx, + + err = conn.QueryRowContext(ctx, "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='schema_migrations'", - ).Scan(&tableAfter); err != nil { + ).Scan(&tableAfter) + if err != nil { t.Fatalf("failed to check for table after bootstrap: %v", err) } @@ -242,9 +253,11 @@ func TestBootstrapMigrationsTable_FreshDatabase(t *testing.T) { // Verify version 0 row exists. var version int - if err := conn.QueryRowContext(ctx, + + err = conn.QueryRowContext(ctx, "SELECT version FROM schema_migrations WHERE version = 0", - ).Scan(&version); err != nil { + ).Scan(&version) + if err != nil { t.Fatalf("version 0 row not found in schema_migrations: %v", err) }