| | |
| | | |
| | | // ClearData 清空数据(重建前调用) |
| | | func (s *Store) ClearData() error { |
| | | _, err := s.db.Exec("DELETE FROM edges; DELETE FROM nodes;") |
| | | _, err := s.db.Exec("DELETE FROM edges; DELETE FROM nodes; DELETE FROM unresolved_links;") |
| | | return err |
| | | } |
| | | |
| | |
| | | return err |
| | | } |
| | | |
| | | // InsertUnresolved 悬空链接入表(幂等:同 from_node+link_text 不重复插) |
| | | func (s *Store) InsertUnresolved(fromNode int64, linkText, nameTail string) error { |
| | | _, err := s.db.Exec(` |
| | | INSERT INTO unresolved_links (from_node, link_text, name_tail, status) |
| | | SELECT ?, ?, ?, 'pending' |
| | | WHERE NOT EXISTS ( |
| | | SELECT 1 FROM unresolved_links WHERE from_node = ? AND link_text = ?)`, |
| | | fromNode, linkText, nameTail, fromNode, linkText) |
| | | return err |
| | | } |
| | | |
| | | // FileStat 索引中的文件指纹 |
| | | type FileStat struct { |
| | | Path string |