public DelayedDropAction buildDelayedAction()

in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/schema/SpannerSchemaDropper.java [78:99]


  public DelayedDropAction buildDelayedAction(
      Metadata metadata,
      ExecutionOptions options,
      ContributableMatcher contributableInclusionFilter,
      SourceDescriptor sourceDescriptor) {

    DdlTransactionIsolator isolator = tool.getDdlTransactionIsolator(options);
    try {
      Connection connection = isolator.getIsolatedConnection();
      // Initialize exporters with drop table dependencies so tables are dropped in the right order.
      SpannerDatabaseInfo spannerDatabaseInfo =
          new SpannerDatabaseInfo(metadata.getDatabase(), connection.getMetaData());
      tool.getSpannerTableExporter(options).init(metadata, spannerDatabaseInfo, Action.DROP);
      tool.getForeignKeyExporter(options).init(spannerDatabaseInfo);
      return schemaDropper.buildDelayedAction(
          metadata, options, contributableInclusionFilter, sourceDescriptor);
    } catch (SQLException e) {
      throw new RuntimeException("Failed to update Spanner table schema.", e);
    } finally {
      isolator.release();
    }
  }