Mercurial > pub > Impl
view Lib/IMPL/SQL/Schema/Type.pm @ 249:0057f48f7945
fixed simple auth package to work with utf8 strings
author | sergey |
---|---|
date | Tue, 06 Nov 2012 20:00:57 +0400 |
parents | 5c82eec23bb6 |
children | 4ddb27ff4a0b |
line wrap: on
line source
use strict; use warnings; package IMPL::SQL::Schema::Type; use parent qw(IMPL::Object IMPL::Object::Autofill); use IMPL::lang qw( :declare :compare ); use IMPL::Class::Property::Direct; BEGIN { public _direct property name => PROP_GET; public _direct property maxLength => PROP_GET; public _direct property scale => PROP_GET; public _direct property unsigned => PROP_GET; public _direct property zerofill => PROP_GET; public _direct property tag => PROP_GET; } __PACKAGE__->PassThroughArgs; sub CTOR { my $this = shift; $this->{$scale} = 0 if not $this->{$scale}; } sub SameValue { my ($this,$other) = @_; return ( $this->{$name} eq $other->name and equals($this->{$maxLength},$other->{$maxLength}) and equals($this->{$scale},$other->{$scale}) ); } 1; __END__ =pod =head1 NAME C<IMPL::SQL::Schema::Type> Описывает SQL типы данных =head1 SYNOPSIS =begin code use IMPL::SQL::Schema::Type; my $varchar_t = new IMPL::SQL::Schema::Type( name => 'varchar', maxLength => 255 ); my $real_t = new IMPL::SQL::Schema::Type( name => 'float', maxLength=> 10, scale => 4); # mysql: float(10,4) =end Данный класс используется для стандатрного описания SQL типов данных. В зависимости от движка БД эти объекты могут быть представлены различными строковыми представлениями. =head1 MEMBERS =over =item C<CTOR(%props)> Конструктор, заполняет объект значениями которые были переданы в конструкторе. =item C<[get]name> Имя типа. Обязательно. =item C<[get]maxLength> Максимальная длина, используется только для типов, имеющих длину (либо переменную, либо постоянную). =item C<[get]scale> Точность, количество знаков после запятой. Используется вместе с C<maxLength>. =item C<[get]unsigned> Используется с числовыми данными, обозначает беззнаковые типы. =item C<[get]zerofill> Нестандартный атрибут дополняющий числа лидирующими нулями до C<maxLength>. =item C<[get]tag> Хеш с дополнительными опциями. =back =cut