MCPcopy Create free account
hub / github.com/cockroachdb/cockroachdb-parser / preprocessForContains

Method preprocessForContains

pkg/util/json/contains.go:99–139  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

97func (j jsonString) preprocessForContains() (containsable, error) { return containsableScalar{j}, nil }
98
99func (j jsonArray) preprocessForContains() (containsable, error) {
100 result := containsableArray{}
101 for _, e := range j {
102 switch e.Type() {
103 case ArrayJSONType:
104 preprocessed, err := e.preprocessForContains()
105 if err != nil {
106 return nil, err
107 }
108 result.arrays = append(result.arrays, preprocessed)
109 case ObjectJSONType:
110 preprocessed, err := e.preprocessForContains()
111 if err != nil {
112 return nil, err
113 }
114 result.objects = append(result.objects, preprocessed)
115 default:
116 preprocessed, err := e.preprocessForContains()
117 if err != nil {
118 return nil, err
119 }
120 result.scalars = append(result.scalars, preprocessed.(containsableScalar))
121 }
122 }
123
124 var err error
125 sort.Slice(result.scalars, func(i, j int) bool {
126 if err != nil {
127 return false
128 }
129 var c int
130 c, err = result.scalars[i].JSON.Compare(result.scalars[j].JSON)
131 return c == -1
132 })
133
134 if err != nil {
135 return nil, err
136 }
137
138 return result, nil
139}
140
141func (j jsonObject) preprocessForContains() (containsable, error) {
142 preprocessed := make(containsableObject, len(j))

Callers

nothing calls this directly

Calls 4

TypeMethod · 0.65
preprocessForContainsMethod · 0.65
CompareMethod · 0.65
SliceMethod · 0.45

Tested by

no test coverage detected