code: func (c *Constant) EvalJSON(ctx sessionctx.Context, _ chunk.Row) (json.BinaryJSON, bool, error) {
  	if c.DeferredExpr != nil {
  		dt, err := c.DeferredExpr.Eval(chunk.Row{})
  		if err != nil {
  			return json.BinaryJSON{}, true, err
  		}
  		if dt.IsNull() {
  			return json.BinaryJSON{}, true, nil
  		}
  		val, err := dt.ConvertTo(ctx.GetSessionVars().StmtCtx, types.NewFieldType(mysql.TypeJSON))
  		if err != nil {
  			return json.BinaryJSON{}, true, err
  		}
  		fmt.Println("const eval json", val.GetMysqlJSON().String())
  		c.Value.SetMysqlJSON(val.GetMysqlJSON())
  		c.GetType().Tp = mysql.TypeJSON
  	} else {
  		if c.GetType().Tp == mysql.TypeNull || c.Value.IsNull() {
  			return json.BinaryJSON{}, true, nil
  		}
  	}
  	return c.Value.GetMysqlJSON(), false, nil
  }
docs: // EvalJSON returns JSON representation of Constant.