Bivio::SQL::Constraint
# Copyright (c) 1999-2009 bivio Software, Inc. All rights reserved.
# $Id$
package Bivio::SQL::Constraint;
use strict;
use Bivio::Base 'Type.Enum';
my($_TE) = b_use('Bivio::TypeError');
my($_E) = b_use('Type.Enum');
__PACKAGE__->compile([
NONE => [0],
PRIMARY_KEY => [1],
NOT_NULL => [2],
NOT_NULL_UNIQUE => [3],
NOT_ZERO_ENUM => [4],
IS_SPECIFIED => [5],
]);
sub check_value {
my($self, $type, $value) = @_;
return
if $self->eq_none;
return $_TE->NULL
unless defined($value);
if ($self->equals_by_name(qw(NOT_ZERO_ENUM IS_SPECIFIED))) {
return $_TE->UNSPECIFIED
unless $type->is_specified($value);
}
return;
}
1;