From ba68130862dc004a7a1b50d99fc70872d39fd065 Mon Sep 17 00:00:00 2001 From: JP Appel Date: Wed, 2 Jul 2025 00:06:10 -0400 Subject: Add link parsing --- pkg/data/put.go | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'pkg/data/put.go') diff --git a/pkg/data/put.go b/pkg/data/put.go index e0185ae..0d49e60 100644 --- a/pkg/data/put.go +++ b/pkg/data/put.go @@ -226,14 +226,13 @@ func (p Put) links() error { return nil } - preQuery := fmt.Sprintf(` - INSERT INTO Links (referencedId, refererId) - SELECT id, %d - FROM Documents - WHERE path IN - `, p.Id) - query, args := BatchQuery(preQuery, "(", "?", ",", ")", len(p.Doc.Links), p.Doc.Links) - if _, err := p.tx.Exec(query, args...); err != nil { + preQuery := ` + INSERT INTO Links (docId, link) + VALUES + ` + valueStr := fmt.Sprintf("(%d,?)", p.Id) + query, args := BatchQuery(preQuery, "", valueStr, ",", "", len(p.Doc.Links), p.Doc.Links) + if _, err := p.tx.Exec(query + "\n ON CONFLICT DO NOTHING", args...); err != nil { return err } @@ -251,14 +250,13 @@ func (p PutMany) links(ctx context.Context) error { continue } - preQuery := fmt.Sprintf(` - INSERT INTO Links (referencedId, refererId) - SELECT id, %d - FROM Documents - WHERE path IN - `, id) - query, args := BatchQuery(preQuery, "(", "?", ",", ")", len(doc.Links), doc.Links) - if _, err := tx.Exec(query, args...); err != nil { + preQuery := ` + INSERT INTO Links (docId, link) + VALUES + ` + valueStr := fmt.Sprintf("(%d,?)", id) + query, args := BatchQuery(preQuery, "", valueStr, ",", "", len(doc.Links), doc.Links) + if _, err := tx.Exec(query +"\n ON CONFLICT DO NOTHING", args...); err != nil { tx.Rollback() return err } -- cgit v1.2.3