@Override
    public List<TDataNodeLocation> getDataNodeLocations(final String tableName) {
      switch (tableName) {
        case InformationSchema.QUERIES:
          return getReadableDataNodeLocations();
        case InformationSchema.DATABASES:
        case InformationSchema.TABLES:
        case InformationSchema.COLUMNS:
        case InformationSchema.REGIONS:
        case InformationSchema.PIPES:
        case InformationSchema.PIPE_PLUGINS:
        case InformationSchema.TOPICS:
        case InformationSchema.SUBSCRIPTIONS:
        case InformationSchema.VIEWS:
        case InformationSchema.MODELS:
        case InformationSchema.FUNCTIONS:
        case InformationSchema.CONFIGURATIONS:
        case InformationSchema.KEYWORDS:
        case InformationSchema.NODES:
        case InformationSchema.CONFIG_NODES:
        case InformationSchema.DATA_NODES:
          return Collections.singletonList(DataNodeEndPoints.getLocalDataNodeLocation());
        default:
          throw new UnsupportedOperationException("Unknown table: " + tableName);
      }
    }
DataNode in these states is readable: Running, ReadOnly, Removing
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/DataNodeLocationSupplierFactory.java