WalkProjectionFinal walk the select plan to create final projection.
(p *Select)
| 142 | |
| 143 | // WalkProjectionFinal walk the select plan to create final projection. |
| 144 | func (m *PlannerDefault) WalkProjectionFinal(p *Select) error { |
| 145 | // Add a Final Projection to choose the columns for results |
| 146 | proj, err := NewProjectionFinal(m.Ctx, p) |
| 147 | //u.Infof("Projection: %T:%p %T:%p", proj, proj, proj.Proj, proj.Proj) |
| 148 | if err != nil { |
| 149 | return err |
| 150 | } |
| 151 | p.Add(proj) |
| 152 | if m.Ctx.Projection == nil { |
| 153 | m.Ctx.Projection = proj |
| 154 | } else { |
| 155 | // Not entirely sure we should be over-writing the projection? |
| 156 | } |
| 157 | return nil |
| 158 | } |
| 159 | |
| 160 | // Build Column Name to Position index for given *source* (from) used to interpret |
| 161 | // positional []driver.Value args, mutate the *from* itself to hold this map |
no test coverage detected