code: func GetGCSafePoint(ctx sessionctx.Context) (uint64, error) {
  	sql := fmt.Sprintf(selectVariableValueSQL, "tikv_gc_safe_point")
  	rows, _, err := ctx.(sqlexec.RestrictedSQLExecutor).ExecRestrictedSQL(ctx, sql)
  	if err != nil {
  		return 0, errors.Trace(err)
  	}
  	if len(rows) != 1 {
  		return 0, errors.New("can not get 'tikv_gc_safe_point'")
  	}
  	safePointString := rows[0].GetString(0)
  	safePointTime, err := util.CompatibleParseGCTime(safePointString)
  	if err != nil {
  		return 0, errors.Trace(err)
  	}
  	ts := variable.GoTimeToTS(safePointTime)
  	return ts, nil
  }
docs: // GetGCSafePoint loads GC safe point time from mysql.tidb.