forked from pganalyze/pg_query_go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
list_fingerprint.go
33 lines (27 loc) · 865 Bytes
/
list_fingerprint.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Auto-generated - DO NOT EDIT
package pg_query
import "sort"
func (node List) Fingerprint(ctx FingerprintContext, parentNode Node, parentFieldName string) {
if parentFieldName == "FromClause" || parentFieldName == "TargetList" || parentFieldName == "Cols" || parentFieldName == "Rexpr" {
var itemsFingerprints FingerprintSubContextSlice
for _, subNode := range node.Items {
if subNode != nil {
subCtx := FingerprintSubContext{}
subNode.Fingerprint(&subCtx, parentNode, parentFieldName)
itemsFingerprints.AddIfUnique(subCtx)
}
}
sort.Sort(itemsFingerprints)
for _, fingerprint := range itemsFingerprints {
for _, part := range fingerprint.parts {
ctx.WriteString(part)
}
}
} else {
for _, subNode := range node.Items {
if subNode != nil {
subNode.Fingerprint(ctx, parentNode, parentFieldName)
}
}
}
}