---
name: "SQL::Translator::Schema::View"
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::Schema::View"
---

# SQL::Translator::Schema::View(3pm)

SQL::Translator view object

## NAME

SQL::Translator::Schema::View - SQL::Translator view object

## SYNOPSIS

```
  use SQL::Translator::Schema::View;
  my $view   = SQL::Translator::Schema::View->new(
      name   => 'foo',                      # name, required
      sql    => 'select id, name from foo', # SQL for view
      fields => 'id, name',                 # field names in view
  );
```

## DESCRIPTION

`"SQL::Translator::Schema::View"` is the view object.

## METHODS

### new

Object constructor.

```
  my $view = SQL::Translator::Schema::View->new;
```

### fields

Gets and set the fields the constraint is on.  Accepts a string, list or arrayref; returns an array or array reference.  Will unique the field names and keep them in order by the first occurrence of a field name.

```
  $view->fields('id');
  $view->fields('id', 'name');
  $view->fields( 'id, name' );
  $view->fields( [ 'id', 'name' ] );
  $view->fields( qw[ id name ] );
  my @fields = $view->fields;
```

### tables

Gets and set the tables the SELECT mentions.  Accepts a string, list or arrayref; returns an array or array reference.  Will unique the table names and keep them in order by the first occurrence of a field name.

```
  $view->tables('foo');
  $view->tables('foo', 'bar');
  $view->tables( 'foo, bar' );
  $view->tables( [ 'foo', 'bar' ] );
  $view->tables( qw[ foo bar ] );
  my @tables = $view->tables;
```

### options

Gets or appends a list of options on the view.

```
  $view->options('ALGORITHM=UNDEFINED');
  my @options = $view->options;
```

### is\_valid

Determine whether the view is valid or not.

```
  my $ok = $view->is_valid;
```

### name

Get or set the view's name.

```
  my $name = $view->name('foo');
```

### order

Get or set the view's order.

```
  my $order = $view->order(3);
```

### sql

Get or set the view's SQL.

```
  my $sql = $view->sql('select * from foo');
```

### schema

Get or set the view's schema object.

```
  $view->schema( $schema );
  my $schema = $view->schema;
```

### equals

Determines if this view is the same as another

```
  my $isIdentical = $view1->equals( $view2 );
```

## AUTHOR

Ken Youens-Clark \<kclark@cpan.org\>.
