Mercurial > pub > Impl
comparison Lib/IMPL/SQL/Schema/Table.pm @ 271:56364d0c4b4f
+IMPL::SQL::Schema::MySQL: added basic support for MySQL
| author | cin |
|---|---|
| date | Mon, 28 Jan 2013 02:43:14 +0400 |
| parents | dacfe7c0311a |
| children | 4ddb27ff4a0b |
comparison
equal
deleted
inserted
replaced
| 270:3f59fd828d5f | 271:56364d0c4b4f |
|---|---|
| 33 | 33 |
| 34 if ($args{columns}) { | 34 if ($args{columns}) { |
| 35 die new IMPL::InvalidOperationException('A columns property should be a reference to an array') unless ref $args{columns} eq 'ARRAY'; | 35 die new IMPL::InvalidOperationException('A columns property should be a reference to an array') unless ref $args{columns} eq 'ARRAY'; |
| 36 | 36 |
| 37 $this->InsertColumn($_) foreach @{$args{columns}}; | 37 $this->InsertColumn($_) foreach @{$args{columns}}; |
| 38 } | |
| 39 | |
| 40 if ($args{constraints}) { | |
| 41 die new IMPL::InvalidOperationException('A constraints property should be a reference to an array') unless ref $args{constraints} eq 'ARRAY'; | |
| 42 | |
| 43 $this->AddConstraint($_) foreach @{$args{constraints}}; | |
| 44 } | 38 } |
| 45 } | 39 } |
| 46 | 40 |
| 47 sub InsertColumn { | 41 sub InsertColumn { |
| 48 my ($this,$column,$index) = @_; | 42 my ($this,$column,$index) = @_; |
| 179 my ($type,$params) = @_; | 173 my ($type,$params) = @_; |
| 180 | 174 |
| 181 $type = IMPL::SQL::Schema::Constraint->ResolveAlias($type) or | 175 $type = IMPL::SQL::Schema::Constraint->ResolveAlias($type) or |
| 182 die new IMPL::Exception("Can't resolve a constraint alias",$_[0]); | 176 die new IMPL::Exception("Can't resolve a constraint alias",$_[0]); |
| 183 | 177 |
| 178 $params = {%{$params}}; | |
| 179 | |
| 184 $params->{table} = $this; | 180 $params->{table} = $this; |
| 185 | 181 |
| 186 $this->AddConstraint($type->new(%$params)); | 182 $this->AddConstraint($type->new(%$params)); |
| 187 } else { | 183 } else { |
| 188 die new IMPL::Exception("Wrong arguments number",scalar(@_)); | 184 die new IMPL::Exception("Wrong arguments number",scalar(@_)); |
