feat: reduce default node ID length to 3 and auto-grow when exhausted
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -265,8 +265,8 @@ func (s *txStore) NodeExists(id string) (bool, error) { return nodeExists(s.db,
|
||||
|
||||
// --- ID generation ---
|
||||
|
||||
func genID() string {
|
||||
b := make([]byte, 5)
|
||||
func genID(length int) string {
|
||||
b := make([]byte, length)
|
||||
for i := range b {
|
||||
b[i] = "abcdefghijklmnopqrstuvwxyz"[rand.Intn(26)]
|
||||
}
|
||||
@@ -274,8 +274,14 @@ func genID() string {
|
||||
}
|
||||
|
||||
func generateID(q querier) (string, error) {
|
||||
for {
|
||||
id := genID()
|
||||
for length := 3; ; length++ {
|
||||
// Try up to 10*capacity attempts at this length before growing.
|
||||
capacity := 1
|
||||
for i := 0; i < length; i++ {
|
||||
capacity *= 26
|
||||
}
|
||||
for attempt := 0; attempt < 10*capacity; attempt++ {
|
||||
id := genID(length)
|
||||
exists, err := nodeExists(q, id)
|
||||
if err != nil {
|
||||
return "", err
|
||||
@@ -284,6 +290,7 @@ func generateID(q querier) (string, error) {
|
||||
return id, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (s *GraphStoreSqlite) GenerateID() (string, error) { return generateID(s.db) }
|
||||
|
||||
Reference in New Issue
Block a user