NAME
Doodle::Grammar
ABSTRACT
Doodle Grammar Base Class
SYNOPSIS
use Doodle::Grammar;
my $self = Doodle::Grammar->new;
DESCRIPTION
This package determines how command objects should be interpreted to produce the correct DDL statements.
LIBRARIES
This package uses type constraints from:
ATTRIBUTES
This package has the following attributes:
name
name(Str)
This attribute is read-only, accepts (Str)
values, and is optional.
METHODS
This package implements the following methods:
create_column
create_column(Command $command) : Str
Generate SQL statement for column-create Command.
- create_column example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $column = $ddl->table('users')->column('id'); my $command = $column->create; my $create_column = $self->create_column($command);
create_constraint
create_constraint(Column $column) : Str
Returns the SQL statement for the create constraint command.
- create_constraint example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $relation = $ddl->table('emails')->relation('user_id', 'users', 'id'); my $command = $relation->create; $self->create_constraint($command);
create_index
create_index(Command $command) : Str
Generate SQL statement for index-create Command.
- create_index example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $index = $ddl->table('users')->index(columns => ['is_admin']); my $command = $index->create; my $create_index = $self->create_index($command);
create_schema
create_schema(Command $command) : Str
Generate SQL statement for schema-create Command.
- create_schema example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $schema = $ddl->schema('app'); my $command = $schema->create; my $create_schema = $self->create_schema($command);
create_table
create_table(Command $command) : Str
Generate SQL statement for table-create Command.
- create_table example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $table = $ddl->table('users'); my $command = $table->create; my $create_table = $self->create_table($command);
delete_column
delete_column(Command $command) : Str
Generate SQL statement for column-delete Command.
- delete_column example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $column = $ddl->table('users')->column('id'); my $command = $column->delete; my $delete_column = $self->delete_column($command);
delete_constraint
delete_constraint(Column $column) : Str
Returns the SQL statement for the delete constraint command.
- delete_constraint example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $relation = $ddl->table('emails')->relation('user_id', 'users', 'id'); my $command = $relation->delete; $self->delete_constraint($command);
delete_index
delete_index(Command $command) : Str
Generate SQL statement for index-delete Command.
- delete_index example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $index = $ddl->table('users')->index(columns => ['is_admin']); my $command = $index->delete; my $delete_index = $self->delete_index($command);
delete_schema
delete_schema(Command $command) : Str
Generate SQL statement for schema-delete Command.
- delete_schema example #1
-
# given: synopsis my $ddl = Doodle->new; my $schema = $ddl->schema('app'); my $command = $schema->delete; my $delete_schema = $self->delete_schema($command);
delete_table
delete_table(Command $command) : Str
Generate SQL statement for table-delete Command.
- delete_table example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $table = $ddl->table('users'); my $command = $table->delete; my $delete_table = $self->delete_table($command);
exception
exception(Str $message) : Any
Throws an exception using Carp confess.
execute
execute(Command $command) : Statement
Processed the Command and returns a Statement object.
- execute example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $column = $ddl->table('users')->column('id'); my $command = $column->create; my $statement = $self->execute($command);
rename_column
rename_column(Command $command) : Str
Generate SQL statement for column-rename Command.
- rename_column example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $column = $ddl->table('users')->column('id'); my $command = $column->rename('uuid'); my $rename_column = $self->rename_column($command);
rename_table
rename_table(Command $command) : Str
Generate SQL statement for table-rename Command.
- rename_table example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $table = $ddl->table('users'); my $command = $table->rename('people'); my $rename_table = $self->rename_table($command);
render
render(Command $command) : Str
Returns the SQL statement for the given Command.
- render example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $schema = $ddl->schema('app'); my $command = $schema->create; my $template = 'create schema {schema_name}'; my $sql = $self->render($template, $command);
update_column
update_column(Any @args) : Str
Generate SQL statement for column-update Command.
- update_column example #1
-
# given: synopsis use Doodle; my $ddl = Doodle->new; my $column = $ddl->table('users')->column('id')->integer_small; my $command = $column->update; my $update_column = $self->update_column($command);
AUTHOR
Al Newkirk, awncorp@cpan.org
LICENSE
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".