NAME

DBIO::Firebird::Diff::Index - Diff operations for Firebird indexes

VERSION

version 0.900004

DESCRIPTION

Index-level diff operations for Firebird. Firebird supports CREATE INDEX and DROP INDEX. Changed index definitions become a drop-then-create pair. The drop of such a pair is marked replaced: the index comes back at once, so "classify" in DBIO::Diff::Base counts it as changing, not destructive (core ADR 0080). The drop of an index the schema no longer has is destructive.

ATTRIBUTES

replaced

True on the drop that is the first half of a drop-then-create pair.

METHODS

diff

my @ops = DBIO::Firebird::Diff::Index->diff(
  $source, $target, $source_tables, $target_tables);

Compares index sets across all tables. Index identity is by name; a changed definition produces a drop-then-create pair.

The optional $source_tables / $target_tables hashrefs are the tables sections of the two models (threaded in by DBIO::Firebird::Diff via its aux-section wiring). They are used to detect tables that are being dropped in this same diff pass: Firebird's DROP TABLE already removes that table's own indexes, so a later standalone DROP INDEX for one of them would fail once the table is gone and abort the deploy. When these arguments are absent (e.g. direct unit-test calls) the dropped-table set is empty and no drops are suppressed, preserving the original two-argument behaviour.

as_sql

summary

AUTHOR

DBIO & DBIx::Class Authors

COPYRIGHT AND LICENSE

Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.