-
Notifications
You must be signed in to change notification settings - Fork 8
/
utils.go
41 lines (31 loc) · 1.26 KB
/
utils.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
34
35
36
37
38
39
40
41
// SPDX-License-Identifier: Apache-2.0
package expr
import "github.com/substrait-io/substrait-go/extensions"
type ExtensionRegistry struct {
extensions.Set
c *extensions.Collection
}
func NewExtensionRegistry(extSet extensions.Set, c *extensions.Collection) ExtensionRegistry {
if c == nil {
panic("cannot create registry with nil collection")
}
return ExtensionRegistry{Set: extSet, c: c}
}
func NewEmptyExtensionRegistry(c *extensions.Collection) ExtensionRegistry {
return NewExtensionRegistry(extensions.NewSet(), c)
}
func (e *ExtensionRegistry) LookupTypeVariation(anchor uint32) (extensions.TypeVariation, bool) {
return e.Set.LookupTypeVariation(anchor, e.c)
}
func (e *ExtensionRegistry) LookupType(anchor uint32) (extensions.Type, bool) {
return e.Set.LookupType(anchor, e.c)
}
func (e *ExtensionRegistry) LookupScalarFunction(anchor uint32) (*extensions.ScalarFunctionVariant, bool) {
return e.Set.LookupScalarFunction(anchor, e.c)
}
func (e *ExtensionRegistry) LookupAggregateFunction(anchor uint32) (*extensions.AggregateFunctionVariant, bool) {
return e.Set.LookupAggregateFunction(anchor, e.c)
}
func (e *ExtensionRegistry) LookupWindowFunction(anchor uint32) (*extensions.WindowFunctionVariant, bool) {
return e.Set.LookupWindowFunction(anchor, e.c)
}