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.