Prty
view release on metacpan or search on metacpan
t/bin/Prty/Sql.t view on Meta::CPAN
my $stmt = $sql->modifyColumn('person','per_geburtstag',notNull=>1);
$self->is($stmt,'ALTER TABLE person MODIFY per_geburtstag NOT NULL');
# PostgreSQL
$sql = Prty::Sql->new('PostgreSQL');
$stmt = $sql->modifyColumn('person','per_geburtstag',notNull=>1);
$self->is($stmt,
'ALTER TABLE person ALTER COLUMN per_geburtstag SET NOT NULL');
}
# -----------------------------------------------------------------------------
sub test_renameColumn : Test(2) {
my $self = shift;
# Oracle
my $sql = Prty::Sql->new('Oracle');
my $stmt = $sql->renameColumn('person','per_name','per_nachname');
# is $stmt,'ALTER TABLE person RENAME COLUMN per_name TO per_nachname';
$self->isTest($stmt,
'ALTER TABLE person RENAME COLUMN per_name TO per_nachname');
# PostgreSQL
$sql = Prty::Sql->new('PostgreSQL');
$stmt = $sql->renameColumn('person','per_name','per_nachname');
$self->isTest($stmt,
'ALTER TABLE person RENAME COLUMN per_name TO per_nachname');
}
# -----------------------------------------------------------------------------
sub test_addPrimaryKeyConstraint : Test(3) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->addPrimaryKeyConstraint('tab1',['col1','col2']);
$self->like($stmt,qr/ALTER TABLE tab1/);
$self->like($stmt,qr/CONSTRAINT tab1_PK/);
$self->like($stmt,qr/PRIMARY KEY \(col1, col2\)/);
}
# -----------------------------------------------------------------------------
sub test_addForeignKeyConstraint : Test(6) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->addForeignKeyConstraint('tab1',['col1','col2'],'tab2',
-constraintName=>'tab1_tab2_FK',
-defer=>1,
-onDelete=>'cascade',
);
$self->like($stmt,qr/ALTER TABLE tab1 ADD/);
$self->like($stmt,qr/CONSTRAINT tab1_tab2_FK/);
$self->like($stmt,qr/FOREIGN KEY \(col1, col2\)/);
$self->like($stmt,qr/REFERENCES tab2/);
$self->like($stmt,qr/ON DELETE CASCADE/);
$self->like($stmt,qr/DEFERRABLE INITIALLY DEFERRED/);
}
# -----------------------------------------------------------------------------
sub test_addNotNullConstraint : Test(3) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->addNotNullConstraint('tab1','col1');
$self->like($stmt,qr/ALTER TABLE tab1/);
$self->like($stmt,qr/ALTER COLUMN col1/);
$self->like($stmt,qr/SET NOT NULL/);
}
# -----------------------------------------------------------------------------
sub test_addCheckConstraint : Test(3) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->addCheckConstraint('tab1','col1 > col2');
$self->like($stmt,qr/ALTER TABLE tab1/);
$self->like($stmt,qr/CONSTRAINT tab1_CK/);
$self->like($stmt,qr/CHECK \(col1 > col2\)/);
}
# -----------------------------------------------------------------------------
sub test_addUniqueConstraint : Test(3) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->addUniqueConstraint('tab1',['col1','col2']);
$self->like($stmt,qr/ALTER TABLE tab1/);
$self->like($stmt,qr/CONSTRAINT tab1_UQ_col1_col2/);
$self->like($stmt,qr/UNIQUE \(col1, col2\)/);
}
# -----------------------------------------------------------------------------
sub test_createIndex : Test(3) {
my $self = shift;
# PostgreSQL
my $sql = Prty::Sql->new('PostgreSQL');
my $stmt = $sql->createIndex('tab1',['col1','col2']);
( run in 1.804 second using v1.01-cache-2.11-cpan-f56aa216473 )