X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FMySQL.pm;h=46085e33b0c1e86527a83f00cf9e212f66a221cd;hb=HEAD;hp=df63744d7586118ffa4f75151afc0ec9b389ad75;hpb=da93ce6850901652d43fa1033a1ea58fa82230b4;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Parser/MySQL.pm b/lib/SQL/Translator/Parser/MySQL.pm index df63744..46085e3 100644 --- a/lib/SQL/Translator/Parser/MySQL.pm +++ b/lib/SQL/Translator/Parser/MySQL.pm @@ -132,7 +132,7 @@ More information about the MySQL comment-syntax: L +expr : /[^)]* \( [^)]+ \) [^)]*/x # parens, balanced one deep + | /[^)]+/ + +check_def : check_def_begin '(' expr ')' + { + $return = { + supertype => 'constraint', + type => 'check', + name => $item[1], + expression => $item[3], + } + } + +check_def_begin : /constraint/i /check/i NAME + { $return = $item[3] } + | + /constraint/i NAME /check/i + { $return = $item[2] } + | + /constraint/i /check/i + { $return = '' } + foreign_key_def : foreign_key_def_begin parens_field_list reference_definition { $return = { @@ -1017,6 +1045,7 @@ sub parse { name => $cdata->{'name'}, type => $cdata->{'type'}, fields => $cdata->{'fields'}, + expression => $cdata->{'expression'}, reference_table => $cdata->{'reference_table'}, reference_fields => $cdata->{'reference_fields'}, match_type => $cdata->{'match_type'} || '',