@Override
    protected Scope visitDelete(Delete node, Optional<Scope> scope) {
      final Scope ret = Scope.create();
      accessControl.checkCanDeleteFromTable(
          sessionContext.getUserName(),
          new QualifiedObjectName(
              AnalyzeUtils.getDatabaseName(node, queryContext),
              node.getTable().getName().getSuffix()));
      AnalyzeUtils.analyzeDelete(node, queryContext);

      analysis.setScope(node, ret);
      return ret;
    }
Visitor context represents local query scope (if exists). The invariant is that the local query
scopes hierarchy should always have outer query scope (if provided) as ancestor.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java