MCPcopy Create free account
hub / github.com/datasweet/datatable / copyColumnsTo

Method copyColumnsTo

join.go:130–168  ·  view source on GitHub ↗
(out *DataTable)

Source from the content-addressed store, hash-verified

128}
129
130func (jc *joinClause) copyColumnsTo(out *DataTable) error {
131 if out == nil {
132 return ErrNilOutputDatatable
133 }
134
135 mon := make(map[string]bool, len(jc.on))
136 for _, o := range jc.on {
137 mon[o] = true
138 }
139
140 for _, col := range jc.table.cols {
141 name := col.name
142 cname := name
143
144 if _, found := mon[name]; found {
145 if !jc.includeOnCols {
146 continue
147 }
148 } else if v, ok := jc.mcols[name]; ok && len(v) > 1 {
149 // commons col between table
150 for _, tn := range v {
151 if tn == jc.table.name {
152 cname = colname(jc.table, name)
153 break
154 }
155 }
156 }
157
158 ccpy := col.emptyCopy()
159 ccpy.name = cname
160 if err := out.addColumn(ccpy); err != nil {
161 return err
162 }
163
164 jc.cmapper = append(jc.cmapper, [2]string{name, cname})
165 }
166
167 return nil
168}
169
170func (jc *joinClause) initHashTable() {
171 jc.hashtable = hasher.Table(jc.table, jc.on)

Callers 1

joinMethod · 0.80

Calls 3

colnameFunction · 0.85
emptyCopyMethod · 0.80
addColumnMethod · 0.80

Tested by

no test coverage detected