MCPcopy Create free account
hub / github.com/apecloud/myduckserver / columnTypeHints

Function columnTypeHints

backend/loaddata.go:240–271  ·  view source on GitHub ↗
(b *strings.Builder, dst sql.Table, schema sql.Schema, colNames []string)

Source from the content-addressed store, hash-verified

238}
239
240func columnTypeHints(b *strings.Builder, dst sql.Table, schema sql.Schema, colNames []string) error {
241 b.WriteString("{")
242
243 if len(colNames) == 0 {
244 for i, col := range schema {
245 if i > 0 {
246 b.WriteString(", ")
247 }
248 if err := columnTypeHint(b, col); err != nil {
249 return err
250 }
251 }
252 b.WriteString("}")
253 return nil
254 }
255
256 for i, col := range colNames {
257 if i > 0 {
258 b.WriteString(", ")
259 }
260 idx := schema.IndexOf(col, dst.Name()) // O(n^2) but n := # of columns is usually small
261 if idx < 0 {
262 return sql.ErrTableColumnNotFound.New(dst.Name(), col)
263 }
264 if err := columnTypeHint(b, schema[idx]); err != nil {
265 return err
266 }
267 }
268
269 b.WriteString("}")
270 return nil
271}
272
273func columnTypeHint(b *strings.Builder, col *sql.Column) error {
274 b.WriteString(catalog.QuoteIdentifierANSI(col.Name))

Callers 1

executeLoadDataMethod · 0.85

Calls 2

columnTypeHintFunction · 0.85
NameMethod · 0.45

Tested by

no test coverage detected