-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
column.go
105 lines (89 loc) · 2.61 KB
/
column.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package resolved_ast
import (
"unsafe"
internal "github.com/goccy/go-zetasql/internal/ccall/go-zetasql"
"github.com/goccy/go-zetasql/internal/helper"
"github.com/goccy/go-zetasql/types"
)
// Column a column produced by part of a query (e.g. a scan or subquery).
//
// This is used in the column_list of a resolved AST node to represent a
// "slot" in the "tuple" produced by that logical operator.
// This is also used in expressions in ColumnRefNode to point at the
// column selected during name resolution.
//
// The column_id is the definitive identifier for a Column, and
// the column_id should be used to match a ColumnRefNode in an expression
// to the scan that produces that column. column_ids are unique within
// a query. If the same table is scanned multiple times, distinct column_ids
// will be chosen for each scan.
//
// Joins and other combining nodes may propagate Columns from their
// inputs, with the same column_ids.
type Column struct {
raw unsafe.Pointer
}
func (c *Column) IsInitialized() bool {
var v bool
internal.ResolvedColumn_IsInitialized(c.raw, &v)
return v
}
func (c *Column) Clear() {
internal.ResolvedColumn_Clear(c.raw)
}
func (c *Column) DebugString() string {
var v unsafe.Pointer
internal.ResolvedColumn_DebugString(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) ShortDebugString() string {
var v unsafe.Pointer
internal.ResolvedColumn_ShortDebugString(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) ColumnID() int {
var v int
internal.ResolvedColumn_column_id(c.raw, &v)
return v
}
func (c *Column) TableName() string {
var v unsafe.Pointer
internal.ResolvedColumn_table_name(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) Name() string {
var v unsafe.Pointer
internal.ResolvedColumn_name(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) TableNameID() string {
var v unsafe.Pointer
internal.ResolvedColumn_table_name_id(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) NameID() string {
var v unsafe.Pointer
internal.ResolvedColumn_name_id(c.raw, &v)
return helper.PtrToString(v)
}
func (c *Column) Type() types.Type {
var v unsafe.Pointer
internal.ResolvedColumn_type(c.raw, &v)
return newType(v)
}
func (c *Column) TypeAnnotationMap() types.AnnotationMap {
var v unsafe.Pointer
internal.ResolvedColumn_type_annotation_map(c.raw, &v)
return newAnnotationMap(v)
}
func (c *Column) AnnotatedType() *types.AnnotatedType {
var v unsafe.Pointer
internal.ResolvedColumn_annotated_type(c.raw, &v)
return newAnnotatedType(v)
}
func newColumn(v unsafe.Pointer) *Column {
if v == nil {
return nil
}
return &Column{raw: v}
}