MCPcopy Create free account
hub / github.com/cloudquery/cloudquery / duckDBStructToArrow

Function duckDBStructToArrow

plugins/destination/duckdb/client/types.go:133–158  ·  view source on GitHub ↗
(spec string)

Source from the content-addressed store, hash-verified

131}
132
133func duckDBStructToArrow(spec string) *arrow.StructType {
134 params := strings.TrimPrefix(spec, "struct")
135 params = strings.TrimSpace(params)
136 params = strings.TrimSuffix(strings.TrimPrefix(params, "("), ")")
137
138 fieldsSpec := splitParams(params)
139 if len(fieldsSpec) == 0 {
140 panic("unsupported struct spec: " + spec)
141 }
142
143 fields := make([]arrow.Field, len(fieldsSpec))
144 for i, fieldSpec := range fieldsSpec {
145 parts := strings.SplitN(fieldSpec, " ", 2)
146 if len(parts) != 2 {
147 panic("unsupported field spec: " + fieldSpec)
148 }
149
150 fields[i] = arrow.Field{
151 Name: strings.Trim(parts[0], `"`),
152 Type: duckDBToArrow(strings.TrimSpace(parts[1])),
153 Nullable: true, // all duckdb columns are nullable
154 }
155 }
156
157 return arrow.StructOf(fields...)
158}
159
160func duckDBMapToArrow(spec string) *arrow.MapType {
161 params := strings.TrimPrefix(spec, "map")

Callers 1

duckDBToArrowFunction · 0.85

Calls 2

splitParamsFunction · 0.85
duckDBToArrowFunction · 0.85

Tested by

no test coverage detected