Optimization Pass
This commit is contained in:
+19
-12
@@ -2063,6 +2063,9 @@ func featSourceID(value any) (int, error) {
|
||||
}
|
||||
|
||||
func (c *featGeneratedContext) resolveGeneratedFeatIdentityBySource(familyKey, slug string, rawSource any) (string, int, bool, error) {
|
||||
if ref, ok := rawSource.(string); ok && strings.HasPrefix(ref, "feat:") {
|
||||
return c.resolveGeneratedFeatIdentityFromRef(familyKey, ref)
|
||||
}
|
||||
if rawSource != nil && rawSource != nullValue {
|
||||
if parsedID, err := featSourceID(rawSource); err == nil && parsedID > 0 {
|
||||
if generatedKey, ok := c.generatedFeatKeyForID(familyKey, parsedID); ok {
|
||||
@@ -2073,18 +2076,7 @@ func (c *featGeneratedContext) resolveGeneratedFeatIdentityBySource(familyKey, s
|
||||
}
|
||||
if rawMap, ok := rawSource.(map[string]any); ok {
|
||||
if ref, ok := rawMap["id"].(string); ok && strings.HasPrefix(ref, "feat:") {
|
||||
if generatedKey, rowID, ok := c.generatedFeatKeyFromCanonicalAlias(ref); ok {
|
||||
return generatedKey, rowID, true, nil
|
||||
}
|
||||
if rowID, hasID, err := c.featID(ref, nil); err != nil {
|
||||
return "", 0, false, err
|
||||
} else if hasID {
|
||||
if generatedKey, ok := c.generatedFeatKeyForID(familyKey, rowID); ok {
|
||||
return generatedKey, rowID, true, nil
|
||||
}
|
||||
}
|
||||
rowID, hasID, err := c.featID(ref, nil)
|
||||
return ref, rowID, hasID, err
|
||||
return c.resolveGeneratedFeatIdentityFromRef(familyKey, ref)
|
||||
}
|
||||
}
|
||||
featKey := c.preferredGeneratedFeatKey(familyKey, slug)
|
||||
@@ -2092,6 +2084,21 @@ func (c *featGeneratedContext) resolveGeneratedFeatIdentityBySource(familyKey, s
|
||||
return featKey, rowID, hasID, err
|
||||
}
|
||||
|
||||
func (c *featGeneratedContext) resolveGeneratedFeatIdentityFromRef(familyKey, ref string) (string, int, bool, error) {
|
||||
if generatedKey, rowID, ok := c.generatedFeatKeyFromCanonicalAlias(ref); ok {
|
||||
return generatedKey, rowID, true, nil
|
||||
}
|
||||
if rowID, hasID, err := c.featID(ref, nil); err != nil {
|
||||
return "", 0, false, err
|
||||
} else if hasID {
|
||||
if generatedKey, ok := c.generatedFeatKeyForID(familyKey, rowID); ok {
|
||||
return generatedKey, rowID, true, nil
|
||||
}
|
||||
}
|
||||
rowID, hasID, err := c.featID(ref, nil)
|
||||
return ref, rowID, hasID, err
|
||||
}
|
||||
|
||||
func (c *featGeneratedContext) resolveGeneratedFeatIdentity(spec familyExpansionSpec, slug string, sourceRow map[string]any) (string, int, bool, error) {
|
||||
if spec.IdentitySource == "child_source_value" {
|
||||
rawSource, ok := lookupField(sourceRow, spec.ChildSource.Column)
|
||||
|
||||
Reference in New Issue
Block a user