code: func (e *columnEvaluator) run(ctx sessionctx.Context, input, output *chunk.Chunk) {
  	for inputIdx, outputIdxes := range e.inputIdxToOutputIdxes {
  		output.SwapColumn(outputIdxes[0], input, inputIdx)
  		for i, length := 1, len(outputIdxes); i < length; i++ {
  			output.MakeRef(outputIdxes[0], outputIdxes[i])
  		}
  	}
  }
docs: // run evaluates "Column" expressions.
  // NOTE: It should be called after all the other expressions are evaluated
  //	     since it will change the content of the input Chunk.