inital SQLite grammar
Justin Hunter [Fri, 31 Jul 2009 02:56:44 +0000 (19:56 -0700)]
lib/SQL/Translator/Grammar/SQLite.pm [new file with mode: 0644]

diff --git a/lib/SQL/Translator/Grammar/SQLite.pm b/lib/SQL/Translator/Grammar/SQLite.pm
new file mode 100644 (file)
index 0000000..187e1ab
--- /dev/null
@@ -0,0 +1,17594 @@
+package SQL::Translator::Grammar::SQLite;
+# -------------------------------------------------------------------
+# Copyright (C) 2002-2009 SQLFairy Authors
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307  USA
+# -------------------------------------------------------------------
+
+=head1 NAME 
+
+SQL::Translator::Grammar::SQLite - grammar for SQLite
+
+=head1 DESCRIPTION
+
+This is a grammar for parsing CREATE statements for SQLite as 
+described here:
+
+    http://www.sqlite.org/lang.html
+
+CREATE INDEX
+
+sql-statement ::=
+    CREATE [TEMP | TEMPORARY] [UNIQUE] INDEX index-name 
+     ON [database-name .] table-name ( column-name [, column-name]* )
+     [ ON CONFLICT conflict-algorithm ]
+
+column-name ::=
+    name [ ASC | DESC ]
+
+CREATE TABLE
+
+sql-command ::=
+    CREATE [TEMP | TEMPORARY] TABLE table-name (
+        column-def [, column-def]*
+        [, constraint]*
+     )
+
+sql-command ::=
+    CREATE [TEMP | TEMPORARY] TABLE table-name AS select-statement
+
+column-def ::=
+    name [type] [[CONSTRAINT name] column-constraint]*
+
+type ::=
+    typename |
+     typename ( number ) |
+     typename ( number , number )
+
+column-constraint ::=
+    NOT NULL [ conflict-clause ] |
+    PRIMARY KEY [sort-order] [ conflict-clause ] |
+    UNIQUE [ conflict-clause ] |
+    CHECK ( expr ) [ conflict-clause ] |
+    DEFAULT value
+
+constraint ::=
+    PRIMARY KEY ( name [, name]* ) [ conflict-clause ]|
+    UNIQUE ( name [, name]* ) [ conflict-clause ] |
+    CHECK ( expr ) [ conflict-clause ]
+
+conflict-clause ::=
+    ON CONFLICT conflict-algorithm
+
+CREATE TRIGGER
+
+sql-statement ::=
+    CREATE [TEMP | TEMPORARY] TRIGGER trigger-name [ BEFORE | AFTER ]
+    database-event ON [database-name .] table-name
+    trigger-action
+
+sql-statement ::=
+    CREATE [TEMP | TEMPORARY] TRIGGER trigger-name INSTEAD OF
+    database-event ON [database-name .] view-name
+    trigger-action
+
+database-event ::=
+    DELETE | 
+    INSERT | 
+    UPDATE | 
+    UPDATE OF column-list
+
+trigger-action ::=
+    [ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN expression ] 
+        BEGIN 
+            trigger-step ; [ trigger-step ; ]*
+        END
+
+trigger-step ::=
+    update-statement | insert-statement | 
+    delete-statement | select-statement
+
+CREATE VIEW
+
+sql-command ::=
+    CREATE [TEMP | TEMPORARY] VIEW view-name AS select-statement
+
+ON CONFLICT clause
+
+    conflict-clause ::=
+    ON CONFLICT conflict-algorithm
+
+    conflict-algorithm ::=
+    ROLLBACK | ABORT | FAIL | IGNORE | REPLACE
+
+expression
+
+expr ::=
+    expr binary-op expr |
+    expr like-op expr |
+    unary-op expr |
+    ( expr ) |
+    column-name |
+    table-name . column-name |
+    database-name . table-name . column-name |
+    literal-value |
+    function-name ( expr-list | * ) |
+    expr (+) |
+    expr ISNULL |
+    expr NOTNULL |
+    expr [NOT] BETWEEN expr AND expr |
+    expr [NOT] IN ( value-list ) |
+    expr [NOT] IN ( select-statement ) |
+    ( select-statement ) |
+    CASE [expr] ( WHEN expr THEN expr )+ [ELSE expr] END
+
+like-op::=
+    LIKE | GLOB | NOT LIKE | NOT GLOB
+
+=cut
+
+use Parse::RecDescent;
+
+{ my $ERRORS;
+
+
+package Parse::RecDescent::SQL::Translator::Grammar::SQLite;
+use strict;
+use vars qw($skip $AUTOLOAD  );
+$skip = '\s*';
+    my ( %tables, $table_order, @table_comments, @views, @triggers );
+;
+
+
+{
+local $SIG{__WARN__} = sub {0};
+# PRETEND TO BE IN Parse::RecDescent NAMESPACE
+*Parse::RecDescent::SQL::Translator::Grammar::SQLite::AUTOLOAD = sub
+{
+       no strict 'refs';
+       $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Grammar::SQLite/Parse::RecDescent/;
+       goto &{$AUTOLOAD};
+}
+}
+
+push @Parse::RecDescent::SQL::Translator::Grammar::SQLite::ISA, 'Parse::RecDescent';
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::WORD
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"WORD"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [WORD]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{WORD},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{WORD},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{WORD});
+               %item = (__RULE__ => q{WORD});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{WORD},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w+)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{WORD},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{WORD},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{WORD},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{WORD},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{WORD},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::statement_body
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"statement_body"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [statement_body]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{statement_body},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [string]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement_body});
+               %item = (__RULE__ => q{statement_body});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [string]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement_body},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [string]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement_body},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [string]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{string}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [string]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [nonstring]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement_body});
+               %item = (__RULE__ => q{statement_body});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [nonstring]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement_body},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::nonstring($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [nonstring]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement_body},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [nonstring]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{nonstring}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [nonstring]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{statement_body},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{statement_body},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{statement_body},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{statement_body},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::for_each
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"for_each"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [for_each]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{for_each},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/FOR EACH ROW/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{for_each},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{for_each});
+               %item = (__RULE__ => q{for_each});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{for_each},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/FOR EACH ROW/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{for_each},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{for_each},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{for_each},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{for_each},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{for_each},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_def
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"column_def"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [column_def]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{column_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [comment NAME type column_constraint]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_def});
+               %item = (__RULE__ => q{column_def});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [comment]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::comment, 0, 100000000, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [comment]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [comment]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{comment(s?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{NAME})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NAME}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [type]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{type})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::type, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [type]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [type]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{type(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [column_constraint]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{column_constraint})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_constraint, 0, 100000000, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [column_constraint]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [column_constraint]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{column_constraint(s?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $column = {
+            supertype      => 'column',
+            name           => $item[2],
+            data_type      => $item[3][0]->{'type'},
+            size           => $item[3][0]->{'size'},
+            is_nullable    => 1,
+            is_primary_key => 0,
+            is_unique      => 0,
+            check          => '',
+            default        => undef,
+            constraints    => $item[4],
+            comments       => $item[1],
+        };
+
+
+        for my $c ( @{ $item[4] } ) {
+            if ( $c->{'type'} eq 'not_null' ) {
+                $column->{'is_nullable'} = 0;
+            }
+            elsif ( $c->{'type'} eq 'primary_key' ) {
+                $column->{'is_primary_key'} = 1;
+            }
+            elsif ( $c->{'type'} eq 'unique' ) {
+                $column->{'is_unique'} = 1;
+            }
+            elsif ( $c->{'type'} eq 'check' ) {
+                $column->{'check'} = $c->{'expression'};
+            }
+            elsif ( $c->{'type'} eq 'default' ) {
+                $column->{'default'} = $c->{'value'};
+            }
+        }
+
+        $column;
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [comment NAME type column_constraint]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{column_def},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{column_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{column_def},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{column_def},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::constraint_def
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"constraint_def"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [constraint_def]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [PRIMARY_KEY parens_field_list conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{constraint_def});
+               %item = (__RULE__ => q{constraint_def});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [PRIMARY_KEY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::PRIMARY_KEY($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [PRIMARY_KEY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [PRIMARY_KEY]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{PRIMARY_KEY}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [parens_field_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{parens_field_list})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_field_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [parens_field_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [parens_field_list]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{parens_field_list}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return         = {
+            supertype   => 'constraint',
+            type        => 'primary_key',
+            columns      => $item[2],
+            on_conflict => $item[3][0],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [PRIMARY_KEY parens_field_list conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [UNIQUE parens_field_list conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{constraint_def});
+               %item = (__RULE__ => q{constraint_def});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [UNIQUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::UNIQUE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [UNIQUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [UNIQUE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{UNIQUE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [parens_field_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{parens_field_list})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_field_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [parens_field_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [parens_field_list]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{parens_field_list}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return         = {
+            supertype   => 'constraint',
+            type        => 'unique',
+            columns      => $item[2],
+            on_conflict => $item[3][0],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [UNIQUE parens_field_list conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CHECK_C '(' expr ')' conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{constraint_def});
+               %item = (__RULE__ => q{constraint_def});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CHECK_C]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CHECK_C($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CHECK_C]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CHECK_C]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CHECK_C}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{'('})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [expr]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{expr})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expr]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{expr}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: [')']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{')'})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{constraint_def},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{constraint_def},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return         = {
+            supertype   => 'constraint',
+            type        => 'check',
+            expression  => $item[3],
+            on_conflict => $item[5][0],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CHECK_C '(' expr ')' conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{constraint_def},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{constraint_def},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{constraint_def},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{constraint_def},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::string
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"string"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [string]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{string},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/'(\\\\.|''|[^\\\\\\'])*'/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{string},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{string});
+               %item = (__RULE__ => q{string});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/'(\\\\.|''|[^\\\\\\'])*'/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{string},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:'(\\.|''|[^\\\'])*')//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/'(\\\\.|''|[^\\\\\\'])*'/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{string},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{string},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{string},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{string},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{string},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_algorigthm
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"conflict_algorigthm"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [conflict_algorigthm]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{conflict_algorigthm},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(rollback|abort|fail|ignore|replace)/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{conflict_algorigthm},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{conflict_algorigthm});
+               %item = (__RULE__ => q{conflict_algorigthm});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(rollback|abort|fail|ignore|replace)/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{conflict_algorigthm},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(rollback|abort|fail|ignore|replace))//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(rollback|abort|fail|ignore|replace)/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{conflict_algorigthm},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{conflict_algorigthm},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{conflict_algorigthm},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{conflict_algorigthm},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{conflict_algorigthm},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::INDEX
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"INDEX"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [INDEX]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{INDEX},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/index/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{INDEX},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{INDEX});
+               %item = (__RULE__ => q{INDEX});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/index/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{INDEX},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:index)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/index/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{INDEX},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{INDEX},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{INDEX},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{INDEX},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{INDEX},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_drop
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"view_drop"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [view_drop]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{view_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [VIEW if_exists view_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{view_drop});
+               %item = (__RULE__ => q{view_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [VIEW]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{view_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::VIEW($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VIEW]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{view_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [VIEW]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{VIEW}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [if_exists]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{view_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{if_exists})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::if_exists, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [if_exists]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{view_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [if_exists]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{if_exists(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{view_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{view_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{view_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{view_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [VIEW if_exists view_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{view_drop},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{view_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{view_drop},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{view_drop},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::statement
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"statement"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [statement]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [begin_transaction]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [begin_transaction]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::begin_transaction($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [begin_transaction]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [begin_transaction]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{begin_transaction}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [begin_transaction]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [commit]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [commit]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::commit($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [commit]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [commit]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{commit}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [commit]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [drop]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [drop]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::drop($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [drop]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [drop]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{drop}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [drop]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [comment]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[3];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [comment]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::comment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [comment]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [comment]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{comment}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [comment]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [create]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[4];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [create]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::create($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [create]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [create]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{create}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [create]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [<error...>]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[5];
+               
+               my $_savetext;
+               @item = (q{statement});
+               %item = (__RULE__ => q{statement});
+               my $repcount = 0;
+
+
+               
+
+               Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
+                                       Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE; 
+               $_tok = do { if (1) { do {
+               my $rule = $item[0];
+                  $rule =~ s/_/ /g;
+               #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
+               push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
+               } unless  $_noactions; undef } else {0} };
+               if (defined($_tok))
+               {
+                       Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
+                                               . $_tok . q{])},
+                                               Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               }
+               else
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match directive>>},
+                                               Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               }
+               
+               last unless defined $_tok;
+               push @item, $item{__DIRECTIVE1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{statement},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{statement},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{statement},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::field_name
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"field_name"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [field_name]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{field_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [NAME]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{field_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{field_name});
+               %item = (__RULE__ => q{field_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{field_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{field_name},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{field_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NAME}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{field_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{field_name},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{field_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{field_name},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{field_name},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::eofile
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"eofile"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [eofile]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{eofile},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/^\\Z/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{eofile},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{eofile});
+               %item = (__RULE__ => q{eofile});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/^\\Z/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{eofile},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\Z)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/^\\Z/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{eofile},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{eofile},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{eofile},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{eofile},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{eofile},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::startrule
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"startrule"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [startrule]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{startrule},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [statement eofile]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{startrule});
+               %item = (__RULE__ => q{startrule});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [statement]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{startrule},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::statement, 1, 100000000, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [statement]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{startrule},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [statement]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{statement(s)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [eofile]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{startrule},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{eofile})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::eofile($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [eofile]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{startrule},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [eofile]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{eofile}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 
+    $return      = {
+        tables   => \%tables, 
+        views    => \@views,
+        triggers => \@triggers,
+    }
+};
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [statement eofile]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{startrule},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{startrule},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{startrule},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{startrule},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRANSACTION
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"TRANSACTION"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [TRANSACTION]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{TRANSACTION},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/transaction/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{TRANSACTION},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{TRANSACTION});
+               %item = (__RULE__ => q{TRANSACTION});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/transaction/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{TRANSACTION},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:transaction)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/transaction/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{TRANSACTION},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{TRANSACTION},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{TRANSACTION},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{TRANSACTION},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{TRANSACTION},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::VALUE
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"VALUE"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [VALUE]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{VALUE},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/[-+]?\\.?\\d+(?:[eE]\\d+)?/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{VALUE});
+               %item = (__RULE__ => q{VALUE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/[-+]?\\.?\\d+(?:[eE]\\d+)?/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[-+]?\.?\d+(?:[eE]\d+)?)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $item[1] };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/[-+]?\\.?\\d+(?:[eE]\\d+)?/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/'.*?'/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{VALUE});
+               %item = (__RULE__ => q{VALUE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/'.*?'/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:'.*?')//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 
+        # remove leading/trailing quotes 
+        my $val = $item[1];
+        $val    =~ s/^['"]|['"]$//g;
+        $return = $val;
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/'.*?'/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/NULL/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{VALUE});
+               %item = (__RULE__ => q{VALUE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/NULL/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 'NULL' };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/NULL/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/CURRENT_TIMESTAMP/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[3];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{VALUE});
+               %item = (__RULE__ => q{VALUE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT_TIMESTAMP/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT_TIMESTAMP)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 'CURRENT_TIMESTAMP' };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT_TIMESTAMP/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{VALUE},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{VALUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{VALUE},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{VALUE},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::END_C
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"END_C"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [END_C]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{END_C},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/end/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{END_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{END_C});
+               %item = (__RULE__ => q{END_C});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/end/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{END_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:end)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/end/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{END_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{END_C},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{END_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{END_C},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{END_C},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::sort_order
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"sort_order"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [sort_order]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{sort_order},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(ASC|DESC)/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{sort_order},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{sort_order});
+               %item = (__RULE__ => q{sort_order});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(ASC|DESC)/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{sort_order},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(ASC|DESC))//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(ASC|DESC)/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{sort_order},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{sort_order},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{sort_order},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{sort_order},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{sort_order},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::before_or_after
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"before_or_after"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [before_or_after]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{before_or_after},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(before|after)/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{before_or_after},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{before_or_after});
+               %item = (__RULE__ => q{before_or_after});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(before|after)/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{before_or_after},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(before|after))//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{before_or_after},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $return = lc $1 };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(before|after)/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{before_or_after},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{before_or_after},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{before_or_after},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{before_or_after},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{before_or_after},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::tbl_drop
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"tbl_drop"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [tbl_drop]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{tbl_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [TABLE <commit> table_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{tbl_drop});
+               %item = (__RULE__ => q{tbl_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [TABLE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{tbl_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::TABLE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TABLE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{tbl_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [TABLE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TABLE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               
+
+               Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
+                                       Parse::RecDescent::_tracefirst($text),
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE; 
+               $_tok = do { $commit = 1 };
+               if (defined($_tok))
+               {
+                       Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
+                                               . $_tok . q{])},
+                                               Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               }
+               else
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match directive>>},
+                                               Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               }
+               
+               last unless defined $_tok;
+               push @item, $item{__DIRECTIVE1__}=$_tok;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{tbl_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{table_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{tbl_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{table_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [TABLE <commit> table_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{tbl_drop},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{tbl_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{tbl_drop},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{tbl_drop},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::trg_drop
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"trg_drop"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [trg_drop]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{trg_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [TRIGGER if_exists trigger_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{trg_drop});
+               %item = (__RULE__ => q{trg_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trg_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trg_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TRIGGER}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [if_exists]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trg_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{if_exists})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::if_exists, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [if_exists]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trg_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [if_exists]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{if_exists(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trg_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{trigger_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trg_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{trigger_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [TRIGGER if_exists trigger_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{trg_drop},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{trg_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{trg_drop},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{trg_drop},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::_alternation_1_of_production_1_of_rule_drop
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_drop"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_drop]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [tbl_drop]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{_alternation_1_of_production_1_of_rule_drop});
+               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [tbl_drop]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::tbl_drop($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [tbl_drop]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [tbl_drop]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{tbl_drop}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [tbl_drop]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [view_drop]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{_alternation_1_of_production_1_of_rule_drop});
+               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [view_drop]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_drop($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_drop]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [view_drop]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{view_drop}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [view_drop]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [trg_drop]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{_alternation_1_of_production_1_of_rule_drop});
+               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [trg_drop]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::trg_drop($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trg_drop]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{_alternation_1_of_production_1_of_rule_drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [trg_drop]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{trg_drop}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [trg_drop]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{_alternation_1_of_production_1_of_rule_drop},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{_alternation_1_of_production_1_of_rule_drop},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_name
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"view_name"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [view_name]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{view_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [qualified_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{view_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{view_name});
+               %item = (__RULE__ => q{view_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [qualified_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{view_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::qualified_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [qualified_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{view_name},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [qualified_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{qualified_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [qualified_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{view_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{view_name},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{view_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{view_name},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{view_name},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_value_list
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"parens_value_list"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [parens_value_list]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{parens_value_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: ['(' <leftop: VALUE /,/ VALUE> ')']},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{parens_value_list});
+               %item = (__RULE__ => q{parens_value_list});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying operator: [<leftop: VALUE /,/ VALUE>]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{parens_value_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{<leftop: VALUE /,/ VALUE>})->at($text);
+
+               $_tok = undef;
+               OPLOOP: while (1)
+               {
+                 $repcount = 0;
+                 my  @item;
+                 
+                 # MATCH LEFTARG
+                 
+               Parse::RecDescent::_trace(q{Trying subrule: [VALUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{parens_value_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{VALUE})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::VALUE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VALUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{parens_value_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [VALUE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{VALUE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+                 $repcount++;
+
+                 my $savetext = $text;
+                 my $backtrack;
+
+                 # MATCH (OP RIGHTARG)(s)
+                 while ($repcount < 100000000)
+                 {
+                       $backtrack = 0;
+                       
+               Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/,/})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+                       pop @item;
+                       if (defined $1) {push @item, $item{'VALUE(s)'}=$1; $backtrack=1;}
+                       
+               Parse::RecDescent::_trace(q{Trying subrule: [VALUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{parens_value_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{VALUE})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::VALUE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VALUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{parens_value_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [VALUE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{VALUE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+                       $savetext = $text;
+                       $repcount++;
+                 }
+                 $text = $savetext;
+                 pop @item if $backtrack;
+
+                 unless (@item) { undef $_tok; last }
+                 $_tok = [ @item ];
+                 last;
+               } 
+
+               unless ($repcount>=1)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: VALUE /,/ VALUE>]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{parens_value_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: VALUE /,/ VALUE>]<< (return value: [}
+                                         . qq{@{$_tok||[]}} . q{]},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+
+               push @item, $item{'VALUE(s)'}=$_tok||[];
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [')']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{')'})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $item[2] };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: ['(' <leftop: VALUE /,/ VALUE> ')']<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{parens_value_list},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{parens_value_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{parens_value_list},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{parens_value_list},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::commit
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"commit"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [commit]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{commit},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/commit/i SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{commit},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{commit});
+               %item = (__RULE__ => q{commit});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/commit/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{commit},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:commit)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{commit},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{commit},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{commit},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/commit/i SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{commit},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{commit},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{commit},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{commit},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{commit},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::CHECK_C
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"CHECK_C"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [CHECK_C]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{CHECK_C},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/check/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{CHECK_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{CHECK_C});
+               %item = (__RULE__ => q{CHECK_C});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/check/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{CHECK_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:check)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/check/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{CHECK_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{CHECK_C},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{CHECK_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{CHECK_C},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{CHECK_C},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::SELECT
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"SELECT"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [SELECT]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{SELECT},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/select/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{SELECT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{SELECT});
+               %item = (__RULE__ => q{SELECT});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/select/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{SELECT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:select)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/select/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{SELECT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{SELECT},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{SELECT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{SELECT},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{SELECT},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_step
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"trigger_step"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [trigger_step]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{trigger_step},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(select|delete|insert|update)/i statement_body SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{trigger_step});
+               %item = (__RULE__ => q{trigger_step});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(select|delete|insert|update)/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(select|delete|insert|update))//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [statement_body]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_step},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{statement_body})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::statement_body, 0, 100000000, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [statement_body]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_step},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [statement_body]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{statement_body(s?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_step},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_step},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = join( ' ', $item[1], join ' ', @{ $item[2] || [] } )
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(select|delete|insert|update)/i statement_body SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{trigger_step},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{trigger_step},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{trigger_step},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{trigger_step},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::table_name
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"table_name"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [table_name]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{table_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [qualified_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{table_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{table_name});
+               %item = (__RULE__ => q{table_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [qualified_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{table_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::qualified_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [qualified_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{table_name},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [qualified_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{table_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{qualified_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [qualified_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{table_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{table_name},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{table_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{table_name},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{table_name},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::type
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"type"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [type]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{type},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [WORD parens_value_list]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{type});
+               %item = (__RULE__ => q{type});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [WORD]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{type},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::WORD($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [WORD]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{type},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [WORD]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{WORD}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [parens_value_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{type},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{parens_value_list})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_value_list, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [parens_value_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{type},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [parens_value_list]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{parens_value_list(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            type => $item[1],
+            size => $item[2][0],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [WORD parens_value_list]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{type},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{type},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{type},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{type},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::NOT_NULL
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"NOT_NULL"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [NOT_NULL]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{NOT_NULL},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/not null/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{NOT_NULL},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{NOT_NULL});
+               %item = (__RULE__ => q{NOT_NULL});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/not null/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{NOT_NULL},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:not null)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/not null/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{NOT_NULL},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{NOT_NULL},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{NOT_NULL},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{NOT_NULL},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{NOT_NULL},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::TABLE
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"TABLE"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [TABLE]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{TABLE},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/table/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{TABLE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{TABLE});
+               %item = (__RULE__ => q{TABLE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/table/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{TABLE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:table)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/table/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{TABLE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{TABLE},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{TABLE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{TABLE},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{TABLE},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_name
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"trigger_name"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [trigger_name]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{trigger_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [qualified_name]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{trigger_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{trigger_name});
+               %item = (__RULE__ => q{trigger_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [qualified_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::qualified_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [qualified_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_name},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [qualified_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{qualified_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [qualified_name]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{trigger_name},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{trigger_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{trigger_name},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{trigger_name},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::instead_of
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"instead_of"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [instead_of]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{instead_of},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/instead of/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{instead_of},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{instead_of});
+               %item = (__RULE__ => q{instead_of});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/instead of/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{instead_of},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:instead of)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/instead of/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{instead_of},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{instead_of},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{instead_of},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{instead_of},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{instead_of},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::drop
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"drop"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [drop]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/drop/i tbl_drop, or view_drop, or trg_drop SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{drop});
+               %item = (__RULE__ => q{drop});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/drop/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:drop)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_drop]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{tbl_drop, or view_drop, or trg_drop})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::_alternation_1_of_production_1_of_rule_drop($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_drop]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_drop]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{_alternation_1_of_production_1_of_rule_drop}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{drop},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{drop},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/drop/i tbl_drop, or view_drop, or trg_drop SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{drop},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{drop},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{drop},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{drop},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::WHEN
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"WHEN"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [WHEN]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{WHEN},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/when/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{WHEN},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{WHEN});
+               %item = (__RULE__ => q{WHEN});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/when/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{WHEN},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:when)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/when/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{WHEN},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{WHEN},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{WHEN},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{WHEN},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{WHEN},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"TEMPORARY"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{TEMPORARY},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/temp(orary)?/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{TEMPORARY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{TEMPORARY});
+               %item = (__RULE__ => q{TEMPORARY});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/temp(orary)?/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{TEMPORARY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:temp(orary)?)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{TEMPORARY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 1 };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/temp(orary)?/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{TEMPORARY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{TEMPORARY},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{TEMPORARY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{TEMPORARY},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{TEMPORARY},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::database_event
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"database_event"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [database_event]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{database_event},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(delete|insert|update)/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{database_event});
+               %item = (__RULE__ => q{database_event});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(delete|insert|update)/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(delete|insert|update))//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(delete|insert|update)/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/update of/i column_list]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{database_event});
+               %item = (__RULE__ => q{database_event});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/update of/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:update of)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{database_event},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{column_list})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{database_event},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{column_list}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/update of/i column_list]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{database_event},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{database_event},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{database_event},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{database_event},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::definition
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"definition"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [definition]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{definition},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [constraint_def]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{definition});
+               %item = (__RULE__ => q{definition});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [constraint_def]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{definition},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::constraint_def($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [constraint_def]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{definition},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [constraint_def]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{constraint_def}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [constraint_def]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [column_def]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{definition});
+               %item = (__RULE__ => q{definition});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [column_def]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{definition},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_def($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_def]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{definition},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [column_def]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{column_def}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [column_def]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{definition},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{definition},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{definition},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{definition},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::UNIQUE
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"UNIQUE"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [UNIQUE]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{UNIQUE},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/unique/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{UNIQUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{UNIQUE});
+               %item = (__RULE__ => q{UNIQUE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/unique/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{UNIQUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:unique)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{UNIQUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { 1 };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/unique/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{UNIQUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{UNIQUE},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{UNIQUE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{UNIQUE},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{UNIQUE},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::expr
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"expr"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [expr]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{expr},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/[^)]+/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{expr},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{expr});
+               %item = (__RULE__ => q{expr});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/[^)]+/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{expr},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^)]+)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/[^)]+/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{expr},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{expr},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{expr},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{expr},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{expr},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::AS
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"AS"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [AS]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{AS},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/as/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{AS},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{AS});
+               %item = (__RULE__ => q{AS});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/as/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{AS},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:as)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/as/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{AS},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{AS},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{AS},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{AS},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{AS},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_constraint
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"column_constraint"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [column_constraint]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [NOT_NULL conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_constraint});
+               %item = (__RULE__ => q{column_constraint});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NOT_NULL]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NOT_NULL($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NOT_NULL]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NOT_NULL]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NOT_NULL}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            type => 'not_null',
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [NOT_NULL conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [PRIMARY_KEY sort_order conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_constraint});
+               %item = (__RULE__ => q{column_constraint});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [PRIMARY_KEY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::PRIMARY_KEY($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [PRIMARY_KEY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [PRIMARY_KEY]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{PRIMARY_KEY}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [sort_order]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{sort_order})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::sort_order, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [sort_order]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [sort_order]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{sort_order(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            type        => 'primary_key',
+            sort_order  => $item[2][0],
+            on_conflict => $item[2][0], 
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [PRIMARY_KEY sort_order conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [UNIQUE conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_constraint});
+               %item = (__RULE__ => q{column_constraint});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [UNIQUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::UNIQUE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [UNIQUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [UNIQUE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{UNIQUE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            type        => 'unique',
+            on_conflict => $item[2][0], 
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [UNIQUE conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CHECK_C '(' expr ')' conflict_clause]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[3];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_constraint});
+               %item = (__RULE__ => q{column_constraint});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CHECK_C]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CHECK_C($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CHECK_C]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CHECK_C]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CHECK_C}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{'('})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [expr]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{expr})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expr]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{expr}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: [')']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{')'})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            type        => 'check',
+            expression  => $item[3],
+            on_conflict => $item[5][0], 
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CHECK_C '(' expr ')' conflict_clause]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [DEFAULT VALUE]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[4];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_constraint});
+               %item = (__RULE__ => q{column_constraint});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [DEFAULT]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::DEFAULT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [DEFAULT]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [DEFAULT]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{DEFAULT}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [VALUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_constraint},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{VALUE})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::VALUE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VALUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_constraint},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [VALUE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{VALUE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return   = {
+            type  => 'default',
+            value => $item[2],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [DEFAULT VALUE]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{column_constraint},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{column_constraint},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{column_constraint},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{column_constraint},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"conflict_clause"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{conflict_clause},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/on conflict/i conflict_algorigthm]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{conflict_clause},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{conflict_clause});
+               %item = (__RULE__ => q{conflict_clause});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/on conflict/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{conflict_clause},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:on conflict)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [conflict_algorigthm]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{conflict_clause},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{conflict_algorigthm})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_algorigthm($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [conflict_algorigthm]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{conflict_clause},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [conflict_algorigthm]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{conflict_clause},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_algorigthm}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/on conflict/i conflict_algorigthm]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{conflict_clause},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{conflict_clause},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{conflict_clause},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{conflict_clause},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{conflict_clause},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_action
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"trigger_action"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [trigger_action]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [for_each when BEGIN_C trigger_step END_C]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{trigger_action});
+               %item = (__RULE__ => q{trigger_action});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [for_each]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::for_each, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [for_each]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_action},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [for_each]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{for_each(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [when]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{when})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::when, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [when]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_action},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [when]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{when(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [BEGIN_C]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{BEGIN_C})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::BEGIN_C($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [BEGIN_C]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_action},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [BEGIN_C]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{BEGIN_C}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [trigger_step]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{trigger_step})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_step, 1, 100000000, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [trigger_step]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_action},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [trigger_step]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{trigger_step(s)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [END_C]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{trigger_action},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{END_C})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::END_C($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [END_C]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{trigger_action},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [END_C]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{END_C}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = {
+            for_each => $item[1][0],
+            when     => $item[2][0],
+            steps    => $item[4],
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [for_each when BEGIN_C trigger_step END_C]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{trigger_action},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{trigger_action},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{trigger_action},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{trigger_action},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::nonstring
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"nonstring"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [nonstring]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{nonstring},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/[^;\\'"]+/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{nonstring},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{nonstring});
+               %item = (__RULE__ => q{nonstring});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/[^;\\'"]+/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{nonstring},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^;\'"]+)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/[^;\\'"]+/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{nonstring},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{nonstring},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{nonstring},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{nonstring},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{nonstring},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_list
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"column_list"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [column_list]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{column_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [<leftop: field_name /,/ field_name>]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{column_list});
+               %item = (__RULE__ => q{column_list});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying operator: [<leftop: field_name /,/ field_name>]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{})->at($text);
+
+               $_tok = undef;
+               OPLOOP: while (1)
+               {
+                 $repcount = 0;
+                 my  @item;
+                 
+                 # MATCH LEFTARG
+                 
+               Parse::RecDescent::_trace(q{Trying subrule: [field_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{field_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::field_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [field_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [field_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{field_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+                 $repcount++;
+
+                 my $savetext = $text;
+                 my $backtrack;
+
+                 # MATCH (OP RIGHTARG)(s)
+                 while ($repcount < 100000000)
+                 {
+                       $backtrack = 0;
+                       
+               Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/,/})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+                       pop @item;
+                       if (defined $1) {push @item, $item{'field_name(s)'}=$1; $backtrack=1;}
+                       
+               Parse::RecDescent::_trace(q{Trying subrule: [field_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{column_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{field_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::field_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [field_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [field_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{field_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+                       $savetext = $text;
+                       $repcount++;
+                 }
+                 $text = $savetext;
+                 pop @item if $backtrack;
+
+                 unless (@item) { undef $_tok; last }
+                 $_tok = [ @item ];
+                 last;
+               } 
+
+               unless ($repcount>=1)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: field_name /,/ field_name>]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{column_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: field_name /,/ field_name>]<< (return value: [}
+                                         . qq{@{$_tok||[]}} . q{]},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+
+               push @item, $item{'field_name(s)'}=$_tok||[];
+
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [<leftop: field_name /,/ field_name>]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{column_list},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{column_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{column_list},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{column_list},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"SEMICOLON"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{SEMICOLON},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [';']},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{SEMICOLON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{SEMICOLON});
+               %item = (__RULE__ => q{SEMICOLON});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [';']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{SEMICOLON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\;//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [';']<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{SEMICOLON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{SEMICOLON},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{SEMICOLON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{SEMICOLON},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{SEMICOLON},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::create
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"create"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [create]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CREATE TEMPORARY UNIQUE INDEX WORD ON table_name parens_field_list conflict_clause SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{create});
+               %item = (__RULE__ => q{create});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CREATE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TEMPORARY})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TEMPORARY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TEMPORARY]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TEMPORARY(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [UNIQUE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{UNIQUE})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::UNIQUE, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [UNIQUE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [UNIQUE]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{UNIQUE(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [INDEX]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{INDEX})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::INDEX($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [INDEX]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [INDEX]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{INDEX}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [WORD]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{WORD})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::WORD($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [WORD]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [WORD]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{WORD}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [ON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{ON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::ON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [ON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{ON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{table_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{table_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [parens_field_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{parens_field_list})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_field_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [parens_field_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [parens_field_list]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{parens_field_list}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [conflict_clause]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{conflict_clause})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::conflict_clause, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [conflict_clause]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [conflict_clause]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{conflict_clause(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $db_name    = $item[7]->{'db_name'} || '';
+        my $table_name = $item[7]->{'name'};
+
+        my $index        =  { 
+            name         => $item[5],
+            columns       => $item[8],
+            on_conflict  => $item[9][0],
+            is_temporary => $item[2][0] ? 1 : 0,
+        };
+
+        my $is_unique = $item[3][0];
+
+        if ( $is_unique ) {
+            $index->{'type'} = 'unique';
+            push @{ $tables{ $table_name }{'constraints'} }, $index;
+        }
+        else {
+            push @{ $tables{ $table_name }{'indices'} }, $index;
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CREATE TEMPORARY UNIQUE INDEX WORD ON table_name parens_field_list conflict_clause SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CREATE TEMPORARY TABLE table_name '(' <leftop: definition /,/ definition> ')' SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{create});
+               %item = (__RULE__ => q{create});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CREATE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TEMPORARY})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TEMPORARY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TEMPORARY]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TEMPORARY(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [TABLE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{TABLE})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::TABLE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TABLE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [TABLE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TABLE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{table_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{table_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{'('})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying operator: [<leftop: definition /,/ definition>]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{<leftop: definition /,/ definition>})->at($text);
+
+               $_tok = undef;
+               OPLOOP: while (1)
+               {
+                 $repcount = 0;
+                 my  @item;
+                 
+                 # MATCH LEFTARG
+                 
+               Parse::RecDescent::_trace(q{Trying subrule: [definition]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{definition})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::definition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [definition]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [definition]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{definition}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+                 $repcount++;
+
+                 my $savetext = $text;
+                 my $backtrack;
+
+                 # MATCH (OP RIGHTARG)(s)
+                 while ($repcount < 100000000)
+                 {
+                       $backtrack = 0;
+                       
+               Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/,/})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+                       pop @item;
+                       if (defined $1) {push @item, $item{'definition(s)'}=$1; $backtrack=1;}
+                       
+               Parse::RecDescent::_trace(q{Trying subrule: [definition]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{definition})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::definition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [definition]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [definition]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{definition}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+                       $savetext = $text;
+                       $repcount++;
+                 }
+                 $text = $savetext;
+                 pop @item if $backtrack;
+
+                 unless (@item) { undef $_tok; last }
+                 $_tok = [ @item ];
+                 last;
+               } 
+
+               unless ($repcount>=1)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: definition /,/ definition>]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: definition /,/ definition>]<< (return value: [}
+                                         . qq{@{$_tok||[]}} . q{]},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+
+               push @item, $item{'definition(s)'}=$_tok||[];
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [')']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{')'})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $db_name    = $item[4]->{'db_name'} || '';
+        my $table_name = $item[4]->{'name'};
+
+        $tables{ $table_name }{'name'}         = $table_name;
+        $tables{ $table_name }{'is_temporary'} = $item[2][0] ? 1 : 0;
+        $tables{ $table_name }{'order'}        = ++$table_order;
+
+        for my $def ( @{ $item[6] } ) {
+            if ( $def->{'supertype'} eq 'column' ) {
+                push @{ $tables{ $table_name }{'columns'} }, $def;
+            }
+            elsif ( $def->{'supertype'} eq 'constraint' ) {
+                push @{ $tables{ $table_name }{'constraints'} }, $def;
+            }
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CREATE TEMPORARY TABLE table_name '(' <leftop: definition /,/ definition> ')' SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CREATE TEMPORARY TRIGGER NAME before_or_after database_event ON table_name trigger_action SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[2];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{create});
+               %item = (__RULE__ => q{create});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CREATE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TEMPORARY})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TEMPORARY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TEMPORARY]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TEMPORARY(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{TRIGGER})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TRIGGER}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{NAME})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NAME}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [before_or_after]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{before_or_after})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::before_or_after, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [before_or_after]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [before_or_after]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{before_or_after(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [database_event]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{database_event})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::database_event($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [database_event]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [database_event]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{database_event}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [ON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{ON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::ON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [ON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{ON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{table_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{table_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [trigger_action]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{trigger_action})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_action]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_action]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{trigger_action}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $table_name = $item[8]->{'name'};
+        push @triggers, {
+            name         => $item[4],
+            is_temporary => $item[2][0] ? 1 : 0,
+            when         => $item[5][0],
+            instead_of   => 0,
+            db_events    => [ $item[6] ],
+            action       => $item[9],
+            on_table     => $table_name,
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CREATE TEMPORARY TRIGGER NAME before_or_after database_event ON table_name trigger_action SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CREATE TEMPORARY TRIGGER NAME instead_of database_event ON view_name trigger_action]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[3];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{create});
+               %item = (__RULE__ => q{create});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CREATE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TEMPORARY})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TEMPORARY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TEMPORARY]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TEMPORARY(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{TRIGGER})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TRIGGER}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{NAME})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NAME}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [instead_of]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{instead_of})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::instead_of($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [instead_of]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [instead_of]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{instead_of}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [database_event]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{database_event})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::database_event($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [database_event]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [database_event]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{database_event}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [ON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{ON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::ON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [ON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{ON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{view_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{view_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [trigger_action]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{trigger_action})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::trigger_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_action]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_action]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{trigger_action}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $table_name = $item[8]->{'name'};
+        push @triggers, {
+            name         => $item[4],
+            is_temporary => $item[2][0] ? 1 : 0,
+            when         => undef,
+            instead_of   => 1,
+            db_events    => [ $item[6] ],
+            action       => $item[9],
+            on_table     => $table_name,
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CREATE TEMPORARY TRIGGER NAME instead_of database_event ON view_name trigger_action]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [CREATE TEMPORARY VIEW view_name AS select_statement]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[4];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{create});
+               %item = (__RULE__ => q{create});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{CREATE}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TEMPORARY]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TEMPORARY})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TEMPORARY, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TEMPORARY]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TEMPORARY]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TEMPORARY(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [VIEW]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{VIEW})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::VIEW($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VIEW]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [VIEW]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{VIEW}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{view_name})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_name]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{view_name}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [AS]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{AS})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::AS($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [AS]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [AS]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{AS}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [select_statement]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{create},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{select_statement})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::select_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [select_statement]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{create},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [select_statement]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{select_statement}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        push @views, {
+            name         => $item[4]->{'name'},
+            sql          => $item[6], 
+            is_temporary => $item[2][0] ? 1 : 0,
+        }
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [CREATE TEMPORARY VIEW view_name AS select_statement]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{create},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{create},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{create},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{create},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::when
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"when"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [when]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{when},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [WHEN expr]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{when});
+               %item = (__RULE__ => q{when});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [WHEN]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{when},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::WHEN($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [WHEN]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{when},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [WHEN]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{WHEN}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying subrule: [expr]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{when},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{expr})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expr]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{when},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{expr}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $item[2] };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [WHEN expr]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{when},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{when},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{when},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{when},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"NAME"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{NAME},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/'?(\\w+)'?/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{NAME},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{NAME});
+               %item = (__RULE__ => q{NAME});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/'?(\\w+)'?/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{NAME},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:'?(\w+)'?)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{NAME},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $return = $1 };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/'?(\\w+)'?/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{NAME},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{NAME},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{NAME},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{NAME},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{NAME},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::ON
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"ON"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [ON]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{ON},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/on/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{ON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{ON});
+               %item = (__RULE__ => q{ON});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/on/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{ON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:on)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/on/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{ON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{ON},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{ON},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{ON},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{ON},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::DEFAULT
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"DEFAULT"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [DEFAULT]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{DEFAULT},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/default/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{DEFAULT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{DEFAULT});
+               %item = (__RULE__ => q{DEFAULT});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/default/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{DEFAULT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:default)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/default/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{DEFAULT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{DEFAULT},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{DEFAULT},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{DEFAULT},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{DEFAULT},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::begin_transaction
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"begin_transaction"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [begin_transaction]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{begin_transaction},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/begin/i TRANSACTION SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{begin_transaction});
+               %item = (__RULE__ => q{begin_transaction});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/begin/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:begin)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying repeated subrule: [TRANSACTION]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{begin_transaction},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               $expectation->is(q{TRANSACTION})->at($text);
+               
+               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRANSACTION, 0, 1, $_noactions,$expectation,undef))) 
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [TRANSACTION]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{begin_transaction},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TRANSACTION]<< (}
+                                       . @$_tok . q{ times)},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{TRANSACTION(?)}} = $_tok;
+               push @item, $_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{begin_transaction},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{begin_transaction},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/begin/i TRANSACTION SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{begin_transaction},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{begin_transaction},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{begin_transaction},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{begin_transaction},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::TRIGGER
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"TRIGGER"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [TRIGGER]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{TRIGGER},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/trigger/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{TRIGGER},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{TRIGGER});
+               %item = (__RULE__ => q{TRIGGER});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/trigger/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{TRIGGER},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:trigger)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/trigger/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{TRIGGER},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{TRIGGER},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{TRIGGER},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{TRIGGER},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{TRIGGER},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::select_statement
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"select_statement"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [select_statement]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{select_statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [SELECT /[^;]+/ SEMICOLON]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{select_statement});
+               %item = (__RULE__ => q{select_statement});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SELECT]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{select_statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SELECT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SELECT]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{select_statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SELECT]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SELECT}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/[^;]+/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/[^;]+/})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^;]+)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [SEMICOLON]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{select_statement},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{SEMICOLON})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::SEMICOLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SEMICOLON]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{select_statement},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [SEMICOLON]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{SEMICOLON}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        $return = join( ' ', $item[1], $item[2] );
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [SELECT /[^;]+/ SEMICOLON]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{select_statement},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{select_statement},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{select_statement},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{select_statement},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::if_exists
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"if_exists"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [if_exists]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{if_exists},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/if exists/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{if_exists},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{if_exists});
+               %item = (__RULE__ => q{if_exists});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/if exists/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{if_exists},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:if exists)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/if exists/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{if_exists},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{if_exists},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{if_exists},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{if_exists},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{if_exists},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::PRIMARY_KEY
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"PRIMARY_KEY"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [PRIMARY_KEY]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{PRIMARY_KEY},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/primary key/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{PRIMARY_KEY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{PRIMARY_KEY});
+               %item = (__RULE__ => q{PRIMARY_KEY});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/primary key/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{PRIMARY_KEY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:primary key)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/primary key/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{PRIMARY_KEY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{PRIMARY_KEY},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{PRIMARY_KEY},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{PRIMARY_KEY},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{PRIMARY_KEY},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::CREATE
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"CREATE"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [CREATE]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{CREATE},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/create/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{CREATE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{CREATE});
+               %item = (__RULE__ => q{CREATE});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/create/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{CREATE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:create)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/create/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{CREATE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{CREATE},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{CREATE},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{CREATE},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{CREATE},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::comment
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"comment"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [comment]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{comment},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/^\\s*(?:#|-\{2\}).*\\n/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{comment});
+               %item = (__RULE__ => q{comment});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/^\\s*(?:#|-\{2\}).*\\n/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\s*(?:#|-{2}).*\n)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $comment =  $item[1];
+        $comment    =~ s/^\s*(#|-{2})\s*//;
+        $comment    =~ s/\s*$//;
+        $return     = $comment;
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/^\\s*(?:#|-\{2\}).*\\n/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/\\/\\*/ /[^\\*]+/ /\\*\\//]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{comment});
+               %item = (__RULE__ => q{comment});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/\\/\\*/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\/\*)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/[^\\*]+/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/[^\\*]+/})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^\*]+)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/\\*\\//]}, Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{/\\*\\//})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\*\/)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN3__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do {
+        my $comment = $item[2];
+        $comment    =~ s/^\s*|\s*$//g;
+        $return = $comment;
+    };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/\\/\\*/ /[^\\*]+/ /\\*\\//]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{comment},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{comment},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{comment},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{comment},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::BEGIN_C
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"BEGIN_C"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [BEGIN_C]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{BEGIN_C},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/begin/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{BEGIN_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{BEGIN_C});
+               %item = (__RULE__ => q{BEGIN_C});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/begin/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{BEGIN_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:begin)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/begin/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{BEGIN_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{BEGIN_C},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{BEGIN_C},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{BEGIN_C},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{BEGIN_C},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::qualified_name
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"qualified_name"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [qualified_name]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{qualified_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [NAME]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{qualified_name});
+               %item = (__RULE__ => q{qualified_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{qualified_name},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{qualified_name},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{NAME}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/(\\w+)\\.(\\w+)/]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[1];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{qualified_name});
+               %item = (__RULE__ => q{qualified_name});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/(\\w+)\\.(\\w+)/]}, Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(\w+)\.(\w+))//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $return = { db_name => $1, name => $2 } };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/(\\w+)\\.(\\w+)/]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{qualified_name},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{qualified_name},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{qualified_name},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{qualified_name},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::parens_field_list
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"parens_field_list"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [parens_field_list]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{parens_field_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: ['(' column_list ')']},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{parens_field_list});
+               %item = (__RULE__ => q{parens_field_list});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING1__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
+                                 Parse::RecDescent::_tracefirst($text),
+                                 q{parens_field_list},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+               if (1) { no strict qw{refs};
+               $expectation->is(q{column_list})->at($text);
+               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Grammar::SQLite::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
+               {
+                       
+                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
+                                                 Parse::RecDescent::_tracefirst($text),
+                                                 q{parens_field_list},
+                                                 $tracelevel)
+                                                       if defined $::RD_TRACE;
+                       $expectation->failed();
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
+                                       . $_tok . q{]},
+                                         
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $item{q{column_list}} = $_tok;
+               push @item, $_tok;
+               
+               }
+
+               Parse::RecDescent::_trace(q{Trying terminal: [')']},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{')'})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                                       if defined $::RD_TRACE;
+               push @item, $item{__STRING2__}=$&;
+               
+
+               Parse::RecDescent::_trace(q{Trying action},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               
+
+               $_tok = ($_noactions) ? 0 : do { $item[2] };
+               unless (defined $_tok)
+               {
+                       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
+                                       if defined $::RD_TRACE;
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
+                                         . $_tok . q{])},
+                                         Parse::RecDescent::_tracefirst($text))
+                                               if defined $::RD_TRACE;
+               push @item, $_tok;
+               $item{__ACTION1__}=$_tok;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: ['(' column_list ')']<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{parens_field_list},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{parens_field_list},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{parens_field_list},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{parens_field_list},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+
+# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
+sub Parse::RecDescent::SQL::Translator::Grammar::SQLite::VIEW
+{
+       my $thisparser = $_[0];
+       use vars q{$tracelevel};
+       local $tracelevel = ($tracelevel||0)+1;
+       $ERRORS = 0;
+       my $thisrule = $thisparser->{"rules"}{"VIEW"};
+       
+       Parse::RecDescent::_trace(q{Trying rule: [VIEW]},
+                                 Parse::RecDescent::_tracefirst($_[1]),
+                                 q{VIEW},
+                                 $tracelevel)
+                                       if defined $::RD_TRACE;
+
+       
+       my $err_at = @{$thisparser->{errors}};
+
+       my $score;
+       my $score_return;
+       my $_tok;
+       my $return = undef;
+       my $_matched=0;
+       my $commit=0;
+       my @item = ();
+       my %item = ();
+       my $repeating =  defined($_[2]) && $_[2];
+       my $_noactions = defined($_[3]) && $_[3];
+       my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
+       my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
+       my $text;
+       my $lastsep="";
+       my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
+       $expectation->at($_[1]);
+       
+       my $thisline;
+       tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
+
+       
+
+       while (!$_matched && !$commit)
+       {
+               
+               Parse::RecDescent::_trace(q{Trying production: [/view/i]},
+                                         Parse::RecDescent::_tracefirst($_[1]),
+                                         q{VIEW},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               my $thisprod = $thisrule->{"prods"}[0];
+               $text = $_[1];
+               my $_savetext;
+               @item = (q{VIEW});
+               %item = (__RULE__ => q{VIEW});
+               my $repcount = 0;
+
+
+               Parse::RecDescent::_trace(q{Trying terminal: [/view/i]}, Parse::RecDescent::_tracefirst($text),
+                                         q{VIEW},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $lastsep = "";
+               $expectation->is(q{})->at($text);
+               
+
+               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:view)//i)
+               {
+                       
+                       $expectation->failed();
+                       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+
+                       last;
+               }
+               Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
+                                               . $& . q{])},
+                                                 Parse::RecDescent::_tracefirst($text))
+                                       if defined $::RD_TRACE;
+               push @item, $item{__PATTERN1__}=$&;
+               
+
+
+               Parse::RecDescent::_trace(q{>>Matched production: [/view/i]<<},
+                                         Parse::RecDescent::_tracefirst($text),
+                                         q{VIEW},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $_matched = 1;
+               last;
+       }
+
+
+        unless ( $_matched || defined($return) || defined($score) )
+       {
+               
+
+               $_[1] = $text;  # NOT SURE THIS IS NEEDED
+               Parse::RecDescent::_trace(q{<<Didn't match rule>>},
+                                        Parse::RecDescent::_tracefirst($_[1]),
+                                        q{VIEW},
+                                        $tracelevel)
+                                       if defined $::RD_TRACE;
+               return undef;
+       }
+       if (!defined($return) && defined($score))
+       {
+               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
+                                         q{VIEW},
+                                         $tracelevel)
+                                               if defined $::RD_TRACE;
+               $return = $score_return;
+       }
+       splice @{$thisparser->{errors}}, $err_at;
+       $return = $item[$#item] unless defined $return;
+       if (defined $::RD_TRACE)
+       {
+               Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
+                                         $return . q{])}, "",
+                                         q{VIEW},
+                                         $tracelevel);
+               Parse::RecDescent::_trace(q{(consumed: [} .
+                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
+                                         Parse::RecDescent::_tracefirst($text),
+                                         , q{VIEW},
+                                         $tracelevel)
+       }
+       $_[1] = $text;
+       return $return;
+}
+}
+package SQL::Translator::Grammar::SQLite; sub new { my $self = bless( {
+                 '_AUTOTREE' => undef,
+                 'localvars' => '',
+                 'startcode' => '',
+                 '_check' => {
+                               'thisoffset' => '',
+                               'itempos' => '',
+                               'prevoffset' => '',
+                               'prevline' => '',
+                               'prevcolumn' => '',
+                               'thiscolumn' => ''
+                             },
+                 'namespace' => 'Parse::RecDescent::SQL::Translator::Grammar::SQLite',
+                 '_AUTOACTION' => undef,
+                 'rules' => {
+                              'WORD' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 0,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => '\\w+',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/\\\\w+/',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 388,
+                                                                                             'mod' => '',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'WORD',
+                                                 'vars' => '',
+                                                 'line' => 388
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'statement_body' => bless( {
+                                                           'impcount' => 0,
+                                                           'calls' => [
+                                                                        'string',
+                                                                        'nonstring'
+                                                                      ],
+                                                           'changed' => 0,
+                                                           'opcount' => 0,
+                                                           'prods' => [
+                                                                        bless( {
+                                                                                 'number' => '0',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 0,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'string',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 319
+                                                                                                     }, 'Parse::RecDescent::Subrule' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' ),
+                                                                        bless( {
+                                                                                 'number' => '1',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 0,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'nonstring',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 319
+                                                                                                     }, 'Parse::RecDescent::Subrule' )
+                                                                                            ],
+                                                                                 'line' => 319
+                                                                               }, 'Parse::RecDescent::Production' )
+                                                                      ],
+                                                           'name' => 'statement_body',
+                                                           'vars' => '',
+                                                           'line' => 319
+                                                         }, 'Parse::RecDescent::Rule' ),
+                              'for_each' => bless( {
+                                                     'impcount' => 0,
+                                                     'calls' => [],
+                                                     'changed' => 0,
+                                                     'opcount' => 0,
+                                                     'prods' => [
+                                                                  bless( {
+                                                                           'number' => '0',
+                                                                           'strcount' => 0,
+                                                                           'dircount' => 0,
+                                                                           'uncommit' => undef,
+                                                                           'error' => undef,
+                                                                           'patcount' => 1,
+                                                                           'actcount' => 0,
+                                                                           'items' => [
+                                                                                        bless( {
+                                                                                                 'pattern' => 'FOR EACH ROW',
+                                                                                                 'hashname' => '__PATTERN1__',
+                                                                                                 'description' => '/FOR EACH ROW/i',
+                                                                                                 'lookahead' => 0,
+                                                                                                 'rdelim' => '/',
+                                                                                                 'line' => 310,
+                                                                                                 'mod' => 'i',
+                                                                                                 'ldelim' => '/'
+                                                                                               }, 'Parse::RecDescent::Token' )
+                                                                                      ],
+                                                                           'line' => undef
+                                                                         }, 'Parse::RecDescent::Production' )
+                                                                ],
+                                                     'name' => 'for_each',
+                                                     'vars' => '',
+                                                     'line' => 310
+                                                   }, 'Parse::RecDescent::Rule' ),
+                              'column_def' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [
+                                                                    'comment',
+                                                                    'NAME',
+                                                                    'type',
+                                                                    'column_constraint'
+                                                                  ],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 0,
+                                                                             'actcount' => 1,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'subrule' => 'comment',
+                                                                                                   'expected' => undef,
+                                                                                                   'min' => 0,
+                                                                                                   'argcode' => undef,
+                                                                                                   'max' => 100000000,
+                                                                                                   'matchrule' => 0,
+                                                                                                   'repspec' => 's?',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 123
+                                                                                                 }, 'Parse::RecDescent::Repetition' ),
+                                                                                          bless( {
+                                                                                                   'subrule' => 'NAME',
+                                                                                                   'matchrule' => 0,
+                                                                                                   'implicit' => undef,
+                                                                                                   'argcode' => undef,
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 123
+                                                                                                 }, 'Parse::RecDescent::Subrule' ),
+                                                                                          bless( {
+                                                                                                   'subrule' => 'type',
+                                                                                                   'expected' => undef,
+                                                                                                   'min' => 0,
+                                                                                                   'argcode' => undef,
+                                                                                                   'max' => 1,
+                                                                                                   'matchrule' => 0,
+                                                                                                   'repspec' => '?',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 123
+                                                                                                 }, 'Parse::RecDescent::Repetition' ),
+                                                                                          bless( {
+                                                                                                   'subrule' => 'column_constraint',
+                                                                                                   'expected' => undef,
+                                                                                                   'min' => 0,
+                                                                                                   'argcode' => undef,
+                                                                                                   'max' => 100000000,
+                                                                                                   'matchrule' => 0,
+                                                                                                   'repspec' => 's?',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 123
+                                                                                                 }, 'Parse::RecDescent::Repetition' ),
+                                                                                          bless( {
+                                                                                                   'hashname' => '__ACTION1__',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 124,
+                                                                                                   'code' => '{
+        my $column = {
+            supertype      => \'column\',
+            name           => $item[2],
+            data_type      => $item[3][0]->{\'type\'},
+            size           => $item[3][0]->{\'size\'},
+            is_nullable    => 1,
+            is_primary_key => 0,
+            is_unique      => 0,
+            check          => \'\',
+            default        => undef,
+            constraints    => $item[4],
+            comments       => $item[1],
+        };
+
+
+        for my $c ( @{ $item[4] } ) {
+            if ( $c->{\'type\'} eq \'not_null\' ) {
+                $column->{\'is_nullable\'} = 0;
+            }
+            elsif ( $c->{\'type\'} eq \'primary_key\' ) {
+                $column->{\'is_primary_key\'} = 1;
+            }
+            elsif ( $c->{\'type\'} eq \'unique\' ) {
+                $column->{\'is_unique\'} = 1;
+            }
+            elsif ( $c->{\'type\'} eq \'check\' ) {
+                $column->{\'check\'} = $c->{\'expression\'};
+            }
+            elsif ( $c->{\'type\'} eq \'default\' ) {
+                $column->{\'default\'} = $c->{\'value\'};
+            }
+        }
+
+        $column;
+    }'
+                                                                                                 }, 'Parse::RecDescent::Action' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'column_def',
+                                                       'vars' => '',
+                                                       'line' => 123
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'constraint_def' => bless( {
+                                                           'impcount' => 0,
+                                                           'calls' => [
+                                                                        'PRIMARY_KEY',
+                                                                        'parens_field_list',
+                                                                        'conflict_clause',
+                                                                        'UNIQUE',
+                                                                        'CHECK_C',
+                                                                        'expr'
+                                                                      ],
+                                                           'changed' => 0,
+                                                           'opcount' => 0,
+                                                           'prods' => [
+                                                                        bless( {
+                                                                                 'number' => '0',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'PRIMARY_KEY',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 210
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'parens_field_list',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 210
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'conflict_clause',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 0,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 1,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => '?',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 210
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 211,
+                                                                                                       'code' => '{
+        $return         = {
+            supertype   => \'constraint\',
+            type        => \'primary_key\',
+            columns      => $item[2],
+            on_conflict => $item[3][0],
+        }
+    }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' ),
+                                                                        bless( {
+                                                                                 'number' => '1',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'UNIQUE',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 220
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'parens_field_list',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 220
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'conflict_clause',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 0,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 1,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => '?',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 220
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 221,
+                                                                                                       'code' => '{
+        $return         = {
+            supertype   => \'constraint\',
+            type        => \'unique\',
+            columns      => $item[2],
+            on_conflict => $item[3][0],
+        }
+    }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => 219
+                                                                               }, 'Parse::RecDescent::Production' ),
+                                                                        bless( {
+                                                                                 'number' => '2',
+                                                                                 'strcount' => 2,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'CHECK_C',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 230
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'pattern' => '(',
+                                                                                                       'hashname' => '__STRING1__',
+                                                                                                       'description' => '\'(\'',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 230
+                                                                                                     }, 'Parse::RecDescent::Literal' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'expr',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 230
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'pattern' => ')',
+                                                                                                       'hashname' => '__STRING2__',
+                                                                                                       'description' => '\')\'',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 230
+                                                                                                     }, 'Parse::RecDescent::Literal' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'conflict_clause',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 0,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 1,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => '?',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 230
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 231,
+                                                                                                       'code' => '{
+        $return         = {
+            supertype   => \'constraint\',
+            type        => \'check\',
+            expression  => $item[3],
+            on_conflict => $item[5][0],
+        }
+    }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => 229
+                                                                               }, 'Parse::RecDescent::Production' )
+                                                                      ],
+                                                           'name' => 'constraint_def',
+                                                           'vars' => '',
+                                                           'line' => 210
+                                                         }, 'Parse::RecDescent::Rule' ),
+                              'string' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 0,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => '\'(\\\\.|\'\'|[^\\\\\\\'])*\'',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/\'(\\\\\\\\.|\'\'|[^\\\\\\\\\\\\\'])*\'/',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 315,
+                                                                                               'mod' => '',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'string',
+                                                   'vars' => '',
+                                                   'line' => 314
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'conflict_algorigthm' => bless( {
+                                                                'impcount' => 0,
+                                                                'calls' => [],
+                                                                'changed' => 0,
+                                                                'opcount' => 0,
+                                                                'prods' => [
+                                                                             bless( {
+                                                                                      'number' => '0',
+                                                                                      'strcount' => 0,
+                                                                                      'dircount' => 0,
+                                                                                      'uncommit' => undef,
+                                                                                      'error' => undef,
+                                                                                      'patcount' => 1,
+                                                                                      'actcount' => 0,
+                                                                                      'items' => [
+                                                                                                   bless( {
+                                                                                                            'pattern' => '(rollback|abort|fail|ignore|replace)',
+                                                                                                            'hashname' => '__PATTERN1__',
+                                                                                                            'description' => '/(rollback|abort|fail|ignore|replace)/i',
+                                                                                                            'lookahead' => 0,
+                                                                                                            'rdelim' => '/',
+                                                                                                            'line' => 252,
+                                                                                                            'mod' => 'i',
+                                                                                                            'ldelim' => '/'
+                                                                                                          }, 'Parse::RecDescent::Token' )
+                                                                                                 ],
+                                                                                      'line' => undef
+                                                                                    }, 'Parse::RecDescent::Production' )
+                                                                           ],
+                                                                'name' => 'conflict_algorigthm',
+                                                                'vars' => '',
+                                                                'line' => 252
+                                                              }, 'Parse::RecDescent::Rule' ),
+                              'INDEX' => bless( {
+                                                  'impcount' => 0,
+                                                  'calls' => [],
+                                                  'changed' => 0,
+                                                  'opcount' => 0,
+                                                  'prods' => [
+                                                               bless( {
+                                                                        'number' => '0',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 0,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => 'index',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/index/i',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 368,
+                                                                                              'mod' => 'i',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' )
+                                                                                   ],
+                                                                        'line' => undef
+                                                                      }, 'Parse::RecDescent::Production' )
+                                                             ],
+                                                  'name' => 'INDEX',
+                                                  'vars' => '',
+                                                  'line' => 368
+                                                }, 'Parse::RecDescent::Rule' ),
+                              'view_drop' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [
+                                                                   'VIEW',
+                                                                   'if_exists',
+                                                                   'view_name'
+                                                                 ],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'VIEW',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 54
+                                                                                                }, 'Parse::RecDescent::Subrule' ),
+                                                                                         bless( {
+                                                                                                  'subrule' => 'if_exists',
+                                                                                                  'expected' => undef,
+                                                                                                  'min' => 0,
+                                                                                                  'argcode' => undef,
+                                                                                                  'max' => 1,
+                                                                                                  'matchrule' => 0,
+                                                                                                  'repspec' => '?',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 54
+                                                                                                }, 'Parse::RecDescent::Repetition' ),
+                                                                                         bless( {
+                                                                                                  'subrule' => 'view_name',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 54
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'view_drop',
+                                                      'vars' => '',
+                                                      'line' => 54
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'statement' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [
+                                                                   'begin_transaction',
+                                                                   'commit',
+                                                                   'drop',
+                                                                   'comment',
+                                                                   'create'
+                                                                 ],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'begin_transaction',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 39
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' ),
+                                                                   bless( {
+                                                                            'number' => '1',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'commit',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 40
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => 40
+                                                                          }, 'Parse::RecDescent::Production' ),
+                                                                   bless( {
+                                                                            'number' => '2',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'drop',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 41
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => 41
+                                                                          }, 'Parse::RecDescent::Production' ),
+                                                                   bless( {
+                                                                            'number' => '3',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'comment',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 42
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => 42
+                                                                          }, 'Parse::RecDescent::Production' ),
+                                                                   bless( {
+                                                                            'number' => '4',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'create',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 43
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => 43
+                                                                          }, 'Parse::RecDescent::Production' ),
+                                                                   bless( {
+                                                                            'number' => '5',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 1,
+                                                                            'uncommit' => 0,
+                                                                            'error' => 1,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'msg' => '',
+                                                                                                  'hashname' => '__DIRECTIVE1__',
+                                                                                                  'commitonly' => '',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 44
+                                                                                                }, 'Parse::RecDescent::Error' )
+                                                                                       ],
+                                                                            'line' => 44
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'statement',
+                                                      'vars' => '',
+                                                      'line' => 39
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'field_name' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [
+                                                                    'NAME'
+                                                                  ],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 0,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'subrule' => 'NAME',
+                                                                                                   'matchrule' => 0,
+                                                                                                   'implicit' => undef,
+                                                                                                   'argcode' => undef,
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 248
+                                                                                                 }, 'Parse::RecDescent::Subrule' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'field_name',
+                                                       'vars' => '',
+                                                       'line' => 248
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'eofile' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 0,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => '^\\Z',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/^\\\\Z/',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 37,
+                                                                                               'mod' => '',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'eofile',
+                                                   'vars' => '',
+                                                   'line' => 37
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'startrule' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [
+                                                                   'statement',
+                                                                   'eofile'
+                                                                 ],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 1,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'statement',
+                                                                                                  'expected' => undef,
+                                                                                                  'min' => 1,
+                                                                                                  'argcode' => undef,
+                                                                                                  'max' => 100000000,
+                                                                                                  'matchrule' => 0,
+                                                                                                  'repspec' => 's',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 29
+                                                                                                }, 'Parse::RecDescent::Repetition' ),
+                                                                                         bless( {
+                                                                                                  'subrule' => 'eofile',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 29
+                                                                                                }, 'Parse::RecDescent::Subrule' ),
+                                                                                         bless( {
+                                                                                                  'hashname' => '__ACTION1__',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 29,
+                                                                                                  'code' => '{ 
+    $return      = {
+        tables   => \\%tables, 
+        views    => \\@views,
+        triggers => \\@triggers,
+    }
+}'
+                                                                                                }, 'Parse::RecDescent::Action' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'startrule',
+                                                      'vars' => '',
+                                                      'line' => 28
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'TRANSACTION' => bless( {
+                                                        'impcount' => 0,
+                                                        'calls' => [],
+                                                        'changed' => 0,
+                                                        'opcount' => 0,
+                                                        'prods' => [
+                                                                     bless( {
+                                                                              'number' => '0',
+                                                                              'strcount' => 0,
+                                                                              'dircount' => 0,
+                                                                              'uncommit' => undef,
+                                                                              'error' => undef,
+                                                                              'patcount' => 1,
+                                                                              'actcount' => 0,
+                                                                              'items' => [
+                                                                                           bless( {
+                                                                                                    'pattern' => 'transaction',
+                                                                                                    'hashname' => '__PATTERN1__',
+                                                                                                    'description' => '/transaction/i',
+                                                                                                    'lookahead' => 0,
+                                                                                                    'rdelim' => '/',
+                                                                                                    'line' => 360,
+                                                                                                    'mod' => 'i',
+                                                                                                    'ldelim' => '/'
+                                                                                                  }, 'Parse::RecDescent::Token' )
+                                                                                         ],
+                                                                              'line' => undef
+                                                                            }, 'Parse::RecDescent::Production' )
+                                                                   ],
+                                                        'name' => 'TRANSACTION',
+                                                        'vars' => '',
+                                                        'line' => 360
+                                                      }, 'Parse::RecDescent::Rule' ),
+                              'VALUE' => bless( {
+                                                  'impcount' => 0,
+                                                  'calls' => [],
+                                                  'changed' => 0,
+                                                  'opcount' => 0,
+                                                  'prods' => [
+                                                               bless( {
+                                                                        'number' => '0',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 1,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => '[-+]?\\.?\\d+(?:[eE]\\d+)?',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/[-+]?\\\\.?\\\\d+(?:[eE]\\\\d+)?/',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 398,
+                                                                                              'mod' => '',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' ),
+                                                                                     bless( {
+                                                                                              'hashname' => '__ACTION1__',
+                                                                                              'lookahead' => 0,
+                                                                                              'line' => 399,
+                                                                                              'code' => '{ $item[1] }'
+                                                                                            }, 'Parse::RecDescent::Action' )
+                                                                                   ],
+                                                                        'line' => undef
+                                                                      }, 'Parse::RecDescent::Production' ),
+                                                               bless( {
+                                                                        'number' => '1',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 1,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => '\'.*?\'',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/\'.*?\'/',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 400,
+                                                                                              'mod' => '',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' ),
+                                                                                     bless( {
+                                                                                              'hashname' => '__ACTION1__',
+                                                                                              'lookahead' => 0,
+                                                                                              'line' => 401,
+                                                                                              'code' => '{ 
+        # remove leading/trailing quotes 
+        my $val = $item[1];
+        $val    =~ s/^[\'"]|[\'"]$//g;
+        $return = $val;
+    }'
+                                                                                            }, 'Parse::RecDescent::Action' )
+                                                                                   ],
+                                                                        'line' => 400
+                                                                      }, 'Parse::RecDescent::Production' ),
+                                                               bless( {
+                                                                        'number' => '2',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 1,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => 'NULL',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/NULL/',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 407,
+                                                                                              'mod' => '',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' ),
+                                                                                     bless( {
+                                                                                              'hashname' => '__ACTION1__',
+                                                                                              'lookahead' => 0,
+                                                                                              'line' => 408,
+                                                                                              'code' => '{ \'NULL\' }'
+                                                                                            }, 'Parse::RecDescent::Action' )
+                                                                                   ],
+                                                                        'line' => 407
+                                                                      }, 'Parse::RecDescent::Production' ),
+                                                               bless( {
+                                                                        'number' => '3',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 1,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => 'CURRENT_TIMESTAMP',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/CURRENT_TIMESTAMP/i',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 409,
+                                                                                              'mod' => 'i',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' ),
+                                                                                     bless( {
+                                                                                              'hashname' => '__ACTION1__',
+                                                                                              'lookahead' => 0,
+                                                                                              'line' => 410,
+                                                                                              'code' => '{ \'CURRENT_TIMESTAMP\' }'
+                                                                                            }, 'Parse::RecDescent::Action' )
+                                                                                   ],
+                                                                        'line' => 409
+                                                                      }, 'Parse::RecDescent::Production' )
+                                                             ],
+                                                  'name' => 'VALUE',
+                                                  'vars' => '',
+                                                  'line' => 398
+                                                }, 'Parse::RecDescent::Rule' ),
+                              'END_C' => bless( {
+                                                  'impcount' => 0,
+                                                  'calls' => [],
+                                                  'changed' => 0,
+                                                  'opcount' => 0,
+                                                  'prods' => [
+                                                               bless( {
+                                                                        'number' => '0',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 0,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => 'end',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/end/i',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 358,
+                                                                                              'mod' => 'i',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' )
+                                                                                   ],
+                                                                        'line' => undef
+                                                                      }, 'Parse::RecDescent::Production' )
+                                                             ],
+                                                  'name' => 'END_C',
+                                                  'vars' => '',
+                                                  'line' => 358
+                                                }, 'Parse::RecDescent::Rule' ),
+                              'sort_order' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 1,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'pattern' => '(ASC|DESC)',
+                                                                                                   'hashname' => '__PATTERN1__',
+                                                                                                   'description' => '/(ASC|DESC)/i',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'rdelim' => '/',
+                                                                                                   'line' => 264,
+                                                                                                   'mod' => 'i',
+                                                                                                   'ldelim' => '/'
+                                                                                                 }, 'Parse::RecDescent::Token' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'sort_order',
+                                                       'vars' => '',
+                                                       'line' => 264
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'before_or_after' => bless( {
+                                                            'impcount' => 0,
+                                                            'calls' => [],
+                                                            'changed' => 0,
+                                                            'opcount' => 0,
+                                                            'prods' => [
+                                                                         bless( {
+                                                                                  'number' => '0',
+                                                                                  'strcount' => 0,
+                                                                                  'dircount' => 0,
+                                                                                  'uncommit' => undef,
+                                                                                  'error' => undef,
+                                                                                  'patcount' => 1,
+                                                                                  'actcount' => 1,
+                                                                                  'items' => [
+                                                                                               bless( {
+                                                                                                        'pattern' => '(before|after)',
+                                                                                                        'hashname' => '__PATTERN1__',
+                                                                                                        'description' => '/(before|after)/i',
+                                                                                                        'lookahead' => 0,
+                                                                                                        'rdelim' => '/',
+                                                                                                        'line' => 326,
+                                                                                                        'mod' => 'i',
+                                                                                                        'ldelim' => '/'
+                                                                                                      }, 'Parse::RecDescent::Token' ),
+                                                                                               bless( {
+                                                                                                        'hashname' => '__ACTION1__',
+                                                                                                        'lookahead' => 0,
+                                                                                                        'line' => 326,
+                                                                                                        'code' => '{ $return = lc $1 }'
+                                                                                                      }, 'Parse::RecDescent::Action' )
+                                                                                             ],
+                                                                                  'line' => undef
+                                                                                }, 'Parse::RecDescent::Production' )
+                                                                       ],
+                                                            'name' => 'before_or_after',
+                                                            'vars' => '',
+                                                            'line' => 326
+                                                          }, 'Parse::RecDescent::Rule' ),
+                              'tbl_drop' => bless( {
+                                                     'impcount' => 0,
+                                                     'calls' => [
+                                                                  'TABLE',
+                                                                  'table_name'
+                                                                ],
+                                                     'changed' => 0,
+                                                     'opcount' => 0,
+                                                     'prods' => [
+                                                                  bless( {
+                                                                           'number' => '0',
+                                                                           'strcount' => 0,
+                                                                           'dircount' => 1,
+                                                                           'uncommit' => undef,
+                                                                           'error' => undef,
+                                                                           'patcount' => 0,
+                                                                           'actcount' => 0,
+                                                                           'items' => [
+                                                                                        bless( {
+                                                                                                 'subrule' => 'TABLE',
+                                                                                                 'matchrule' => 0,
+                                                                                                 'implicit' => undef,
+                                                                                                 'argcode' => undef,
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 52
+                                                                                               }, 'Parse::RecDescent::Subrule' ),
+                                                                                        bless( {
+                                                                                                 'hashname' => '__DIRECTIVE1__',
+                                                                                                 'name' => '<commit>',
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 52,
+                                                                                                 'code' => '$commit = 1'
+                                                                                               }, 'Parse::RecDescent::Directive' ),
+                                                                                        bless( {
+                                                                                                 'subrule' => 'table_name',
+                                                                                                 'matchrule' => 0,
+                                                                                                 'implicit' => undef,
+                                                                                                 'argcode' => undef,
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 52
+                                                                                               }, 'Parse::RecDescent::Subrule' )
+                                                                                      ],
+                                                                           'line' => undef
+                                                                         }, 'Parse::RecDescent::Production' )
+                                                                ],
+                                                     'name' => 'tbl_drop',
+                                                     'vars' => '',
+                                                     'line' => 52
+                                                   }, 'Parse::RecDescent::Rule' ),
+                              'trg_drop' => bless( {
+                                                     'impcount' => 0,
+                                                     'calls' => [
+                                                                  'TRIGGER',
+                                                                  'if_exists',
+                                                                  'trigger_name'
+                                                                ],
+                                                     'changed' => 0,
+                                                     'opcount' => 0,
+                                                     'prods' => [
+                                                                  bless( {
+                                                                           'number' => '0',
+                                                                           'strcount' => 0,
+                                                                           'dircount' => 0,
+                                                                           'uncommit' => undef,
+                                                                           'error' => undef,
+                                                                           'patcount' => 0,
+                                                                           'actcount' => 0,
+                                                                           'items' => [
+                                                                                        bless( {
+                                                                                                 'subrule' => 'TRIGGER',
+                                                                                                 'matchrule' => 0,
+                                                                                                 'implicit' => undef,
+                                                                                                 'argcode' => undef,
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 56
+                                                                                               }, 'Parse::RecDescent::Subrule' ),
+                                                                                        bless( {
+                                                                                                 'subrule' => 'if_exists',
+                                                                                                 'expected' => undef,
+                                                                                                 'min' => 0,
+                                                                                                 'argcode' => undef,
+                                                                                                 'max' => 1,
+                                                                                                 'matchrule' => 0,
+                                                                                                 'repspec' => '?',
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 56
+                                                                                               }, 'Parse::RecDescent::Repetition' ),
+                                                                                        bless( {
+                                                                                                 'subrule' => 'trigger_name',
+                                                                                                 'matchrule' => 0,
+                                                                                                 'implicit' => undef,
+                                                                                                 'argcode' => undef,
+                                                                                                 'lookahead' => 0,
+                                                                                                 'line' => 56
+                                                                                               }, 'Parse::RecDescent::Subrule' )
+                                                                                      ],
+                                                                           'line' => undef
+                                                                         }, 'Parse::RecDescent::Production' )
+                                                                ],
+                                                     'name' => 'trg_drop',
+                                                     'vars' => '',
+                                                     'line' => 56
+                                                   }, 'Parse::RecDescent::Rule' ),
+                              '_alternation_1_of_production_1_of_rule_drop' => bless( {
+                                                                                        'impcount' => 0,
+                                                                                        'calls' => [
+                                                                                                     'tbl_drop',
+                                                                                                     'view_drop',
+                                                                                                     'trg_drop'
+                                                                                                   ],
+                                                                                        'changed' => 0,
+                                                                                        'opcount' => 0,
+                                                                                        'prods' => [
+                                                                                                     bless( {
+                                                                                                              'number' => '0',
+                                                                                                              'strcount' => 0,
+                                                                                                              'dircount' => 0,
+                                                                                                              'uncommit' => undef,
+                                                                                                              'error' => undef,
+                                                                                                              'patcount' => 0,
+                                                                                                              'actcount' => 0,
+                                                                                                              'items' => [
+                                                                                                                           bless( {
+                                                                                                                                    'subrule' => 'tbl_drop',
+                                                                                                                                    'matchrule' => 0,
+                                                                                                                                    'implicit' => undef,
+                                                                                                                                    'argcode' => undef,
+                                                                                                                                    'lookahead' => 0,
+                                                                                                                                    'line' => 411
+                                                                                                                                  }, 'Parse::RecDescent::Subrule' )
+                                                                                                                         ],
+                                                                                                              'line' => undef
+                                                                                                            }, 'Parse::RecDescent::Production' ),
+                                                                                                     bless( {
+                                                                                                              'number' => '1',
+                                                                                                              'strcount' => 0,
+                                                                                                              'dircount' => 0,
+                                                                                                              'uncommit' => undef,
+                                                                                                              'error' => undef,
+                                                                                                              'patcount' => 0,
+                                                                                                              'actcount' => 0,
+                                                                                                              'items' => [
+                                                                                                                           bless( {
+                                                                                                                                    'subrule' => 'view_drop',
+                                                                                                                                    'matchrule' => 0,
+                                                                                                                                    'implicit' => undef,
+                                                                                                                                    'argcode' => undef,
+                                                                                                                                    'lookahead' => 0,
+                                                                                                                                    'line' => 411
+                                                                                                                                  }, 'Parse::RecDescent::Subrule' )
+                                                                                                                         ],
+                                                                                                              'line' => 411
+                                                                                                            }, 'Parse::RecDescent::Production' ),
+                                                                                                     bless( {
+                                                                                                              'number' => '2',
+                                                                                                              'strcount' => 0,
+                                                                                                              'dircount' => 0,
+                                                                                                              'uncommit' => undef,
+                                                                                                              'error' => undef,
+                                                                                                              'patcount' => 0,
+                                                                                                              'actcount' => 0,
+                                                                                                              'items' => [
+                                                                                                                           bless( {
+                                                                                                                                    'subrule' => 'trg_drop',
+                                                                                                                                    'matchrule' => 0,
+                                                                                                                                    'implicit' => undef,
+                                                                                                                                    'argcode' => undef,
+                                                                                                                                    'lookahead' => 0,
+                                                                                                                                    'line' => 411
+                                                                                                                                  }, 'Parse::RecDescent::Subrule' )
+                                                                                                                         ],
+                                                                                                              'line' => 411
+                                                                                                            }, 'Parse::RecDescent::Production' )
+                                                                                                   ],
+                                                                                        'name' => '_alternation_1_of_production_1_of_rule_drop',
+                                                                                        'vars' => '',
+                                                                                        'line' => 411
+                                                                                      }, 'Parse::RecDescent::Rule' ),
+                              'view_name' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [
+                                                                   'qualified_name'
+                                                                 ],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'subrule' => 'qualified_name',
+                                                                                                  'matchrule' => 0,
+                                                                                                  'implicit' => undef,
+                                                                                                  'argcode' => undef,
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 332
+                                                                                                }, 'Parse::RecDescent::Subrule' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'view_name',
+                                                      'vars' => '',
+                                                      'line' => 332
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'parens_value_list' => bless( {
+                                                              'impcount' => 0,
+                                                              'calls' => [
+                                                                           'VALUE'
+                                                                         ],
+                                                              'changed' => 0,
+                                                              'opcount' => 0,
+                                                              'prods' => [
+                                                                           bless( {
+                                                                                    'number' => '0',
+                                                                                    'strcount' => 2,
+                                                                                    'dircount' => 1,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 1,
+                                                                                    'actcount' => 1,
+                                                                                    'op' => [],
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'pattern' => '(',
+                                                                                                          'hashname' => '__STRING1__',
+                                                                                                          'description' => '\'(\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 259
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'expected' => '<leftop: VALUE /,/ VALUE>',
+                                                                                                          'min' => 1,
+                                                                                                          'name' => '\'VALUE(s)\'',
+                                                                                                          'max' => 100000000,
+                                                                                                          'leftarg' => bless( {
+                                                                                                                                'subrule' => 'VALUE',
+                                                                                                                                'matchrule' => 0,
+                                                                                                                                'implicit' => undef,
+                                                                                                                                'argcode' => undef,
+                                                                                                                                'lookahead' => 0,
+                                                                                                                                'line' => 259
+                                                                                                                              }, 'Parse::RecDescent::Subrule' ),
+                                                                                                          'rightarg' => bless( {
+                                                                                                                                 'subrule' => 'VALUE',
+                                                                                                                                 'matchrule' => 0,
+                                                                                                                                 'implicit' => undef,
+                                                                                                                                 'argcode' => undef,
+                                                                                                                                 'lookahead' => 0,
+                                                                                                                                 'line' => 259
+                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
+                                                                                                          'hashname' => '__DIRECTIVE1__',
+                                                                                                          'type' => 'leftop',
+                                                                                                          'op' => bless( {
+                                                                                                                           'pattern' => ',',
+                                                                                                                           'hashname' => '__PATTERN1__',
+                                                                                                                           'description' => '/,/',
+                                                                                                                           'lookahead' => 0,
+                                                                                                                           'rdelim' => '/',
+                                                                                                                           'line' => 259,
+                                                                                                                           'mod' => '',
+                                                                                                                           'ldelim' => '/'
+                                                                                                                         }, 'Parse::RecDescent::Token' )
+                                                                                                        }, 'Parse::RecDescent::Operator' ),
+                                                                                                 bless( {
+                                                                                                          'pattern' => ')',
+                                                                                                          'hashname' => '__STRING2__',
+                                                                                                          'description' => '\')\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 259
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 260,
+                                                                                                          'code' => '{ $item[2] }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => undef
+                                                                                  }, 'Parse::RecDescent::Production' )
+                                                                         ],
+                                                              'name' => 'parens_value_list',
+                                                              'vars' => '',
+                                                              'line' => 259
+                                                            }, 'Parse::RecDescent::Rule' ),
+                              'commit' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [
+                                                                'SEMICOLON'
+                                                              ],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 0,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => 'commit',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/commit/i',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 48,
+                                                                                               'mod' => 'i',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'SEMICOLON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 48
+                                                                                             }, 'Parse::RecDescent::Subrule' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'commit',
+                                                   'vars' => '',
+                                                   'line' => 48
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'CHECK_C' => bless( {
+                                                    'impcount' => 0,
+                                                    'calls' => [],
+                                                    'changed' => 0,
+                                                    'opcount' => 0,
+                                                    'prods' => [
+                                                                 bless( {
+                                                                          'number' => '0',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 1,
+                                                                          'actcount' => 0,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => 'check',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/check/i',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 374,
+                                                                                                'mod' => 'i',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' )
+                                                               ],
+                                                    'name' => 'CHECK_C',
+                                                    'vars' => '',
+                                                    'line' => 374
+                                                  }, 'Parse::RecDescent::Rule' ),
+                              'SELECT' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 0,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => 'select',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/select/i',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 382,
+                                                                                               'mod' => 'i',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'SELECT',
+                                                   'vars' => '',
+                                                   'line' => 382
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'trigger_step' => bless( {
+                                                         'impcount' => 0,
+                                                         'calls' => [
+                                                                      'statement_body',
+                                                                      'SEMICOLON'
+                                                                    ],
+                                                         'changed' => 0,
+                                                         'opcount' => 0,
+                                                         'prods' => [
+                                                                      bless( {
+                                                                               'number' => '0',
+                                                                               'strcount' => 0,
+                                                                               'dircount' => 0,
+                                                                               'uncommit' => undef,
+                                                                               'error' => undef,
+                                                                               'patcount' => 1,
+                                                                               'actcount' => 1,
+                                                                               'items' => [
+                                                                                            bless( {
+                                                                                                     'pattern' => '(select|delete|insert|update)',
+                                                                                                     'hashname' => '__PATTERN1__',
+                                                                                                     'description' => '/(select|delete|insert|update)/i',
+                                                                                                     'lookahead' => 0,
+                                                                                                     'rdelim' => '/',
+                                                                                                     'line' => 321,
+                                                                                                     'mod' => 'i',
+                                                                                                     'ldelim' => '/'
+                                                                                                   }, 'Parse::RecDescent::Token' ),
+                                                                                            bless( {
+                                                                                                     'subrule' => 'statement_body',
+                                                                                                     'expected' => undef,
+                                                                                                     'min' => 0,
+                                                                                                     'argcode' => undef,
+                                                                                                     'max' => 100000000,
+                                                                                                     'matchrule' => 0,
+                                                                                                     'repspec' => 's?',
+                                                                                                     'lookahead' => 0,
+                                                                                                     'line' => 321
+                                                                                                   }, 'Parse::RecDescent::Repetition' ),
+                                                                                            bless( {
+                                                                                                     'subrule' => 'SEMICOLON',
+                                                                                                     'matchrule' => 0,
+                                                                                                     'implicit' => undef,
+                                                                                                     'argcode' => undef,
+                                                                                                     'lookahead' => 0,
+                                                                                                     'line' => 321
+                                                                                                   }, 'Parse::RecDescent::Subrule' ),
+                                                                                            bless( {
+                                                                                                     'hashname' => '__ACTION1__',
+                                                                                                     'lookahead' => 0,
+                                                                                                     'line' => 322,
+                                                                                                     'code' => '{
+        $return = join( \' \', $item[1], join \' \', @{ $item[2] || [] } )
+    }'
+                                                                                                   }, 'Parse::RecDescent::Action' )
+                                                                                          ],
+                                                                               'line' => undef
+                                                                             }, 'Parse::RecDescent::Production' )
+                                                                    ],
+                                                         'name' => 'trigger_step',
+                                                         'vars' => '',
+                                                         'line' => 321
+                                                       }, 'Parse::RecDescent::Rule' ),
+                              'table_name' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [
+                                                                    'qualified_name'
+                                                                  ],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 0,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'subrule' => 'qualified_name',
+                                                                                                   'matchrule' => 0,
+                                                                                                   'implicit' => undef,
+                                                                                                   'argcode' => undef,
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 240
+                                                                                                 }, 'Parse::RecDescent::Subrule' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'table_name',
+                                                       'vars' => '',
+                                                       'line' => 240
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'type' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [
+                                                              'WORD',
+                                                              'parens_value_list'
+                                                            ],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 0,
+                                                                       'actcount' => 1,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'subrule' => 'WORD',
+                                                                                             'matchrule' => 0,
+                                                                                             'implicit' => undef,
+                                                                                             'argcode' => undef,
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 161
+                                                                                           }, 'Parse::RecDescent::Subrule' ),
+                                                                                    bless( {
+                                                                                             'subrule' => 'parens_value_list',
+                                                                                             'expected' => undef,
+                                                                                             'min' => 0,
+                                                                                             'argcode' => undef,
+                                                                                             'max' => 1,
+                                                                                             'matchrule' => 0,
+                                                                                             'repspec' => '?',
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 161
+                                                                                           }, 'Parse::RecDescent::Repetition' ),
+                                                                                    bless( {
+                                                                                             'hashname' => '__ACTION1__',
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 162,
+                                                                                             'code' => '{
+        $return = {
+            type => $item[1],
+            size => $item[2][0],
+        }
+    }'
+                                                                                           }, 'Parse::RecDescent::Action' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'type',
+                                                 'vars' => '',
+                                                 'line' => 161
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'NOT_NULL' => bless( {
+                                                     'impcount' => 0,
+                                                     'calls' => [],
+                                                     'changed' => 0,
+                                                     'opcount' => 0,
+                                                     'prods' => [
+                                                                  bless( {
+                                                                           'number' => '0',
+                                                                           'strcount' => 0,
+                                                                           'dircount' => 0,
+                                                                           'uncommit' => undef,
+                                                                           'error' => undef,
+                                                                           'patcount' => 1,
+                                                                           'actcount' => 0,
+                                                                           'items' => [
+                                                                                        bless( {
+                                                                                                 'pattern' => 'not null',
+                                                                                                 'hashname' => '__PATTERN1__',
+                                                                                                 'description' => '/not null/i',
+                                                                                                 'lookahead' => 0,
+                                                                                                 'rdelim' => '/',
+                                                                                                 'line' => 370,
+                                                                                                 'mod' => 'i',
+                                                                                                 'ldelim' => '/'
+                                                                                               }, 'Parse::RecDescent::Token' )
+                                                                                      ],
+                                                                           'line' => undef
+                                                                         }, 'Parse::RecDescent::Production' )
+                                                                ],
+                                                     'name' => 'NOT_NULL',
+                                                     'vars' => '',
+                                                     'line' => 370
+                                                   }, 'Parse::RecDescent::Rule' ),
+                              'TABLE' => bless( {
+                                                  'impcount' => 0,
+                                                  'calls' => [],
+                                                  'changed' => 0,
+                                                  'opcount' => 0,
+                                                  'prods' => [
+                                                               bless( {
+                                                                        'number' => '0',
+                                                                        'strcount' => 0,
+                                                                        'dircount' => 0,
+                                                                        'uncommit' => undef,
+                                                                        'error' => undef,
+                                                                        'patcount' => 1,
+                                                                        'actcount' => 0,
+                                                                        'items' => [
+                                                                                     bless( {
+                                                                                              'pattern' => 'table',
+                                                                                              'hashname' => '__PATTERN1__',
+                                                                                              'description' => '/table/i',
+                                                                                              'lookahead' => 0,
+                                                                                              'rdelim' => '/',
+                                                                                              'line' => 366,
+                                                                                              'mod' => 'i',
+                                                                                              'ldelim' => '/'
+                                                                                            }, 'Parse::RecDescent::Token' )
+                                                                                   ],
+                                                                        'line' => undef
+                                                                      }, 'Parse::RecDescent::Production' )
+                                                             ],
+                                                  'name' => 'TABLE',
+                                                  'vars' => '',
+                                                  'line' => 366
+                                                }, 'Parse::RecDescent::Rule' ),
+                              'trigger_name' => bless( {
+                                                         'impcount' => 0,
+                                                         'calls' => [
+                                                                      'qualified_name'
+                                                                    ],
+                                                         'changed' => 0,
+                                                         'opcount' => 0,
+                                                         'prods' => [
+                                                                      bless( {
+                                                                               'number' => '0',
+                                                                               'strcount' => 0,
+                                                                               'dircount' => 0,
+                                                                               'uncommit' => undef,
+                                                                               'error' => undef,
+                                                                               'patcount' => 0,
+                                                                               'actcount' => 0,
+                                                                               'items' => [
+                                                                                            bless( {
+                                                                                                     'subrule' => 'qualified_name',
+                                                                                                     'matchrule' => 0,
+                                                                                                     'implicit' => undef,
+                                                                                                     'argcode' => undef,
+                                                                                                     'lookahead' => 0,
+                                                                                                     'line' => 334
+                                                                                                   }, 'Parse::RecDescent::Subrule' )
+                                                                                          ],
+                                                                               'line' => undef
+                                                                             }, 'Parse::RecDescent::Production' )
+                                                                    ],
+                                                         'name' => 'trigger_name',
+                                                         'vars' => '',
+                                                         'line' => 334
+                                                       }, 'Parse::RecDescent::Rule' ),
+                              'instead_of' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 1,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'pattern' => 'instead of',
+                                                                                                   'hashname' => '__PATTERN1__',
+                                                                                                   'description' => '/instead of/i',
+                                                                                                   'lookahead' => 0,
+                                                                                                   'rdelim' => '/',
+                                                                                                   'line' => 328,
+                                                                                                   'mod' => 'i',
+                                                                                                   'ldelim' => '/'
+                                                                                                 }, 'Parse::RecDescent::Token' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'instead_of',
+                                                       'vars' => '',
+                                                       'line' => 328
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'drop' => bless( {
+                                                 'impcount' => 1,
+                                                 'calls' => [
+                                                              '_alternation_1_of_production_1_of_rule_drop',
+                                                              'SEMICOLON'
+                                                            ],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 0,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => 'drop',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/drop/i',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 50,
+                                                                                             'mod' => 'i',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' ),
+                                                                                    bless( {
+                                                                                             'subrule' => '_alternation_1_of_production_1_of_rule_drop',
+                                                                                             'matchrule' => 0,
+                                                                                             'implicit' => 'tbl_drop, or view_drop, or trg_drop',
+                                                                                             'argcode' => undef,
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 50
+                                                                                           }, 'Parse::RecDescent::Subrule' ),
+                                                                                    bless( {
+                                                                                             'subrule' => 'SEMICOLON',
+                                                                                             'matchrule' => 0,
+                                                                                             'implicit' => undef,
+                                                                                             'argcode' => undef,
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 50
+                                                                                           }, 'Parse::RecDescent::Subrule' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'drop',
+                                                 'vars' => '',
+                                                 'line' => 50
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'WHEN' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 0,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => 'when',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/when/i',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 390,
+                                                                                             'mod' => 'i',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'WHEN',
+                                                 'vars' => '',
+                                                 'line' => 390
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'TEMPORARY' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 1,
+                                                                            'actcount' => 1,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'pattern' => 'temp(orary)?',
+                                                                                                  'hashname' => '__PATTERN1__',
+                                                                                                  'description' => '/temp(orary)?/i',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'rdelim' => '/',
+                                                                                                  'line' => 364,
+                                                                                                  'mod' => 'i',
+                                                                                                  'ldelim' => '/'
+                                                                                                }, 'Parse::RecDescent::Token' ),
+                                                                                         bless( {
+                                                                                                  'hashname' => '__ACTION1__',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 364,
+                                                                                                  'code' => '{ 1 }'
+                                                                                                }, 'Parse::RecDescent::Action' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'TEMPORARY',
+                                                      'vars' => '',
+                                                      'line' => 364
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'database_event' => bless( {
+                                                           'impcount' => 0,
+                                                           'calls' => [
+                                                                        'column_list'
+                                                                      ],
+                                                           'changed' => 0,
+                                                           'opcount' => 0,
+                                                           'prods' => [
+                                                                        bless( {
+                                                                                 'number' => '0',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 1,
+                                                                                 'actcount' => 0,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'pattern' => '(delete|insert|update)',
+                                                                                                       'hashname' => '__PATTERN1__',
+                                                                                                       'description' => '/(delete|insert|update)/i',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'rdelim' => '/',
+                                                                                                       'line' => 297,
+                                                                                                       'mod' => 'i',
+                                                                                                       'ldelim' => '/'
+                                                                                                     }, 'Parse::RecDescent::Token' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' ),
+                                                                        bless( {
+                                                                                 'number' => '1',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 1,
+                                                                                 'actcount' => 0,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'pattern' => 'update of',
+                                                                                                       'hashname' => '__PATTERN1__',
+                                                                                                       'description' => '/update of/i',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'rdelim' => '/',
+                                                                                                       'line' => 299,
+                                                                                                       'mod' => 'i',
+                                                                                                       'ldelim' => '/'
+                                                                                                     }, 'Parse::RecDescent::Token' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'column_list',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 299
+                                                                                                     }, 'Parse::RecDescent::Subrule' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' )
+                                                                      ],
+                                                           'name' => 'database_event',
+                                                           'vars' => '',
+                                                           'line' => 297
+                                                         }, 'Parse::RecDescent::Rule' ),
+                              'definition' => bless( {
+                                                       'impcount' => 0,
+                                                       'calls' => [
+                                                                    'constraint_def',
+                                                                    'column_def'
+                                                                  ],
+                                                       'changed' => 0,
+                                                       'opcount' => 0,
+                                                       'prods' => [
+                                                                    bless( {
+                                                                             'number' => '0',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 0,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'subrule' => 'constraint_def',
+                                                                                                   'matchrule' => 0,
+                                                                                                   'implicit' => undef,
+                                                                                                   'argcode' => undef,
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 121
+                                                                                                 }, 'Parse::RecDescent::Subrule' )
+                                                                                        ],
+                                                                             'line' => undef
+                                                                           }, 'Parse::RecDescent::Production' ),
+                                                                    bless( {
+                                                                             'number' => '1',
+                                                                             'strcount' => 0,
+                                                                             'dircount' => 0,
+                                                                             'uncommit' => undef,
+                                                                             'error' => undef,
+                                                                             'patcount' => 0,
+                                                                             'actcount' => 0,
+                                                                             'items' => [
+                                                                                          bless( {
+                                                                                                   'subrule' => 'column_def',
+                                                                                                   'matchrule' => 0,
+                                                                                                   'implicit' => undef,
+                                                                                                   'argcode' => undef,
+                                                                                                   'lookahead' => 0,
+                                                                                                   'line' => 121
+                                                                                                 }, 'Parse::RecDescent::Subrule' )
+                                                                                        ],
+                                                                             'line' => 121
+                                                                           }, 'Parse::RecDescent::Production' )
+                                                                  ],
+                                                       'name' => 'definition',
+                                                       'vars' => '',
+                                                       'line' => 121
+                                                     }, 'Parse::RecDescent::Rule' ),
+                              'UNIQUE' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 1,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => 'unique',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/unique/i',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 392,
+                                                                                               'mod' => 'i',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 392,
+                                                                                               'code' => '{ 1 }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'UNIQUE',
+                                                   'vars' => '',
+                                                   'line' => 392
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'expr' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 0,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => '[^)]+',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/[^)]+/',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 262,
+                                                                                             'mod' => '',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'expr',
+                                                 'vars' => '',
+                                                 'line' => 262
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'AS' => bless( {
+                                               'impcount' => 0,
+                                               'calls' => [],
+                                               'changed' => 0,
+                                               'opcount' => 0,
+                                               'prods' => [
+                                                            bless( {
+                                                                     'number' => '0',
+                                                                     'strcount' => 0,
+                                                                     'dircount' => 0,
+                                                                     'uncommit' => undef,
+                                                                     'error' => undef,
+                                                                     'patcount' => 1,
+                                                                     'actcount' => 0,
+                                                                     'items' => [
+                                                                                  bless( {
+                                                                                           'pattern' => 'as',
+                                                                                           'hashname' => '__PATTERN1__',
+                                                                                           'description' => '/as/i',
+                                                                                           'lookahead' => 0,
+                                                                                           'rdelim' => '/',
+                                                                                           'line' => 386,
+                                                                                           'mod' => 'i',
+                                                                                           'ldelim' => '/'
+                                                                                         }, 'Parse::RecDescent::Token' )
+                                                                                ],
+                                                                     'line' => undef
+                                                                   }, 'Parse::RecDescent::Production' )
+                                                          ],
+                                               'name' => 'AS',
+                                               'vars' => '',
+                                               'line' => 386
+                                             }, 'Parse::RecDescent::Rule' ),
+                              'column_constraint' => bless( {
+                                                              'impcount' => 0,
+                                                              'calls' => [
+                                                                           'NOT_NULL',
+                                                                           'conflict_clause',
+                                                                           'PRIMARY_KEY',
+                                                                           'sort_order',
+                                                                           'UNIQUE',
+                                                                           'CHECK_C',
+                                                                           'expr',
+                                                                           'DEFAULT',
+                                                                           'VALUE'
+                                                                         ],
+                                                              'changed' => 0,
+                                                              'opcount' => 0,
+                                                              'prods' => [
+                                                                           bless( {
+                                                                                    'number' => '0',
+                                                                                    'strcount' => 0,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'NOT_NULL',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 169
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'conflict_clause',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 169
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 170,
+                                                                                                          'code' => '{
+        $return = {
+            type => \'not_null\',
+        }
+    }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => undef
+                                                                                  }, 'Parse::RecDescent::Production' ),
+                                                                           bless( {
+                                                                                    'number' => '1',
+                                                                                    'strcount' => 0,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'PRIMARY_KEY',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 176
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'sort_order',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 176
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'conflict_clause',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 176
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 177,
+                                                                                                          'code' => '{
+        $return = {
+            type        => \'primary_key\',
+            sort_order  => $item[2][0],
+            on_conflict => $item[2][0], 
+        }
+    }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => 175
+                                                                                  }, 'Parse::RecDescent::Production' ),
+                                                                           bless( {
+                                                                                    'number' => '2',
+                                                                                    'strcount' => 0,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'UNIQUE',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 185
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'conflict_clause',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 185
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 186,
+                                                                                                          'code' => '{
+        $return = {
+            type        => \'unique\',
+            on_conflict => $item[2][0], 
+        }
+    }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => 184
+                                                                                  }, 'Parse::RecDescent::Production' ),
+                                                                           bless( {
+                                                                                    'number' => '3',
+                                                                                    'strcount' => 2,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'CHECK_C',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 193
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'pattern' => '(',
+                                                                                                          'hashname' => '__STRING1__',
+                                                                                                          'description' => '\'(\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 193
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'expr',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 193
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'pattern' => ')',
+                                                                                                          'hashname' => '__STRING2__',
+                                                                                                          'description' => '\')\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 193
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'conflict_clause',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 193
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 194,
+                                                                                                          'code' => '{
+        $return = {
+            type        => \'check\',
+            expression  => $item[3],
+            on_conflict => $item[5][0], 
+        }
+    }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => 192
+                                                                                  }, 'Parse::RecDescent::Production' ),
+                                                                           bless( {
+                                                                                    'number' => '4',
+                                                                                    'strcount' => 0,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'DEFAULT',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 202
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'VALUE',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 202
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 203,
+                                                                                                          'code' => '{
+        $return   = {
+            type  => \'default\',
+            value => $item[2],
+        }
+    }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => 201
+                                                                                  }, 'Parse::RecDescent::Production' )
+                                                                         ],
+                                                              'name' => 'column_constraint',
+                                                              'vars' => '',
+                                                              'line' => 169
+                                                            }, 'Parse::RecDescent::Rule' ),
+                              'conflict_clause' => bless( {
+                                                            'impcount' => 0,
+                                                            'calls' => [
+                                                                         'conflict_algorigthm'
+                                                                       ],
+                                                            'changed' => 0,
+                                                            'opcount' => 0,
+                                                            'prods' => [
+                                                                         bless( {
+                                                                                  'number' => '0',
+                                                                                  'strcount' => 0,
+                                                                                  'dircount' => 0,
+                                                                                  'uncommit' => undef,
+                                                                                  'error' => undef,
+                                                                                  'patcount' => 1,
+                                                                                  'actcount' => 0,
+                                                                                  'items' => [
+                                                                                               bless( {
+                                                                                                        'pattern' => 'on conflict',
+                                                                                                        'hashname' => '__PATTERN1__',
+                                                                                                        'description' => '/on conflict/i',
+                                                                                                        'lookahead' => 0,
+                                                                                                        'rdelim' => '/',
+                                                                                                        'line' => 250,
+                                                                                                        'mod' => 'i',
+                                                                                                        'ldelim' => '/'
+                                                                                                      }, 'Parse::RecDescent::Token' ),
+                                                                                               bless( {
+                                                                                                        'subrule' => 'conflict_algorigthm',
+                                                                                                        'matchrule' => 0,
+                                                                                                        'implicit' => undef,
+                                                                                                        'argcode' => undef,
+                                                                                                        'lookahead' => 0,
+                                                                                                        'line' => 250
+                                                                                                      }, 'Parse::RecDescent::Subrule' )
+                                                                                             ],
+                                                                                  'line' => undef
+                                                                                }, 'Parse::RecDescent::Production' )
+                                                                       ],
+                                                            'name' => 'conflict_clause',
+                                                            'vars' => '',
+                                                            'line' => 250
+                                                          }, 'Parse::RecDescent::Rule' ),
+                              'trigger_action' => bless( {
+                                                           'impcount' => 0,
+                                                           'calls' => [
+                                                                        'for_each',
+                                                                        'when',
+                                                                        'BEGIN_C',
+                                                                        'trigger_step',
+                                                                        'END_C'
+                                                                      ],
+                                                           'changed' => 0,
+                                                           'opcount' => 0,
+                                                           'prods' => [
+                                                                        bless( {
+                                                                                 'number' => '0',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'for_each',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 0,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 1,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => '?',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 301
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'when',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 0,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 1,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => '?',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 301
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'BEGIN_C',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 301
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'trigger_step',
+                                                                                                       'expected' => undef,
+                                                                                                       'min' => 1,
+                                                                                                       'argcode' => undef,
+                                                                                                       'max' => 100000000,
+                                                                                                       'matchrule' => 0,
+                                                                                                       'repspec' => 's',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 301
+                                                                                                     }, 'Parse::RecDescent::Repetition' ),
+                                                                                              bless( {
+                                                                                                       'subrule' => 'END_C',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 301
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 302,
+                                                                                                       'code' => '{
+        $return = {
+            for_each => $item[1][0],
+            when     => $item[2][0],
+            steps    => $item[4],
+        }
+    }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' )
+                                                                      ],
+                                                           'name' => 'trigger_action',
+                                                           'vars' => '',
+                                                           'line' => 301
+                                                         }, 'Parse::RecDescent::Rule' ),
+                              'nonstring' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 1,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'pattern' => '[^;\\\'"]+',
+                                                                                                  'hashname' => '__PATTERN1__',
+                                                                                                  'description' => '/[^;\\\\\'"]+/',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'rdelim' => '/',
+                                                                                                  'line' => 317,
+                                                                                                  'mod' => '',
+                                                                                                  'ldelim' => '/'
+                                                                                                }, 'Parse::RecDescent::Token' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'nonstring',
+                                                      'vars' => '',
+                                                      'line' => 317
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'column_list' => bless( {
+                                                        'impcount' => 0,
+                                                        'calls' => [
+                                                                     'field_name'
+                                                                   ],
+                                                        'changed' => 0,
+                                                        'opcount' => 0,
+                                                        'prods' => [
+                                                                     bless( {
+                                                                              'number' => '0',
+                                                                              'strcount' => 0,
+                                                                              'dircount' => 1,
+                                                                              'uncommit' => undef,
+                                                                              'error' => undef,
+                                                                              'patcount' => 1,
+                                                                              'actcount' => 0,
+                                                                              'op' => [],
+                                                                              'items' => [
+                                                                                           bless( {
+                                                                                                    'expected' => '<leftop: field_name /,/ field_name>',
+                                                                                                    'min' => 1,
+                                                                                                    'name' => '\'field_name(s)\'',
+                                                                                                    'max' => 100000000,
+                                                                                                    'leftarg' => bless( {
+                                                                                                                          'subrule' => 'field_name',
+                                                                                                                          'matchrule' => 0,
+                                                                                                                          'implicit' => undef,
+                                                                                                                          'argcode' => undef,
+                                                                                                                          'lookahead' => 0,
+                                                                                                                          'line' => 257
+                                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                    'rightarg' => bless( {
+                                                                                                                           'subrule' => 'field_name',
+                                                                                                                           'matchrule' => 0,
+                                                                                                                           'implicit' => undef,
+                                                                                                                           'argcode' => undef,
+                                                                                                                           'lookahead' => 0,
+                                                                                                                           'line' => 257
+                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
+                                                                                                    'hashname' => '__DIRECTIVE1__',
+                                                                                                    'type' => 'leftop',
+                                                                                                    'op' => bless( {
+                                                                                                                     'pattern' => ',',
+                                                                                                                     'hashname' => '__PATTERN1__',
+                                                                                                                     'description' => '/,/',
+                                                                                                                     'lookahead' => 0,
+                                                                                                                     'rdelim' => '/',
+                                                                                                                     'line' => 257,
+                                                                                                                     'mod' => '',
+                                                                                                                     'ldelim' => '/'
+                                                                                                                   }, 'Parse::RecDescent::Token' )
+                                                                                                  }, 'Parse::RecDescent::Operator' )
+                                                                                         ],
+                                                                              'line' => undef
+                                                                            }, 'Parse::RecDescent::Production' )
+                                                                   ],
+                                                        'name' => 'column_list',
+                                                        'vars' => '',
+                                                        'line' => 257
+                                                      }, 'Parse::RecDescent::Rule' ),
+                              'SEMICOLON' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 1,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 0,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'pattern' => ';',
+                                                                                                  'hashname' => '__STRING1__',
+                                                                                                  'description' => '\';\'',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'line' => 394
+                                                                                                }, 'Parse::RecDescent::Literal' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'SEMICOLON',
+                                                      'vars' => '',
+                                                      'line' => 394
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'create' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [
+                                                                'CREATE',
+                                                                'TEMPORARY',
+                                                                'UNIQUE',
+                                                                'INDEX',
+                                                                'WORD',
+                                                                'ON',
+                                                                'table_name',
+                                                                'parens_field_list',
+                                                                'conflict_clause',
+                                                                'SEMICOLON',
+                                                                'TABLE',
+                                                                'definition',
+                                                                'TRIGGER',
+                                                                'NAME',
+                                                                'before_or_after',
+                                                                'database_event',
+                                                                'trigger_action',
+                                                                'instead_of',
+                                                                'view_name',
+                                                                'VIEW',
+                                                                'AS',
+                                                                'select_statement'
+                                                              ],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 0,
+                                                                         'actcount' => 1,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'subrule' => 'CREATE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TEMPORARY',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'UNIQUE',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'INDEX',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'WORD',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'ON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'table_name',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'parens_field_list',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'conflict_clause',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'SEMICOLON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 76
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 77,
+                                                                                               'code' => '{
+        my $db_name    = $item[7]->{\'db_name\'} || \'\';
+        my $table_name = $item[7]->{\'name\'};
+
+        my $index        =  { 
+            name         => $item[5],
+            columns       => $item[8],
+            on_conflict  => $item[9][0],
+            is_temporary => $item[2][0] ? 1 : 0,
+        };
+
+        my $is_unique = $item[3][0];
+
+        if ( $is_unique ) {
+            $index->{\'type\'} = \'unique\';
+            push @{ $tables{ $table_name }{\'constraints\'} }, $index;
+        }
+        else {
+            push @{ $tables{ $table_name }{\'indices\'} }, $index;
+        }
+    }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' ),
+                                                                bless( {
+                                                                         'number' => '1',
+                                                                         'strcount' => 2,
+                                                                         'dircount' => 1,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 1,
+                                                                         'op' => [],
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'subrule' => 'CREATE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TEMPORARY',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TABLE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'table_name',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'pattern' => '(',
+                                                                                               'hashname' => '__STRING1__',
+                                                                                               'description' => '\'(\'',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Literal' ),
+                                                                                      bless( {
+                                                                                               'expected' => '<leftop: definition /,/ definition>',
+                                                                                               'min' => 1,
+                                                                                               'name' => '\'definition(s)\'',
+                                                                                               'max' => 100000000,
+                                                                                               'leftarg' => bless( {
+                                                                                                                     'subrule' => 'definition',
+                                                                                                                     'matchrule' => 0,
+                                                                                                                     'implicit' => undef,
+                                                                                                                     'argcode' => undef,
+                                                                                                                     'lookahead' => 0,
+                                                                                                                     'line' => 102
+                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
+                                                                                               'rightarg' => bless( {
+                                                                                                                      'subrule' => 'definition',
+                                                                                                                      'matchrule' => 0,
+                                                                                                                      'implicit' => undef,
+                                                                                                                      'argcode' => undef,
+                                                                                                                      'lookahead' => 0,
+                                                                                                                      'line' => 102
+                                                                                                                    }, 'Parse::RecDescent::Subrule' ),
+                                                                                               'hashname' => '__DIRECTIVE1__',
+                                                                                               'type' => 'leftop',
+                                                                                               'op' => bless( {
+                                                                                                                'pattern' => ',',
+                                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                                'description' => '/,/',
+                                                                                                                'lookahead' => 0,
+                                                                                                                'rdelim' => '/',
+                                                                                                                'line' => 102,
+                                                                                                                'mod' => '',
+                                                                                                                'ldelim' => '/'
+                                                                                                              }, 'Parse::RecDescent::Token' )
+                                                                                             }, 'Parse::RecDescent::Operator' ),
+                                                                                      bless( {
+                                                                                               'pattern' => ')',
+                                                                                               'hashname' => '__STRING2__',
+                                                                                               'description' => '\')\'',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Literal' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'SEMICOLON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 102
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 103,
+                                                                                               'code' => '{
+        my $db_name    = $item[4]->{\'db_name\'} || \'\';
+        my $table_name = $item[4]->{\'name\'};
+
+        $tables{ $table_name }{\'name\'}         = $table_name;
+        $tables{ $table_name }{\'is_temporary\'} = $item[2][0] ? 1 : 0;
+        $tables{ $table_name }{\'order\'}        = ++$table_order;
+
+        for my $def ( @{ $item[6] } ) {
+            if ( $def->{\'supertype\'} eq \'column\' ) {
+                push @{ $tables{ $table_name }{\'columns\'} }, $def;
+            }
+            elsif ( $def->{\'supertype\'} eq \'constraint\' ) {
+                push @{ $tables{ $table_name }{\'constraints\'} }, $def;
+            }
+        }
+    }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' ),
+                                                                bless( {
+                                                                         'number' => '2',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 0,
+                                                                         'actcount' => 1,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'subrule' => 'CREATE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TEMPORARY',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TRIGGER',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'NAME',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'before_or_after',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'database_event',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'ON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'table_name',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'trigger_action',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'SEMICOLON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 269
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 270,
+                                                                                               'code' => '{
+        my $table_name = $item[8]->{\'name\'};
+        push @triggers, {
+            name         => $item[4],
+            is_temporary => $item[2][0] ? 1 : 0,
+            when         => $item[5][0],
+            instead_of   => 0,
+            db_events    => [ $item[6] ],
+            action       => $item[9],
+            on_table     => $table_name,
+        }
+    }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' ),
+                                                                bless( {
+                                                                         'number' => '3',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 0,
+                                                                         'actcount' => 1,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'subrule' => 'CREATE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TEMPORARY',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TRIGGER',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'NAME',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'instead_of',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'database_event',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'ON',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'view_name',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'trigger_action',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 283
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 284,
+                                                                                               'code' => '{
+        my $table_name = $item[8]->{\'name\'};
+        push @triggers, {
+            name         => $item[4],
+            is_temporary => $item[2][0] ? 1 : 0,
+            when         => undef,
+            instead_of   => 1,
+            db_events    => [ $item[6] ],
+            action       => $item[9],
+            on_table     => $table_name,
+        }
+    }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' ),
+                                                                bless( {
+                                                                         'number' => '4',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 0,
+                                                                         'actcount' => 1,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'subrule' => 'CREATE',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'TEMPORARY',
+                                                                                               'expected' => undef,
+                                                                                               'min' => 0,
+                                                                                               'argcode' => undef,
+                                                                                               'max' => 1,
+                                                                                               'matchrule' => 0,
+                                                                                               'repspec' => '?',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Repetition' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'VIEW',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'view_name',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'AS',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'subrule' => 'select_statement',
+                                                                                               'matchrule' => 0,
+                                                                                               'implicit' => undef,
+                                                                                               'argcode' => undef,
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 339
+                                                                                             }, 'Parse::RecDescent::Subrule' ),
+                                                                                      bless( {
+                                                                                               'hashname' => '__ACTION1__',
+                                                                                               'lookahead' => 0,
+                                                                                               'line' => 340,
+                                                                                               'code' => '{
+        push @views, {
+            name         => $item[4]->{\'name\'},
+            sql          => $item[6], 
+            is_temporary => $item[2][0] ? 1 : 0,
+        }
+    }'
+                                                                                             }, 'Parse::RecDescent::Action' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'create',
+                                                   'vars' => '',
+                                                   'line' => 75
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'when' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [
+                                                              'WHEN',
+                                                              'expr'
+                                                            ],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 0,
+                                                                       'actcount' => 1,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'subrule' => 'WHEN',
+                                                                                             'matchrule' => 0,
+                                                                                             'implicit' => undef,
+                                                                                             'argcode' => undef,
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 312
+                                                                                           }, 'Parse::RecDescent::Subrule' ),
+                                                                                    bless( {
+                                                                                             'subrule' => 'expr',
+                                                                                             'matchrule' => 0,
+                                                                                             'implicit' => undef,
+                                                                                             'argcode' => undef,
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 312
+                                                                                           }, 'Parse::RecDescent::Subrule' ),
+                                                                                    bless( {
+                                                                                             'hashname' => '__ACTION1__',
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 312,
+                                                                                             'code' => '{ $item[2] }'
+                                                                                           }, 'Parse::RecDescent::Action' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'when',
+                                                 'vars' => '',
+                                                 'line' => 312
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'NAME' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 1,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => '\'?(\\w+)\'?',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/\'?(\\\\w+)\'?/',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 396,
+                                                                                             'mod' => '',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' ),
+                                                                                    bless( {
+                                                                                             'hashname' => '__ACTION1__',
+                                                                                             'lookahead' => 0,
+                                                                                             'line' => 396,
+                                                                                             'code' => '{ $return = $1 }'
+                                                                                           }, 'Parse::RecDescent::Action' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'NAME',
+                                                 'vars' => '',
+                                                 'line' => 396
+                                               }, 'Parse::RecDescent::Rule' ),
+                              'ON' => bless( {
+                                               'impcount' => 0,
+                                               'calls' => [],
+                                               'changed' => 0,
+                                               'opcount' => 0,
+                                               'prods' => [
+                                                            bless( {
+                                                                     'number' => '0',
+                                                                     'strcount' => 0,
+                                                                     'dircount' => 0,
+                                                                     'uncommit' => undef,
+                                                                     'error' => undef,
+                                                                     'patcount' => 1,
+                                                                     'actcount' => 0,
+                                                                     'items' => [
+                                                                                  bless( {
+                                                                                           'pattern' => 'on',
+                                                                                           'hashname' => '__PATTERN1__',
+                                                                                           'description' => '/on/i',
+                                                                                           'lookahead' => 0,
+                                                                                           'rdelim' => '/',
+                                                                                           'line' => 384,
+                                                                                           'mod' => 'i',
+                                                                                           'ldelim' => '/'
+                                                                                         }, 'Parse::RecDescent::Token' )
+                                                                                ],
+                                                                     'line' => undef
+                                                                   }, 'Parse::RecDescent::Production' )
+                                                          ],
+                                               'name' => 'ON',
+                                               'vars' => '',
+                                               'line' => 384
+                                             }, 'Parse::RecDescent::Rule' ),
+                              'DEFAULT' => bless( {
+                                                    'impcount' => 0,
+                                                    'calls' => [],
+                                                    'changed' => 0,
+                                                    'opcount' => 0,
+                                                    'prods' => [
+                                                                 bless( {
+                                                                          'number' => '0',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 1,
+                                                                          'actcount' => 0,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => 'default',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/default/i',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 376,
+                                                                                                'mod' => 'i',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' )
+                                                               ],
+                                                    'name' => 'DEFAULT',
+                                                    'vars' => '',
+                                                    'line' => 376
+                                                  }, 'Parse::RecDescent::Rule' ),
+                              'begin_transaction' => bless( {
+                                                              'impcount' => 0,
+                                                              'calls' => [
+                                                                           'TRANSACTION',
+                                                                           'SEMICOLON'
+                                                                         ],
+                                                              'changed' => 0,
+                                                              'opcount' => 0,
+                                                              'prods' => [
+                                                                           bless( {
+                                                                                    'number' => '0',
+                                                                                    'strcount' => 0,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 1,
+                                                                                    'actcount' => 0,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'pattern' => 'begin',
+                                                                                                          'hashname' => '__PATTERN1__',
+                                                                                                          'description' => '/begin/i',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'rdelim' => '/',
+                                                                                                          'line' => 46,
+                                                                                                          'mod' => 'i',
+                                                                                                          'ldelim' => '/'
+                                                                                                        }, 'Parse::RecDescent::Token' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'TRANSACTION',
+                                                                                                          'expected' => undef,
+                                                                                                          'min' => 0,
+                                                                                                          'argcode' => undef,
+                                                                                                          'max' => 1,
+                                                                                                          'matchrule' => 0,
+                                                                                                          'repspec' => '?',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 46
+                                                                                                        }, 'Parse::RecDescent::Repetition' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'SEMICOLON',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 46
+                                                                                                        }, 'Parse::RecDescent::Subrule' )
+                                                                                               ],
+                                                                                    'line' => undef
+                                                                                  }, 'Parse::RecDescent::Production' )
+                                                                         ],
+                                                              'name' => 'begin_transaction',
+                                                              'vars' => '',
+                                                              'line' => 46
+                                                            }, 'Parse::RecDescent::Rule' ),
+                              'TRIGGER' => bless( {
+                                                    'impcount' => 0,
+                                                    'calls' => [],
+                                                    'changed' => 0,
+                                                    'opcount' => 0,
+                                                    'prods' => [
+                                                                 bless( {
+                                                                          'number' => '0',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 1,
+                                                                          'actcount' => 0,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => 'trigger',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/trigger/i',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 378,
+                                                                                                'mod' => 'i',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' )
+                                                               ],
+                                                    'name' => 'TRIGGER',
+                                                    'vars' => '',
+                                                    'line' => 378
+                                                  }, 'Parse::RecDescent::Rule' ),
+                              'select_statement' => bless( {
+                                                             'impcount' => 0,
+                                                             'calls' => [
+                                                                          'SELECT',
+                                                                          'SEMICOLON'
+                                                                        ],
+                                                             'changed' => 0,
+                                                             'opcount' => 0,
+                                                             'prods' => [
+                                                                          bless( {
+                                                                                   'number' => '0',
+                                                                                   'strcount' => 0,
+                                                                                   'dircount' => 0,
+                                                                                   'uncommit' => undef,
+                                                                                   'error' => undef,
+                                                                                   'patcount' => 1,
+                                                                                   'actcount' => 1,
+                                                                                   'items' => [
+                                                                                                bless( {
+                                                                                                         'subrule' => 'SELECT',
+                                                                                                         'matchrule' => 0,
+                                                                                                         'implicit' => undef,
+                                                                                                         'argcode' => undef,
+                                                                                                         'lookahead' => 0,
+                                                                                                         'line' => 348
+                                                                                                       }, 'Parse::RecDescent::Subrule' ),
+                                                                                                bless( {
+                                                                                                         'pattern' => '[^;]+',
+                                                                                                         'hashname' => '__PATTERN1__',
+                                                                                                         'description' => '/[^;]+/',
+                                                                                                         'lookahead' => 0,
+                                                                                                         'rdelim' => '/',
+                                                                                                         'line' => 348,
+                                                                                                         'mod' => '',
+                                                                                                         'ldelim' => '/'
+                                                                                                       }, 'Parse::RecDescent::Token' ),
+                                                                                                bless( {
+                                                                                                         'subrule' => 'SEMICOLON',
+                                                                                                         'matchrule' => 0,
+                                                                                                         'implicit' => undef,
+                                                                                                         'argcode' => undef,
+                                                                                                         'lookahead' => 0,
+                                                                                                         'line' => 348
+                                                                                                       }, 'Parse::RecDescent::Subrule' ),
+                                                                                                bless( {
+                                                                                                         'hashname' => '__ACTION1__',
+                                                                                                         'lookahead' => 0,
+                                                                                                         'line' => 349,
+                                                                                                         'code' => '{
+        $return = join( \' \', $item[1], $item[2] );
+    }'
+                                                                                                       }, 'Parse::RecDescent::Action' )
+                                                                                              ],
+                                                                                   'line' => undef
+                                                                                 }, 'Parse::RecDescent::Production' )
+                                                                        ],
+                                                             'name' => 'select_statement',
+                                                             'vars' => '',
+                                                             'line' => 348
+                                                           }, 'Parse::RecDescent::Rule' ),
+                              'if_exists' => bless( {
+                                                      'impcount' => 0,
+                                                      'calls' => [],
+                                                      'changed' => 0,
+                                                      'opcount' => 0,
+                                                      'prods' => [
+                                                                   bless( {
+                                                                            'number' => '0',
+                                                                            'strcount' => 0,
+                                                                            'dircount' => 0,
+                                                                            'uncommit' => undef,
+                                                                            'error' => undef,
+                                                                            'patcount' => 1,
+                                                                            'actcount' => 0,
+                                                                            'items' => [
+                                                                                         bless( {
+                                                                                                  'pattern' => 'if exists',
+                                                                                                  'hashname' => '__PATTERN1__',
+                                                                                                  'description' => '/if exists/i',
+                                                                                                  'lookahead' => 0,
+                                                                                                  'rdelim' => '/',
+                                                                                                  'line' => 330,
+                                                                                                  'mod' => 'i',
+                                                                                                  'ldelim' => '/'
+                                                                                                }, 'Parse::RecDescent::Token' )
+                                                                                       ],
+                                                                            'line' => undef
+                                                                          }, 'Parse::RecDescent::Production' )
+                                                                 ],
+                                                      'name' => 'if_exists',
+                                                      'vars' => '',
+                                                      'line' => 330
+                                                    }, 'Parse::RecDescent::Rule' ),
+                              'PRIMARY_KEY' => bless( {
+                                                        'impcount' => 0,
+                                                        'calls' => [],
+                                                        'changed' => 0,
+                                                        'opcount' => 0,
+                                                        'prods' => [
+                                                                     bless( {
+                                                                              'number' => '0',
+                                                                              'strcount' => 0,
+                                                                              'dircount' => 0,
+                                                                              'uncommit' => undef,
+                                                                              'error' => undef,
+                                                                              'patcount' => 1,
+                                                                              'actcount' => 0,
+                                                                              'items' => [
+                                                                                           bless( {
+                                                                                                    'pattern' => 'primary key',
+                                                                                                    'hashname' => '__PATTERN1__',
+                                                                                                    'description' => '/primary key/i',
+                                                                                                    'lookahead' => 0,
+                                                                                                    'rdelim' => '/',
+                                                                                                    'line' => 372,
+                                                                                                    'mod' => 'i',
+                                                                                                    'ldelim' => '/'
+                                                                                                  }, 'Parse::RecDescent::Token' )
+                                                                                         ],
+                                                                              'line' => undef
+                                                                            }, 'Parse::RecDescent::Production' )
+                                                                   ],
+                                                        'name' => 'PRIMARY_KEY',
+                                                        'vars' => '',
+                                                        'line' => 372
+                                                      }, 'Parse::RecDescent::Rule' ),
+                              'CREATE' => bless( {
+                                                   'impcount' => 0,
+                                                   'calls' => [],
+                                                   'changed' => 0,
+                                                   'opcount' => 0,
+                                                   'prods' => [
+                                                                bless( {
+                                                                         'number' => '0',
+                                                                         'strcount' => 0,
+                                                                         'dircount' => 0,
+                                                                         'uncommit' => undef,
+                                                                         'error' => undef,
+                                                                         'patcount' => 1,
+                                                                         'actcount' => 0,
+                                                                         'items' => [
+                                                                                      bless( {
+                                                                                               'pattern' => 'create',
+                                                                                               'hashname' => '__PATTERN1__',
+                                                                                               'description' => '/create/i',
+                                                                                               'lookahead' => 0,
+                                                                                               'rdelim' => '/',
+                                                                                               'line' => 362,
+                                                                                               'mod' => 'i',
+                                                                                               'ldelim' => '/'
+                                                                                             }, 'Parse::RecDescent::Token' )
+                                                                                    ],
+                                                                         'line' => undef
+                                                                       }, 'Parse::RecDescent::Production' )
+                                                              ],
+                                                   'name' => 'CREATE',
+                                                   'vars' => '',
+                                                   'line' => 362
+                                                 }, 'Parse::RecDescent::Rule' ),
+                              'comment' => bless( {
+                                                    'impcount' => 0,
+                                                    'calls' => [],
+                                                    'changed' => 0,
+                                                    'opcount' => 0,
+                                                    'prods' => [
+                                                                 bless( {
+                                                                          'number' => '0',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 1,
+                                                                          'actcount' => 1,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => '^\\s*(?:#|-{2}).*\\n',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/^\\\\s*(?:#|-\\{2\\}).*\\\\n/',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 58,
+                                                                                                'mod' => '',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' ),
+                                                                                       bless( {
+                                                                                                'hashname' => '__ACTION1__',
+                                                                                                'lookahead' => 0,
+                                                                                                'line' => 59,
+                                                                                                'code' => '{
+        my $comment =  $item[1];
+        $comment    =~ s/^\\s*(#|-{2})\\s*//;
+        $comment    =~ s/\\s*$//;
+        $return     = $comment;
+    }'
+                                                                                              }, 'Parse::RecDescent::Action' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' ),
+                                                                 bless( {
+                                                                          'number' => '1',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 3,
+                                                                          'actcount' => 1,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => '\\/\\*',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/\\\\/\\\\*/',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 66,
+                                                                                                'mod' => '',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' ),
+                                                                                       bless( {
+                                                                                                'pattern' => '[^\\*]+',
+                                                                                                'hashname' => '__PATTERN2__',
+                                                                                                'description' => '/[^\\\\*]+/',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 66,
+                                                                                                'mod' => '',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' ),
+                                                                                       bless( {
+                                                                                                'pattern' => '\\*\\/',
+                                                                                                'hashname' => '__PATTERN3__',
+                                                                                                'description' => '/\\\\*\\\\//',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 66,
+                                                                                                'mod' => '',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' ),
+                                                                                       bless( {
+                                                                                                'hashname' => '__ACTION1__',
+                                                                                                'lookahead' => 0,
+                                                                                                'line' => 67,
+                                                                                                'code' => '{
+        my $comment = $item[2];
+        $comment    =~ s/^\\s*|\\s*$//g;
+        $return = $comment;
+    }'
+                                                                                              }, 'Parse::RecDescent::Action' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' )
+                                                               ],
+                                                    'name' => 'comment',
+                                                    'vars' => '',
+                                                    'line' => 58
+                                                  }, 'Parse::RecDescent::Rule' ),
+                              'BEGIN_C' => bless( {
+                                                    'impcount' => 0,
+                                                    'calls' => [],
+                                                    'changed' => 0,
+                                                    'opcount' => 0,
+                                                    'prods' => [
+                                                                 bless( {
+                                                                          'number' => '0',
+                                                                          'strcount' => 0,
+                                                                          'dircount' => 0,
+                                                                          'uncommit' => undef,
+                                                                          'error' => undef,
+                                                                          'patcount' => 1,
+                                                                          'actcount' => 0,
+                                                                          'items' => [
+                                                                                       bless( {
+                                                                                                'pattern' => 'begin',
+                                                                                                'hashname' => '__PATTERN1__',
+                                                                                                'description' => '/begin/i',
+                                                                                                'lookahead' => 0,
+                                                                                                'rdelim' => '/',
+                                                                                                'line' => 356,
+                                                                                                'mod' => 'i',
+                                                                                                'ldelim' => '/'
+                                                                                              }, 'Parse::RecDescent::Token' )
+                                                                                     ],
+                                                                          'line' => undef
+                                                                        }, 'Parse::RecDescent::Production' )
+                                                               ],
+                                                    'name' => 'BEGIN_C',
+                                                    'vars' => '',
+                                                    'line' => 355
+                                                  }, 'Parse::RecDescent::Rule' ),
+                              'qualified_name' => bless( {
+                                                           'impcount' => 0,
+                                                           'calls' => [
+                                                                        'NAME'
+                                                                      ],
+                                                           'changed' => 0,
+                                                           'opcount' => 0,
+                                                           'prods' => [
+                                                                        bless( {
+                                                                                 'number' => '0',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 0,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'subrule' => 'NAME',
+                                                                                                       'matchrule' => 0,
+                                                                                                       'implicit' => undef,
+                                                                                                       'argcode' => undef,
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 242
+                                                                                                     }, 'Parse::RecDescent::Subrule' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 243,
+                                                                                                       'code' => '{ $return = { name => $item[1] } }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' ),
+                                                                        bless( {
+                                                                                 'number' => '1',
+                                                                                 'strcount' => 0,
+                                                                                 'dircount' => 0,
+                                                                                 'uncommit' => undef,
+                                                                                 'error' => undef,
+                                                                                 'patcount' => 1,
+                                                                                 'actcount' => 1,
+                                                                                 'items' => [
+                                                                                              bless( {
+                                                                                                       'pattern' => '(\\w+)\\.(\\w+)',
+                                                                                                       'hashname' => '__PATTERN1__',
+                                                                                                       'description' => '/(\\\\w+)\\\\.(\\\\w+)/',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'rdelim' => '/',
+                                                                                                       'line' => 245,
+                                                                                                       'mod' => '',
+                                                                                                       'ldelim' => '/'
+                                                                                                     }, 'Parse::RecDescent::Token' ),
+                                                                                              bless( {
+                                                                                                       'hashname' => '__ACTION1__',
+                                                                                                       'lookahead' => 0,
+                                                                                                       'line' => 246,
+                                                                                                       'code' => '{ $return = { db_name => $1, name => $2 } }'
+                                                                                                     }, 'Parse::RecDescent::Action' )
+                                                                                            ],
+                                                                                 'line' => undef
+                                                                               }, 'Parse::RecDescent::Production' )
+                                                                      ],
+                                                           'name' => 'qualified_name',
+                                                           'vars' => '',
+                                                           'line' => 242
+                                                         }, 'Parse::RecDescent::Rule' ),
+                              'parens_field_list' => bless( {
+                                                              'impcount' => 0,
+                                                              'calls' => [
+                                                                           'column_list'
+                                                                         ],
+                                                              'changed' => 0,
+                                                              'opcount' => 0,
+                                                              'prods' => [
+                                                                           bless( {
+                                                                                    'number' => '0',
+                                                                                    'strcount' => 2,
+                                                                                    'dircount' => 0,
+                                                                                    'uncommit' => undef,
+                                                                                    'error' => undef,
+                                                                                    'patcount' => 0,
+                                                                                    'actcount' => 1,
+                                                                                    'items' => [
+                                                                                                 bless( {
+                                                                                                          'pattern' => '(',
+                                                                                                          'hashname' => '__STRING1__',
+                                                                                                          'description' => '\'(\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 254
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'subrule' => 'column_list',
+                                                                                                          'matchrule' => 0,
+                                                                                                          'implicit' => undef,
+                                                                                                          'argcode' => undef,
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 254
+                                                                                                        }, 'Parse::RecDescent::Subrule' ),
+                                                                                                 bless( {
+                                                                                                          'pattern' => ')',
+                                                                                                          'hashname' => '__STRING2__',
+                                                                                                          'description' => '\')\'',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 254
+                                                                                                        }, 'Parse::RecDescent::Literal' ),
+                                                                                                 bless( {
+                                                                                                          'hashname' => '__ACTION1__',
+                                                                                                          'lookahead' => 0,
+                                                                                                          'line' => 255,
+                                                                                                          'code' => '{ $item[2] }'
+                                                                                                        }, 'Parse::RecDescent::Action' )
+                                                                                               ],
+                                                                                    'line' => undef
+                                                                                  }, 'Parse::RecDescent::Production' )
+                                                                         ],
+                                                              'name' => 'parens_field_list',
+                                                              'vars' => '',
+                                                              'line' => 254
+                                                            }, 'Parse::RecDescent::Rule' ),
+                              'VIEW' => bless( {
+                                                 'impcount' => 0,
+                                                 'calls' => [],
+                                                 'changed' => 0,
+                                                 'opcount' => 0,
+                                                 'prods' => [
+                                                              bless( {
+                                                                       'number' => '0',
+                                                                       'strcount' => 0,
+                                                                       'dircount' => 0,
+                                                                       'uncommit' => undef,
+                                                                       'error' => undef,
+                                                                       'patcount' => 1,
+                                                                       'actcount' => 0,
+                                                                       'items' => [
+                                                                                    bless( {
+                                                                                             'pattern' => 'view',
+                                                                                             'hashname' => '__PATTERN1__',
+                                                                                             'description' => '/view/i',
+                                                                                             'lookahead' => 0,
+                                                                                             'rdelim' => '/',
+                                                                                             'line' => 380,
+                                                                                             'mod' => 'i',
+                                                                                             'ldelim' => '/'
+                                                                                           }, 'Parse::RecDescent::Token' )
+                                                                                  ],
+                                                                       'line' => undef
+                                                                     }, 'Parse::RecDescent::Production' )
+                                                            ],
+                                                 'name' => 'VIEW',
+                                                 'vars' => '',
+                                                 'line' => 380
+                                               }, 'Parse::RecDescent::Rule' )
+                            }
+               }, 'Parse::RecDescent' );
+}
+
+=head1 AUTHOR
+
+Ken Y. Clark E<lt>kclark@cpan.orgE<gt>.
+