---
name: "DBIx::Class::Helper::ResultSet::AutoRemoveColumns"
section: "3pm"
platform: "linux"
package: "libdbix-class-helpers-perl"
version: "2.037000-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::Class::Helper::ResultSet::AutoRemoveColumns"
---

# DBIx::Class::Helper::ResultSet::AutoRemoveColumns(3pm)

Automatically remove columns from a ResultSet

## NAME

DBIx::Class::Helper::ResultSet::AutoRemoveColumns - Automatically remove columns from a ResultSet

## SYNOPSIS

```
 package MySchema::Result::Bar;
 use strict;
 use warnings;
 use parent 'DBIx::Class::Core';
 __PACKAGE__->table('KittenRobot');
 __PACKAGE__->add_columns(
    id => {
       data_type         => 'integer',
       is_auto_increment => 1,
    },
    kitten => {
       data_type         => 'integer',
    },
    robot => {
       data_type         => 'text',
       is_nullable       => 1,
    },
    your_mom => {
       data_type         => 'blob',
       is_nullable       => 1,
       remove_column     => 0,
    },
 );
 1;
 package MySchema::ResultSet::Bar;
 use strict;
 use warnings;
 use parent 'DBIx::Class::ResultSet';
 __PACKAGE__->load_components('Helper::ResultSet::AutoRemoveColumns');
```

## DESCRIPTION

This component automatically removes "heavy-weight" columns.  To be specific, columns of type `"text"`, `"ntext"`, `"blob"`, `"clob"`, or `"bytea"`.  You may use the `"remove_column"` key in the column info to specify directly whether or not to remove the column automatically. See "NOTE" in DBIx::Class::Helper::ResultSet for a nice way to apply it to your entire schema.

## METHODS

### \_should\_column\_fetch

```
 $self->_should_column_fetch('kitten')
```

returns true if a column should be fetched or not.  This fetches a column if it is not of type `"text"`, `"ntext"`, `"blob"`, `"clob"`, or `"bytea"` or the `"remove_column"` is set to true.  If you only wanted to explicitly state which columns to remove you might override this method like this:

```
 sub _should_column_fetch {
    my ( $self, $column ) = @_;
    my $info = $self->result_source->column_info($column);
    return exists $info->{remove_column}
        ? $info->{remove_column}
        : 0;
 }
```

### fetchable\_columns

simply returns a list of columns that are fetchable.

## AUTHOR

Arthur Axel "fREW" Schmidt \<frioux+cpan@gmail.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Arthur Axel "fREW" Schmidt.

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