code: func GetColDefaultValue(ctx sessionctx.Context, col *table.Column, defaultVals []types.Datum) (
  	colVal types.Datum, err error) {
  	if col.OriginDefaultValue == nil && mysql.HasNotNullFlag(col.Flag) {
  		return colVal, errors.New("Miss column")
  	}
  	if col.State != model.StatePublic {
  		return colVal, nil
  	}
  	if defaultVals[col.Offset].IsNull() {
  		colVal, err = table.GetColOriginDefaultValue(ctx, col.ToInfo())
  		if err != nil {
  			return colVal, err
  		}
  		defaultVals[col.Offset] = colVal
  	} else {
  		colVal = defaultVals[col.Offset]
  	}
  
  	return colVal, nil
  }
docs: // GetColDefaultValue gets a column default value.
  // The defaultVals is used to avoid calculating the default value multiple times.