---
name: "SQL::Translator::Filter::Globals"
section: "3pm"
platform: "linux"
package: "libsql-translator-perl"
version: "1.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SQL::Translator::Filter::Globals"
---

# SQL::Translator::Filter::Globals(3pm)

Add global fields and indices to all tables.

## NAME

SQL::Translator::Filter::Globals - Add global fields and indices to all tables.

## SYNOPSIS

```
  # e.g. Add timestamp field to all tables.
  use SQL::Translator;
  my $sqlt = SQL::Translator->new(
      from => 'MySQL',
      to   => 'MySQL',
      filters => [
        Globals => {
            fields => [
                {
                    name => 'modified'
                    data_type => 'TIMESTAMP'
                }
            ],
            indices => [
                {
                    fields => 'modifed',
                },
            ]
            constraints => [
                {
                }
            ]
        },
      ],
  ) || die "SQLFairy error : ".SQL::Translator->error;
  my $sql = $sqlt->translate || die "SQLFairy error : ".$sqlt->error;
```

## DESCRIPTION

Adds global fields, indices and constraints to all tables in the schema. The globals to add can either be defined in the filter args or using a \_GLOBAL\_ table (see below).

If a table already contains a field with the same name as a global then it is skipped for that table.

### The \_GLOBAL\_ Table

An alternative to using the args is to add a table called `"_GLOBAL_"` to the schema and then just use the filter. Any fields and indices defined on this table will be added to all the tables in the schema and the \_GLOBAL\_ table removed.

The name of the global can be changed using a `"global_table"` arg to the filter.

## SEE ALSO

`perl(1)`, SQL::Translator

## BUGS

Will generate duplicate indices if an index already exists on a table the same as one added globally.

Will generate duplicate constraints if a constraint already exists on a table the same as one added globally.

## TODO

Some extra data values that can be used to control the global addition. e.g. 'skip\_global'.

## AUTHOR

Mark Addison \<grommit@users.sourceforge.net\>
