From fba3d635ea60ea8b1bbc8d85cec79d94b9f9d404 Mon Sep 17 00:00:00 2001 From: bel Date: Sat, 17 May 2025 20:57:41 -0600 Subject: [PATCH] if optimistically assuming cksum unchanged, then do not get cksum, just update checked, modified --- src/asses/db.go | 9 +++++++++ src/asses/one.go | 14 ++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/asses/db.go b/src/asses/db.go index 5a70b51..f3a2907 100644 --- a/src/asses/db.go +++ b/src/asses/db.go @@ -56,6 +56,15 @@ func checked(ctx context.Context, p, cksum string, modified time.Time) error { return err } + if cksum != "" { + } else if err := db.Exec(ctx, ` + UPDATE "asses.checks" + SET checked_at=$2, modified=$3 + WHERE p=$1 + `, p, time.Now(), modified); err == nil { + return nil + } + return db.Exec(ctx, ` INSERT INTO "asses.checks" (p, checked_at, cksum, modified) diff --git a/src/asses/one.go b/src/asses/one.go index 4e2aa3a..7584bdc 100644 --- a/src/asses/one.go +++ b/src/asses/one.go @@ -48,9 +48,11 @@ func One(ctx context.Context, p string) error { log.Printf("asses.One(%s) // modified (%v) is now %v", shortp, last.Modified, stat.ModTime()) } + doCksum := true if err := func() error { if len(last.Cksum) > 0 { if last.Modified.IsZero() { + doCksum = false log.Printf("asses.One(%s) // assume cksum unchanged given null modified ", shortp) return nil } @@ -76,10 +78,14 @@ func One(ctx context.Context, p string) error { return err } - cksum, err := Cksum(ctx, p) - if err != nil { - return err - } + var cksum string + if doCksum { + var err error + cksum, err = Cksum(ctx, p) + if err != nil { + return err + } + } stat, err := os.Stat(p) if err != nil { return err