Use precompiled Parse::RecDescent parsers for moar speed
Peter Rabbitson [Mon, 16 Jan 2012 10:12:32 +0000 (11:12 +0100)]
Leverage the (hideous but effective) capability of Parse::RecDescent to
precompile concise gramars into multithousand line monsters. Improves
parsing and thus diffing speed considerably, i.e.:

Testing before:
Files=66, Tests=1851, 23 wallclock secs ( 0.38 usr  0.06 sys + 19.96 cusr  1.80 csys = 22.20 CPU)

Testing after:
Files=66, Tests=1858, 17 wallclock secs ( 0.38 usr  0.08 sys + 15.50 cusr  0.74 csys = 16.70 CPU)

A number of cleanups, including grammar fixes when transitioning from
q{} to heredocs. No functional changes at all.

18 files changed:
.gitignore
Changes
Makefile.PL
lib/SQL/Translator/Parser/Access.pm
lib/SQL/Translator/Parser/DB2.pm
lib/SQL/Translator/Parser/DB2/Grammar.pm [deleted file]
lib/SQL/Translator/Parser/MySQL.pm
lib/SQL/Translator/Parser/Oracle.pm
lib/SQL/Translator/Parser/PostgreSQL.pm
lib/SQL/Translator/Parser/SQLServer.pm
lib/SQL/Translator/Parser/SQLite.pm
lib/SQL/Translator/Parser/Storable.pm
lib/SQL/Translator/Parser/Sybase.pm
lib/SQL/Translator/Utils.pm
share/Grammar/DB2.gra [deleted file]
share/PrecompiledParsers/Parse/RecDescent/DDL/SQLT/README [new file with mode: 0644]
t/02mysql-parser.t
t/60roundtrip.t

index 219cd0e..85ea32c 100644 (file)
@@ -12,4 +12,5 @@ blib/
 inc/
 pm_to_blib
 t/data/roundtrip_autogen.yaml
+share/PrecompiledParsers/Parse/RecDescent/DDL/SQLT/*.pm
 *.swp
diff --git a/Changes b/Changes
index f28761e..8b29b8d 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,4 @@
+* All parser grammars are now precompiled for speed
 * Proper quoting support in SQLite
 * Support for triggers in PostgreSQL producer and parser
 * Correct Data Type in SQLT::Parser::DBI::PostgreSQL (patch from Andrew Pam)
index 2f90fe0..a777e44 100644 (file)
@@ -14,7 +14,7 @@ my $deps = {
     'Carp::Clan'               => 0,
     'IO::Dir'                  => 0,
     'IO::Scalar'               => 2.110,
-    'Parse::RecDescent'        => 1.962002,
+    'Parse::RecDescent'        => 1.964001,
     'Pod::Usage'               => 0,
     'DBI'                      => 0,
     'File::ShareDir'           => 1.0,
@@ -88,8 +88,54 @@ if ($Module::Install::AUTHOR) {
 WriteAll();
 
 sub _recompile_grammars {
-  # placeholder, will be used to recompile P::RD parsers before shipping
-  # will also allow to lose dependency on P::RD
+  require File::Spec;
+
+  my $compiled_parser_dir = File::Spec->catdir(qw/
+    share PrecompiledParsers Parse RecDescent DDL SQLT
+  /);
+
+  # Currently consider only single-name parsers containing a grammar marker
+  # This is somewhat fragile, but better than loading all kinds of parsers
+  # to some of which we may not even have the deps
+  my $parser_libdir = 'lib/SQL/Translator/Parser';
+  for my $parser_fn (glob "$parser_libdir/*.pm") {
+    die "$parser_fn does not look like a readable file\n"
+      unless ( -f $parser_fn and -r $parser_fn );
+
+    my ($type) = $parser_fn =~ /^\Q$parser_libdir\E\/(.+)\.pm$/i
+      or die "$parser_fn not named in expected format\n";
+
+    my $parser_source = do { local (@ARGV, $/) = $parser_fn; <> };
+    next unless $parser_source =~ /\$GRAMMAR.+?END_OF_GRAMMAR/s;
+
+
+    my $precomp_parser_fn = File::Spec->catfile($compiled_parser_dir, "$type.pm");
+
+    next if (
+      -f $precomp_parser_fn
+        and
+      (stat($parser_fn))[9] <= (stat($precomp_parser_fn))[9]
+    );
+
+
+    print "Precompiling parser for $type\n";
+
+    require $parser_fn;
+    require Parse::RecDescent;
+
+    Parse::RecDescent->Precompile(
+      do {
+        no strict 'refs';
+        ${"SQL::Translator::Parser::${type}::GRAMMAR"}
+          || die "No \$GRAMMAR global found in SQL::Translator::Parser::$type ($parser_fn)\n"
+      },
+      "Parse::RecDescent::DDL::SQLT::$type"
+    );
+
+    rename( "$type.pm", $precomp_parser_fn )
+      or die "Unable to move $type.pm to $compiled_parser_dir: $!\n";
+  }
+
 }
 
 sub _recreate_rt_source {
index 33621b1..bd51ec9 100644 (file)
@@ -21,23 +21,19 @@ something similar to the output of mdbtools (http://mdbtools.sourceforge.net/).
 
 use strict;
 use warnings;
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
+
 our $VERSION = '1.59';
-$DEBUG   = 0 unless defined $DEBUG;
 
-use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
+our $DEBUG;
+$DEBUG = 0 unless defined $DEBUG;
 
-@EXPORT_OK = qw(parse);
+use Data::Dumper;
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q!
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 {
     my ( %tables, $table_order, @table_comments );
@@ -263,7 +259,7 @@ not_null     : /not/i /null/i { $return = 0 }
 
 unsigned     : /unsigned/i { $return = 0 }
 
-default_val : /default/i /'(?:.*?\\')*.*?'|(?:')?[\w\d:.-]*(?:')?/
+default_val : /default/i /'(?:.*?\')*.*?'|(?:')?[\w\d:.-]*(?:')?/
     {
         $item[2] =~ s/^\s*'|'\s*$//g;
         $return  =  $item[2];
@@ -379,19 +375,20 @@ VALUE   : /[-+]?\.?\d+(?:[eE]\d+)?/
     | /NULL/
     { 'NULL' }
 
-!;
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('Access');
 
     my $result = $parser->startrule($data);
     return $translator->error( "Parse failed." ) unless defined $result;
index 3665d9d..0961f53 100644 (file)
 package SQL::Translator::Parser::DB2;
-use Data::Dumper;
-use SQL::Translator::Parser::DB2::Grammar;
-use Exporter;
+
+use warnings;
+use strict;
+
 use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
+
+our $DEBUG;
+
+use Data::Dumper;
+use SQL::Translator::Utils qw/ddl_parser_instance/;
+
+our $GRAMMAR = <<'END_OF_GRAMMAR';
+
+{
+    my ( %tables, $table_order, @table_comments, @views, @triggers );
+}
+
+#
+# The "eofile" rule makes the parser fail if any "statement" rule
+# fails.  Otherwise, the first successful match by a "statement"
+# won't cause the failure needed to know that the parse, as a whole,
+# failed. -ky
+#
+startrule : statement(s) eofile {
+    $return      = {
+        tables   => \%tables,
+        views    => \@views,
+        triggers => \@triggers,
+    }
+}
+
+eofile : /^\Z/
+
+statement : 
+    comment
+    | create
+    | <error>
+
+comment : /^\s*-{2}.*\n/
+    {
+        my $comment =  $item[1];
+        $comment    =~ s/^\s*(-{2})\s*//;
+        $comment    =~ s/\s*$//;
+        $return     = $comment;
+    }
+
+
+create: CREATE TRIGGER trigger_name before type /ON/i table_name reference_b(?) /FOR EACH ROW/i 'MODE DB2SQL' triggered_action
+{
+    my $table_name = $item{'table_name'}{'name'};
+    $return =  {
+        table      => $table_name,
+        schema     => $item{'trigger_name'}{'schema'},
+        name       => $item{'trigger_name'}{'name'},
+        when       => 'before',
+        db_event   => $item{'type'}->{'event'},
+        fields     => $item{'type'}{'fields'},
+        condition  => $item{'triggered_action'}{'condition'},
+        reference  => $item{'reference_b'},
+        granularity => $item[9],
+        action     => $item{'triggered_action'}{'statement'}
+    };
+
+    push @triggers, $return;
+}
+
+create: CREATE TRIGGER trigger_name after type /ON/i table_name reference_a(?) /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action
+{
+    my $table_name = $item{'table_name'}{'name'};
+    $return = {
+        table      => $table_name,
+        schema     => $item{'trigger_name'}{'schema'},
+        name       => $item{'trigger_name'}{'name'},
+        when       => 'after',
+        db_event   => $item{'type'}{'event'},
+        fields     => $item{'type'}{'fields'},
+        condition  => $item{'triggered_action'}{'condition'},
+        reference  => $item{'reference_a'},
+        granularity => $item[9],
+        action     => $item{'triggered_action'}{'statement'}
+    };
+
+    push @triggers, $return;
+}
+
+create: CREATE /FEDERATED|/i VIEW view_name column_list(?) /AS/i with_expression(?) SQL_procedure_statement
+{
+    $return = {
+        name   => $item{view_name}{name},
+        sql    => $item{SQL_procedure_statement},
+        with   => $item{'with_expression(?)'},
+        fields => $item{'column_list(?)'}
+    };
+    push @views, $return;
+}
+
+# create: CREATE /FEDERATED/i VIEW view_name col_list_or_of(?) /AS/i with_expression(?) fullselect options(?)
+
+# col_list_or_of: column_list | /OF/i ( root_view_definition | subview_definition )
+
+with_expression: /WITH/i common_table_expression(s /,/)
+{
+    $return = $item{'common_table_expression'};
+}
+
+SQL_procedure_statement: /[^;]*/ /(;|\z)/ { $return = $item[1] . $item[2] }
+
+column_list: '(' column_name(s /,/) ')'
+{
+    $return = join(' ', '(', @{$item[2]}, ')');
+}
+
+CREATE: /create/i
+
+TRIGGER: /trigger/i
+
+VIEW: /view/i
+
+INNER: /inner/i
+
+LEFT: /left/i
+
+RIGHT: /right/i
+
+FULL: /full/i
+
+OUTER: /outer/i
+
+WHERE: /where/i
+trigger_name: SCHEMA '.' NAME
+    { $return = { schema => $item[1], name => $item[3] } }
+    | NAME
+    { $return = { name => $item[1] } } 
+
+table_name: SCHEMA '.' NAME
+    { $return = { schema => $item[1], name => $item[3] } }
+    | NAME
+    { $return = { name => $item[1] } } 
+
+view_name: SCHEMA '.' NAME
+    { $return = { schema => $item[1], name => $item[3] } }
+    | NAME
+    { $return = { name => $item[1] } } 
+
+column_name: NAME
+
+identifier: NAME
+
+correlation_name: NAME
+
+numeric_constant: /\d+/
+
+SCHEMA: /\w+/
+
+SCHEMA: /\w{1,128}/
+
+NAME: /\w+/
+
+NAME: /\w{1,18}/
+options: /WITH/i ( /CASCADED/i | /LOCAL/i ) /CHECK\s+OPTION/i
+
+# root_view_definition: /MODE\s+DB2SQL/i '(' oid_column ( /,/ with_options )(?) ')'
+
+# subview_definition: /MODE\s+DB2SQL/i under_clause ( '(' with_options ')' )(?) /EXTEND/i(?)
+
+# oid_column: /REF\s+IS/i oid_column_name /USER\s+GENERATED\s+UNCHECKED/i(?)
+
+# with_options: ( column_name /WITH\s+OPTIONS/i ( /SCOPE/i ( typed_table_name | typed_view_name ) | /READ\s+ONLY/i )(s /,/) )(s /,/)
+
+# under_clause: /UNDER/i superview_name /INHERIT\s+SELECT\s+PRIVILEGES/i
+
+common_table_expression: table_name column_list /AS/i get_bracketed
+{
+    $return = { name  => $item{table_name}{name}, 
+                query => $item[4]
+                };
+}
+
+get_bracketed:  
+{ 
+    extract_bracketed($text, '(');
+}
+
+common_table_expression: table_name column_list /AS/i '(' fullselect ')'
+
+# fullselect: ( subselect | '(' fullselect ')' | values_clause ) ( ( /UNION/i | /UNION/i /ALL/i | /EXCEPT/i | /EXCEPT/i /ALL/i | /INTERSECT/i | /INTERSECT/i /ALL/i ) ( subselect | '(' fullselect ')' | values_clause ) )(s)
+
+# values_clause: /VALUES/i values_row(s /,/) 
+
+# values_row: ( expression | /NULL/i ) | '(' ( expression | /NULL/i )(s /,/) ')'
+
+# subselect:  select_clause from_clause where_clause(?) group_by_clause(?) having_clause(?)
+
+# select_clause: SELECT ( /ALL/i | /DISTINCT )(?) ( '*' | ( expression ( /AS|/i new_column_name )(?) | exposed_name '.*' )(s /,/) )
+
+# from_clause: /FROM/i table_name(s /,/)
+
+# from_clause: /FROM/i table_reference(s /,/)
+
+# table_reference:  
+#     ( 
+#       ( nickname 
+#       | table_name 
+#       | view_name 
+#       ) 
+#     | ( /ONLY/i
+#       | /OUTER/i 
+#       ) '(' 
+#       ( table_name 
+#       | view_name 
+#       ) ')' 
+#     ) correlation_clause(?) 
+#   | TABLE '(' function_name '(' expression(s? /,/) ')' ')'  correlation_clause 
+#   | TABLE(?) '(' fullselect ')' correlation_clause 
+#   | joined_table 
+  
+
+# correlation_clause: /AS/i(?) correlation_name column_list(?)
+
+# joined_table: 
+#    table_reference ( INNER 
+#                     | outer 
+#                     )(?) JOIN table_reference ON join_condition
+#   | '(' joined_table ')'
+  
+# outer: ( LEFT | RIGHT | FULL ) OUTER(?)
+
+where_clause: WHERE search_condition
+
+# group_by_clause: /GROUP\s+BY/i ( grouping_expression 
+#                                | grouping_sets
+#                                | super_groups
+#                                )(s /,/)
+
+# grouping_expression: expression
+
+# orderby_clause: /ORDER\s+BY/i ( sort_key ( /ASC/i | /DESC/i)(?) )(s /,/)
 
-@EXPORT_OK = qw(parse);
+# sort_key: simple_column_name | simple_integer | sort_key_expression
 
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
+# # Name of one of the selected columns!
+# simple_column_name: NAME
+
+# simple_integer: /\d+/ 
+#   { $item[1] <= $numberofcolumns && $item[1] > 1 }
+
+# sort_key_expression: expression
+#   { expression from select columns list, grouping_expression, column function.. }
+
+# grouping_sets: /GROUPING\s+SETS/i '(' ( 
+#                                         ( grouping_expression 
+#                                         | super_groups 
+#                                         ) 
+#                                       | '(' ( grouping_expression 
+#                                             | super_groups 
+#                                             )(s /,/) ')' 
+#                                       )(s /,/) ')' 
+
+# super_groups: /ROLLUP/i '(' grouping_expression_list ')' 
+#            | /CUBE/i '(' grouping_expression_list ')'
+#            | grand_total
+
+# grouping_expression_list:  ( grouping_expression 
+#                            | '(' grouping_expression(s /,/) ')' 
+#                            )(s /,/)
+
+# grand_total: '(' ')'
+
+# having_clause: /HAVING/i search_condition
+
+when_clause: /WHEN/i '(' search_condition ')' {$return = $item[3]}
+
+triggered_action: when_clause(?) SQL_procedure_statement
+{ $return = { 'condition' => $item[1][0],
+              'statement' => $item{'SQL_procedure_statement'} };
+}
+
+before: /NO CASCADE BEFORE/i
+
+after: /AFTER/i
+
+type: /UPDATE/i /OF/i column_name(s /,/) 
+{ $return = { event  => 'update_on',
+              fields => $item[3] }
+}
+
+type: ( /INSERT/i | /DELETE/i | /UPDATE/i )
+{ $return = { event => $item[1] } }
+
+reference_b: /REFERENCING/i old_new_corr(0..2)
+{ $return = join(' ', $item[1], join(' ', @{$item[2]}) ) }
+
+reference_a: /REFERENCING/i old_new_corr(0..2) old_new_table(0..2) 
+{ $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]})  ) }
+
+old_new_corr: /OLD/i /(AS)?/i correlation_name 
+{ $return = join(' ', @item[1..3] ) }
+| /NEW/i /(AS)?/i correlation_name
+{ $return = join(' ', @item[1..3] ) }
+
+old_new_table: /OLD_TABLE/i /(AS)?/i identifier
+{ $return = join(' ', @item[1..3] ) }
+| /NEW_TABLE/i /(AS)?/i identifier
+{ $return = join(' ', @item[1..3] ) }
+
+# Just parsing simple search conditions for now.
+search_condition: /[^)]+/
+
+expression: ( 
+              ( '+' 
+              | '-' 
+              )(?) 
+              ( function
+              | '(' expression ')'
+              | constant
+              | column_name
+              | host_variable
+              | special_register
+              | '(' scalar_fullselect ')' 
+              | labeled_duration
+              | case_expression
+              | cast_specification
+#              | dereference_operation
+              | OLAP_function
+              | method_invocation
+              | subtype_treatment
+              | sequence_reference 
+              )
+            )(s /operator/)
+
+operator: ( /CONCAT/i | '||' ) | '/' | '*' | '+' | '-' 
+
+function: ( /SYSIBM\.|/i sysibm_function 
+          | /SYSFUN\.|/i sysfun_function
+          | userdefined_function 
+          ) '(' func_args(s /,/)  ')'
+
+constant: int_const | float_const | dec_const | char_const | hex_const | grastr_const
+
+func_args: expression
+
+sysibm_function: ( /ABS/i | /ABSVAL/i )
+                | /AVG/i
+                | /BIGINT/i
+                | /BLOB/i
+                | /CHAR/i
+                | /CLOB/i
+                | /COALESCE/i
+                | ( /CONCAT/ | '||' )
+                | ( /CORRELATION/i | /CORR/ )
+                | /COUNT/i
+                | /COUNT_BIG/i
+                | (/COVARIANCE/i | /COVAR/i )
+                | /DATE/i
+                | /DAY/i
+                | /DAYS/i
+                | /DBCLOB/i
+                | ( /DECIMAL/i | /DEC/i )
+                | /DECRYPT_BIN/i
+                | /DECRYPT_CHAR/i
+                | /DEREF/i
+                | /DIGITS/i
+                | /DLCOMMENT/i
+                | /DLLINKTYPE/i
+                | /DLURLCOMPLETE/i
+                | /DLURLPATH/i
+                | /DLURLPATHONLY/i
+                | /DLURLSCHEME/i
+                | /DLURLSERVER/i
+                | /DLVALUE/i
+                | ( /DOUBLE/i | /DOUBLE_PRECISION/i )
+                | /ENCRYPT/i
+                | /EVENT_MON_STATE/i
+                | /FLOAT/i
+                | /GETHINT/i
+                | /GENERATE_UNIQUE/i
+                | /GRAPHIC/i
+                | /GROUPING/i
+                | /HEX/i
+                | /HOUR/i
+                | /IDENTITY_VAL_LOCAL/i
+                | ( /INTEGER/i | /INT/ )
+                | ( /LCASE/i | /LOWER/ )
+                | /LENGTH/i
+                | /LONG_VARCHAR/i
+                | /LONG_VARGRAPHIC/i
+                | /LTRIM/i
+                | /MAX/i
+                | /MICROSECOND/i
+                | /MIN/i
+                | /MINUTE/i
+                | /MONTH/i
+                | /MULTIPLY_ACT/i
+                | /NODENUMBER/i
+                | /NULLIF/i
+                | /PARTITON/i
+                | /POSSTR/i
+                | /RAISE_ERROR/i
+                | /REAL/i
+                | /REC2XML/i
+                | /REGR_AVGX/i
+                | /REGR_AVGY/i
+                | /REGR_COUNT/i
+                | ( /REGR_INTERCEPT/i | /REGR_ICPT/i )
+                | /REGR_R2/i
+                | /REGR_SLOPE/i
+                | /REGR_SXX/i
+                | /REGR_SXY/i
+                | /REGR_SYY/i
+                | /RTRIM/i
+                | /SECOND/i
+                | /SMALLINT/i
+                | /STDDEV/i
+                | /SUBSTR/i
+                | /SUM/i
+                | /TABLE_NAME/i
+                | /TABLE_SCHEMA/i
+                | /TIME/i
+                | /TIMESTAMP/i
+                | /TRANSLATE/i
+                | /TYPE_ID/i
+                | /TYPE_NAME/i
+                | /TYPE_SCHEMA/i
+                | ( /UCASE/i | /UPPER/i )
+                | /VALUE/i
+                | /VARCHAR/i
+                | /VARGRAPHIC/i
+                | ( /VARIANCE/i | /VAR/i )
+                | /YEAR/i
+
+sysfun: ( /ABS/i | /ABSVAL/i )
+                | /ACOS/i
+                | /ASCII/i
+                | /ASIN/i
+                | /ATAN/i
+                | /ATAN2/i
+                | ( /CEIL/i | /CEILING/i )
+                | /CHAR/i
+                | /CHR/i
+                | /COS/i
+                | /COT/i
+                | /DAYNAME/i
+                | /DAYOFWEEK/i
+                | /DAYOFWEEK_ISO/i
+                | /DAYOFYEAR/i
+                | /DEGREES/i
+                | /DIFFERENCE/i
+                | /DOUBLE/i
+                | /EXP/i
+                | /FLOOR/i
+                | /GET_ROUTINE_SAR/i
+                | /INSERT/i
+                | /JULIAN_DAY/i
+                | /LCASE/i
+                | /LEFT/i
+                | /LN/i
+                | /LOCATE/i
+                | /LOG/i
+                | /LOG10/i
+                | /LTRIM/i
+                | /MIDNIGHT_SECONDS/i
+                | /MOD/i
+                | /MONTHNAME/i
+                | /POWER/i
+                | /PUT_ROUTINE_SAR/i
+                | /QUARTER/i
+                | /RADIANS/i
+                | /RAND/i
+                | /REPEAT/i
+                | /REPLACE/i
+                | /RIGHT/i
+                | /ROUND/i
+                | /RTRIM/I
+                | /SIGN/i
+                | /SIN/i
+                | /SOUNDEX/i
+                | /SPACE/i
+                | /SQLCACHE_SNAPSHOT/i
+                | /SQRT/i
+                | /TAN/i
+                | /TIMESTAMP_ISO/i
+                | /TIMESTAMPDIFF/i
+                | ( /TRUNCATE/i | /TRUNC/i )
+                | /UCASE/i
+                | /WEEK/i
+                | /WEEK_ISO/i
+
+scalar_fullselect: '(' fullselect ')'
+
+labeled_duration: ld_type ld_duration
+
+ld_type: function 
+       | '(' expression ')' 
+       | constant 
+       | column_name 
+       | host_variable
+
+ld_duration: /YEARS?/i 
+           | /MONTHS?/i 
+           | /DAYS?/i 
+           | /HOURS?/i 
+           | /MINUTES?/i
+           | /SECONDS?/i
+           | /MICROSECONDS?/i
+
+case_expression: /CASE/i ( searched_when_clause 
+                         | simple_when_clause 
+                         ) 
+                         ( /ELSE\s+NULL/i 
+                         | /ELSE/i result_expression 
+                         )(?) /END/i
+
+searched_when_clause: ( /WHEN/i search_condition /THEN/i 
+                        ( result_expression 
+                        | /NULL/i
+                        )
+                      )(s)
+
+simple_when_clause: expression ( /WHEN/i search_condition /THEN/i 
+                                 ( result_expression 
+                                 | /NULL/i
+                                 )
+                               )(s)
+
+result_expression: expression 
+
+cast_specification: /CAST/i '(' ( expression 
+                                | /NULL/i
+                                | parameter_marker
+                                ) /AS/i data_type 
+                                  ( /SCOPE/ ( typed_table_name 
+                                            | typed_view_name
+                                            )
+                                  )(?) ')'
+
+dereference_operation: scoped_reference_expression '->' name1 
+                      (  '(' expression(s) ')' )(?)
+#                         ( '(' expression(s /,/) ')' )(?)
+
+
+
+scoped_reference_expression: expression 
+{ # scoped, reference 
+}
+
+name1: NAME
+
+OLAP_function: ranking_function 
+             | numbering_function
+             | aggregation_function
+
+ranking_function: ( /RANK/ '()' 
+                  | /DENSE_RANK|DENSERANK/i '()' 
+                  ) /OVER/i '(' window_partition_clause(?) window_order_clause ')'
+
+numbering_function: /ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause(?) 
+                      ( window_order_clause window_aggregation_group_clause(?) 
+                      )(?) 
+                      ( /RANGE\s+BETWEEN\s+UNBOUNDED\s+PRECEDING\s+AND\s+UNBBOUNDED\s+FOLLOWING/i 
+                      | window_aggregation_group_clause
+                      )(?) ')'
+
+window_partition_clause: /PARTITION\s+BY/i partitioning_expression(s /,/)
+
+window_order_clause: /ORDER\s+BY/i 
+                      ( sort_key_expression 
+                        ( asc_option 
+                        | desc_option 
+                        )(?)
+                      )(s /,/)
+
+asc_option: /ASC/i ( /NULLS\s+FIRST/i | /NULLS\s+LAST/i )(?)
+
+desc_option: /DESC/i ( /NULLS\s+FIRST/i | /NULLS\s+LAST/i )(?)
+
+window_aggregation_group_clause: ( /ROWS/i
+                                 | /RANGE/i
+                                 ) 
+                                 ( group_start
+                                 | group_between
+                                 | group_end
+                                 )
+
+group_start: /UNBOUNDED\s+PRECEDING/i 
+           | unsigned_constant /PRECEDING/i
+           | /CURRENT\s+ROW/i
+
+group_between: /BETWEEN/i group_bound1 /AND/i group_bound2
+
+group_bound1: /UNBOUNDED\s+PRECEDING/i 
+           | unsigned_constant /PRECEDING/i
+           | unsigned_constant /FOLLOWING/i
+           | /CURRENT\s+ROW/i
+
+group_bound2: /UNBOUNDED\s+PRECEDING/i 
+           | unsigned_constant /PRECEDING/i
+           | unsigned_constant /FOLLOWING/i
+           | /CURRENT\s+ROW/i
+
+group_end: /UNBOUNDED\s+PRECEDING/i 
+           | unsigned_constant /FOLLOWING/i 
+
+method_invocation: subject_expression '..' method_name
+                    ( '(' expression(s) ')' 
+#                    ( '(' expression(s /,/) ')' 
+                    )(?)
+
+subject_expression: expression
+{ # with static result type that is a used-defined struct type 
+}
+
+method_name: NAME
+{ # must be a method of subject_expression 
+}
+
+subtype_treatment: /TREAT/i '(' expression /AS/i data_type ')'
+
+sequence_reference: nextval_expression
+                  | prevval_expression
+
+nextval_expression: /NEXTVAL\s+FOR/i sequence_name
+
+prevval_expression: /PREVVAL\s+FOR/i sequence_name
+
+sequence_name: NAME
+
+
+search_condition: /NOT|/i ( predicate ( /SELECTIVITY/i numeric_constant )(?) | '(' search_condition ')' ) cond(s?)
+
+cond: ( /AND/i | /OR/i ) /NOT|/i ( predicate ( /SELECTIVITY/i numeric_constant )(?) | '(' search_condition ')' )
+
+predicate: basic_p | quantified_p | between_p | exists_p | in_p | like_p | null_p | type_p 
+
+basic_p: expression /(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=)/ expression
+
+quantified_p: expression1 /(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=)/ /SOME|ANY|ALL/i '(' fullselect ')'
+
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = SQL::Translator::Parser::DB2::Grammar->new();
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('DB2');
 
     my $result = $parser->startrule($data);
     return $translator->error( "Parse failed." ) unless defined $result;
diff --git a/lib/SQL/Translator/Parser/DB2/Grammar.pm b/lib/SQL/Translator/Parser/DB2/Grammar.pm
deleted file mode 100644 (file)
index 4452df2..0000000
+++ /dev/null
@@ -1,47955 +0,0 @@
-package SQL::Translator::Parser::DB2::Grammar;
-use Parse::RecDescent;
-
-{ my $ERRORS;
-
-
-package Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar;
-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::Parser::DB2::Grammar::AUTOLOAD    = sub
-{
-       no strict 'refs';
-       $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar/Parse::RecDescent/;
-       goto &{$AUTOLOAD};
-}
-}
-
-push @Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ISA, 'Parse::RecDescent';
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_17_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                 $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: [/DECIMAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DECIMAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECIMAL)//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: [/DECIMAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DEC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DEC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEC)//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: [/DEC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $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_17_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $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_17_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_17_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"triggered_action"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [triggered_action]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{triggered_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: [when_clause SQL_procedure_statement]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{triggered_action},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{triggered_action});
-               %item = (__RULE__ => q{triggered_action});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [when_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{triggered_action},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [when_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{triggered_action},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [when_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{triggered_action},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{when_clause(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{triggered_action},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{SQL_procedure_statement})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{triggered_action},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{triggered_action},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{SQL_procedure_statement}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{triggered_action},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = { 'condition' => $item[1][0],
-              'statement' => $item{'SQL_procedure_statement'} };
-};
-               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_clause SQL_procedure_statement]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{triggered_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{triggered_action},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{triggered_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{triggered_action},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{triggered_action},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_search_condition"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_search_condition]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                 $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: [predicate /SELECTIVITY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
-               %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{predicate}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/SELECTIVITY/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
-               %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $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: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_2_of_rule_search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $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{>>Matched production: ['(' search_condition ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $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_2_of_rule_search_condition},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $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_2_of_rule_search_condition},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"name1"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [name1]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{name1},
-                                 $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{name1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{name1});
-               %item = (__RULE__ => q{name1});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{name1},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{name1},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{name1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{name1},
-                                         $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{name1},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{name1},
-                                         $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{name1},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{name1},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cond"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cond]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                 $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: [predicate /SELECTIVITY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_cond});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{predicate}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/SELECTIVITY/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_cond});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $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: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $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{>>Matched production: ['(' search_condition ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $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_2_of_production_1_of_rule_cond},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule_cond},
-                                         $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_2_of_production_1_of_rule_cond},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression
-{
-       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_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_expression},
-                                 $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: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: ['+', or '-']},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['+', or '-']>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_expression},
-                                         $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_expression},
-                                        $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_expression},
-                                         $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_expression},
-                                         $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_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"SCHEMA"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [SCHEMA]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{SCHEMA},
-                                 $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{SCHEMA},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{SCHEMA});
-               %item = (__RULE__ => q{SCHEMA});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{SCHEMA},
-                                         $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{SCHEMA},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,128\}/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{SCHEMA},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{SCHEMA});
-               %item = (__RULE__ => q{SCHEMA});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,128\}/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{SCHEMA},
-                                         $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{1,128})//)
-               {
-                       
-                       $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\{1,128\}/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{SCHEMA},
-                                         $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{SCHEMA},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{SCHEMA},
-                                         $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{SCHEMA},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{SCHEMA},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_87_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                 $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: [/VARIANCE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/VARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARIANCE)//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: [/VARIANCE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/VAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/VAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VAR)//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: [/VAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $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_87_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $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_87_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_87_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
-{
-       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__alternation_1_of_production_1_of_rule_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['+']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['-']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['-']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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__alternation_1_of_production_1_of_rule_expression},
-                                        $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__alternation_1_of_production_1_of_rule_expression},
-                                         $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__alternation_1_of_production_1_of_rule_expression},
-                                         $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__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"get_bracketed"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [get_bracketed]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{get_bracketed},
-                                 $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{get_bracketed},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{get_bracketed});
-               %item = (__RULE__ => q{get_bracketed});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{get_bracketed},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { 
-    extract_bracketed($text, '(');
-};
-               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{get_bracketed},
-                                         $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{get_bracketed},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{get_bracketed},
-                                         $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{get_bracketed},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{get_bracketed},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"labeled_duration"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [labeled_duration]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{labeled_duration},
-                                 $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: [ld_type ld_duration]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{labeled_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{labeled_duration});
-               %item = (__RULE__ => q{labeled_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [ld_type]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{labeled_duration},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{labeled_duration},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [ld_type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{labeled_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{ld_type}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [ld_duration]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{labeled_duration},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{ld_duration})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_duration]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{labeled_duration},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [ld_duration]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{labeled_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{ld_duration}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [ld_type ld_duration]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{labeled_duration},
-                                         $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{labeled_duration},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{labeled_duration},
-                                         $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{labeled_duration},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{labeled_duration},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"group_end"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [group_end]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{group_end},
-                                 $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: [/UNBOUNDED\\s+PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_end});
-               %item = (__RULE__ => q{group_end});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//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: [/UNBOUNDED\\s+PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_end});
-               %item = (__RULE__ => q{group_end});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_end},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_end},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_end},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FOLLOWING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//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: [unsigned_constant /FOLLOWING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_end},
-                                         $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{group_end},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{group_end},
-                                         $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{group_end},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{group_end},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: [comment]},
-                                         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: [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::Parser::DB2::Grammar::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"}[1];
-               $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::Parser::DB2::Grammar::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"}[2];
-               
-               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::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause
-{
-       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__alternation_1_of_production_1_of_rule_simple_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_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: [result_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{result_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_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(?: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: [/NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                        $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__alternation_1_of_production_1_of_rule_simple_when_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $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__alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_case_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_case_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule_case_expression},
-                                 $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: [/ELSE\\s+NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ELSE\\s+NULL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE\s+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: [/ELSE\\s+NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ELSE/i result_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ELSE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE)//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: [result_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_case_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{result_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_case_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{result_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ELSE/i result_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $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_2_of_production_1_of_rule_case_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $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_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"subject_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [subject_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{subject_expression},
-                                 $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: [expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{subject_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{subject_expression});
-               %item = (__RULE__ => q{subject_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{subject_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{subject_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subject_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subject_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { # with static result type that is a used-defined struct type 
-};
-               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: [expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subject_expression},
-                                         $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{subject_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{subject_expression},
-                                         $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{subject_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{subject_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option
-{
-       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_desc_option"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_desc_option]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_desc_option},
-                                 $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: [/NULLS\\s+FIRST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//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: [/NULLS\\s+FIRST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//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: [/NULLS\\s+LAST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_desc_option},
-                                         $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_desc_option},
-                                        $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_desc_option},
-                                         $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_desc_option},
-                                         $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_desc_option},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: [SCHEMA '.' 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: [SCHEMA]},
-                                 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::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{view_name},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{SCHEMA}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['.']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{view_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\.//)
-               {
-                       
-                       $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: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{view_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{NAME})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{view_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{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
-               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: [SCHEMA '.' NAME]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [NAME]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{view_name});
-               %item = (__RULE__ => q{view_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [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::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{view_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{view_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{view_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{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::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond
-{
-       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_cond"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cond]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_cond},
-                                 $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: [/AND/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_cond});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//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: [/AND/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/OR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_cond});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/OR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OR)//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: [/OR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cond},
-                                         $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_cond},
-                                        $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_cond},
-                                         $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_cond},
-                                         $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_cond},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"numbering_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [numbering_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{numbering_function},
-                                 $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: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{numbering_function});
-               %item = (__RULE__ => q{numbering_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ROW_NUMBER|ROWNUMBER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROW_NUMBER|ROWNUMBER)//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 terminal: ['()']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $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 terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/OVER/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $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: [window_partition_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{window_partition_clause})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_partition_clause(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{window_order_clause})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_order_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_numbering_function]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_numbering_function(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_numbering_function]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule_numbering_function(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $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{__STRING3__}=$&;
-               
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numbering_function},
-                                         $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{numbering_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{numbering_function},
-                                         $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{numbering_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{numbering_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause
-{
-       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_window_aggregation_group_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_window_aggregation_group_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: [/ROWS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ROWS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_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(?:ROWS)//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: [/ROWS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RANGE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RANGE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_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(?:RANGE)//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: [/RANGE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_aggregation_group_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{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
-                                        $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_window_aggregation_group_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{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $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_window_aggregation_group_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"group_bound1"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [group_bound1]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{group_bound1},
-                                 $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: [/UNBOUNDED\\s+PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound1});
-               %item = (__RULE__ => q{group_bound1});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//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: [/UNBOUNDED\\s+PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound1});
-               %item = (__RULE__ => q{group_bound1});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_bound1},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_bound1},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/PRECEDING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//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: [unsigned_constant /PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound1});
-               %item = (__RULE__ => q{group_bound1});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_bound1},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_bound1},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FOLLOWING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//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: [unsigned_constant /FOLLOWING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound1},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound1});
-               %item = (__RULE__ => q{group_bound1});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $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\s+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: [/CURRENT\\s+ROW/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound1},
-                                         $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{group_bound1},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{group_bound1},
-                                         $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{group_bound1},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{group_bound1},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"OLAP_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [OLAP_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{OLAP_function},
-                                 $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: [ranking_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{OLAP_function});
-               %item = (__RULE__ => q{OLAP_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [ranking_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{OLAP_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ranking_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{OLAP_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [ranking_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{ranking_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [ranking_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [numbering_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{OLAP_function});
-               %item = (__RULE__ => q{OLAP_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [numbering_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{OLAP_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numbering_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{OLAP_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [numbering_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{numbering_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [numbering_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [aggregation_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{OLAP_function});
-               %item = (__RULE__ => q{OLAP_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [aggregation_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{OLAP_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::aggregation_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [aggregation_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{OLAP_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [aggregation_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{aggregation_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [aggregation_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OLAP_function},
-                                         $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{OLAP_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{OLAP_function},
-                                         $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{OLAP_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{OLAP_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_30_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                 $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: [/DOUBLE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//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: [/DOUBLE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DOUBLE_PRECISION/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE_PRECISION/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE_PRECISION)//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: [/DOUBLE_PRECISION/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $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_30_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $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_30_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_30_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::FULL
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"FULL"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [FULL]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{FULL},
-                                 $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: [/full/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{FULL},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{FULL});
-               %item = (__RULE__ => q{FULL});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/full/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{FULL},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:full)//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: [/full/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{FULL},
-                                         $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{FULL},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{FULL},
-                                         $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{FULL},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{FULL},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cast_specification"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cast_specification]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                 $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: [/SCOPE/ typed_table_name, or typed_view_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SCOPE/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SCOPE)//)
-               {
-                       
-                       $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__alternation_2_of_production_1_of_rule_cast_specification]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{typed_table_name, or typed_view_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/SCOPE/ typed_table_name, or typed_view_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $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_2_of_production_1_of_rule_cast_specification},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $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_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"case_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [case_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{case_expression},
-                                 $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: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{case_expression});
-               %item = (__RULE__ => q{case_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CASE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASE)//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_case_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{case_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{searched_when_clause, or simple_when_clause})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_case_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{case_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_case_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_case_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{case_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/ELSE\\s+NULL/i, or /ELSE/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{case_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_case_expression]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule_case_expression(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/END/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/END/i})->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{__PATTERN2__}=$&;
-               
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{case_expression},
-                                         $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{case_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{case_expression},
-                                         $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{case_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{case_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::operator
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"operator"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [operator]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{operator},
-                                 $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: [/CONCAT/i, or '||']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{operator});
-               %item = (__RULE__ => q{operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_operator]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{operator},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_operator]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{operator},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_operator]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_operator}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i, or '||']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['/']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{operator});
-               %item = (__RULE__ => q{operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['/']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $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{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['*']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{operator});
-               %item = (__RULE__ => q{operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['*']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $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{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['+']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{operator});
-               %item = (__RULE__ => q{operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['+']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $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{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['-']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{operator});
-               %item = (__RULE__ => q{operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['-']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{operator},
-                                         $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{operator},
-                                         $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{operator},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{operator},
-                                         $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{operator},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{operator},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_type"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_type]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_2_of_rule_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: [/INSERT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_2_of_rule_type});
-               %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//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: [/INSERT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DELETE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_2_of_rule_type});
-               %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DELETE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $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)//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/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_2_of_rule_type});
-               %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_type},
-                                         $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)//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: [/UPDATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_2_of_rule_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{_alternation_1_of_production_2_of_rule_type},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_2_of_rule_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{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_2_of_rule_type},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_8_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                 $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: [/CONCAT/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//)
-               {
-                       
-                       $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: [/CONCAT/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['||']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['||']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $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{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $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_8_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $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_8_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_8_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"sequence_reference"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [sequence_reference]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{sequence_reference},
-                                 $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: [nextval_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sequence_reference},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sequence_reference});
-               %item = (__RULE__ => q{sequence_reference});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [nextval_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sequence_reference},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [nextval_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sequence_reference},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [nextval_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sequence_reference},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{nextval_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [nextval_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sequence_reference},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [prevval_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sequence_reference},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sequence_reference});
-               %item = (__RULE__ => q{sequence_reference});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [prevval_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sequence_reference},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [prevval_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sequence_reference},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [prevval_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sequence_reference},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{prevval_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [prevval_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sequence_reference},
-                                         $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{sequence_reference},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{sequence_reference},
-                                         $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{sequence_reference},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{sequence_reference},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{sysibm_function},
-                                 $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: [/ABS/i, or /ABSVAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/AVG/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AVG/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AVG)//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: [/AVG/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/BIGINT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/BIGINT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BIGINT)//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: [/BIGINT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/BLOB/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/BLOB/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BLOB)//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: [/BLOB/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//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: [/CHAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CLOB/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CLOB/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CLOB)//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: [/CLOB/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COALESCE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[6];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COALESCE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COALESCE)//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: [/COALESCE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CONCAT/, or '||']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[7];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_8_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/, or '||']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i, or /CORR/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[8];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_9_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i, or /CORR/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COUNT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[9];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COUNT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT)//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: [/COUNT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COUNT_BIG/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[10];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COUNT_BIG/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT_BIG)//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: [/COUNT_BIG/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i, or /COVAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[11];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_12_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i, or /COVAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[12];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DATE)//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: [/DATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[13];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAY)//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: [/DAY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[14];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS)//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: [/DAYS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DBCLOB/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[15];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DBCLOB/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DBCLOB)//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: [/DBCLOB/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i, or /DEC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[16];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_17_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i, or /DEC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_BIN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[17];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_BIN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_BIN)//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: [/DECRYPT_BIN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_CHAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[18];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_CHAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_CHAR)//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: [/DECRYPT_CHAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DEREF/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[19];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DEREF/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEREF)//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: [/DEREF/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DIGITS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[20];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DIGITS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIGITS)//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: [/DIGITS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLCOMMENT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[21];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLCOMMENT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLCOMMENT)//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: [/DLCOMMENT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLLINKTYPE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[22];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLLINKTYPE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLLINKTYPE)//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: [/DLLINKTYPE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLURLCOMPLETE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[23];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLURLCOMPLETE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLCOMPLETE)//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: [/DLURLCOMPLETE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLURLPATH/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[24];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATH/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATH)//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: [/DLURLPATH/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLURLPATHONLY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[25];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATHONLY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATHONLY)//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: [/DLURLPATHONLY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLURLSCHEME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[26];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSCHEME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSCHEME)//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: [/DLURLSCHEME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLURLSERVER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[27];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSERVER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSERVER)//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: [/DLURLSERVER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DLVALUE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[28];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DLVALUE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLVALUE)//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: [/DLVALUE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[29];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_30_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ENCRYPT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[30];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ENCRYPT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ENCRYPT)//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: [/ENCRYPT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/EVENT_MON_STATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[31];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/EVENT_MON_STATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EVENT_MON_STATE)//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: [/EVENT_MON_STATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/FLOAT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[32];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FLOAT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOAT)//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: [/FLOAT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/GETHINT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[33];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/GETHINT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GETHINT)//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: [/GETHINT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/GENERATE_UNIQUE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[34];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/GENERATE_UNIQUE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GENERATE_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{>>Matched production: [/GENERATE_UNIQUE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/GRAPHIC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[35];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/GRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GRAPHIC)//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: [/GRAPHIC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/GROUPING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[36];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/GROUPING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GROUPING)//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: [/GROUPING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/HEX/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[37];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/HEX/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HEX)//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: [/HEX/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/HOUR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[38];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/HOUR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOUR)//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: [/HOUR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/IDENTITY_VAL_LOCAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[39];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/IDENTITY_VAL_LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:IDENTITY_VAL_LOCAL)//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: [/IDENTITY_VAL_LOCAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i, or /INT/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[40];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_41_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i, or /INT/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LCASE/i, or /LOWER/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[41];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_42_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i, or /LOWER/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LENGTH/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[42];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LENGTH/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LENGTH)//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: [/LENGTH/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LONG_VARCHAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[43];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARCHAR)//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: [/LONG_VARCHAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LONG_VARGRAPHIC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[44];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARGRAPHIC)//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: [/LONG_VARGRAPHIC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[45];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//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: [/LTRIM/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MAX/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[46];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MAX/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MAX)//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: [/MAX/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MICROSECOND/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[47];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECOND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECOND)//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: [/MICROSECOND/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MIN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[48];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MIN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIN)//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: [/MIN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MINUTE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[49];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MINUTE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTE)//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: [/MINUTE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MONTH/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[50];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MONTH/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTH)//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: [/MONTH/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MULTIPLY_ACT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[51];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MULTIPLY_ACT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MULTIPLY_ACT)//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: [/MULTIPLY_ACT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NODENUMBER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[52];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NODENUMBER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NODENUMBER)//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: [/NODENUMBER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULLIF/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[53];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULLIF/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLIF)//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: [/NULLIF/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/PARTITON/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[54];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PARTITON/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PARTITON)//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: [/PARTITON/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/POSSTR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[55];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/POSSTR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POSSTR)//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: [/POSSTR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RAISE_ERROR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[56];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RAISE_ERROR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAISE_ERROR)//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: [/RAISE_ERROR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[57];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REAL)//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: [/REAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REC2XML/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[58];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REC2XML/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REC2XML)//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: [/REC2XML/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGX/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[59];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGX/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGX)//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: [/REGR_AVGX/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[60];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGY)//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: [/REGR_AVGY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_COUNT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[61];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_COUNT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_COUNT)//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: [/REGR_COUNT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[62];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_63_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_R2/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[63];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_R2/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_R2)//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: [/REGR_R2/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_SLOPE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[64];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SLOPE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SLOPE)//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: [/REGR_SLOPE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_SXX/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[65];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXX/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXX)//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: [/REGR_SXX/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_SXY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[66];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXY)//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: [/REGR_SXY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_SYY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[67];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SYY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SYY)//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: [/REGR_SYY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RTRIM/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[68];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//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: [/RTRIM/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SECOND/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[69];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SECOND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECOND)//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: [/SECOND/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SMALLINT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[70];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SMALLINT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SMALLINT)//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: [/SMALLINT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/STDDEV/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[71];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/STDDEV/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:STDDEV)//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: [/STDDEV/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SUBSTR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[72];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SUBSTR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUBSTR)//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: [/SUBSTR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SUM/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[73];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SUM/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUM)//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: [/SUM/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TABLE_NAME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[74];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $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_NAME)//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_NAME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TABLE_SCHEMA/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[75];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $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_SCHEMA)//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_SCHEMA/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TIME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[76];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TIME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIME)//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: [/TIME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[77];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?: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{>>Matched production: [/TIMESTAMP/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TRANSLATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[78];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TRANSLATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRANSLATE)//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: [/TRANSLATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TYPE_ID/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[79];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_ID/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_ID)//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: [/TYPE_ID/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TYPE_NAME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[80];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_NAME)//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: [/TYPE_NAME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TYPE_SCHEMA/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[81];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_SCHEMA)//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: [/TYPE_SCHEMA/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/UCASE/i, or /UPPER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[82];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_83_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i, or /UPPER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/VALUE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[83];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/VALUE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VALUE)//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: [/VALUE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/VARCHAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[84];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARCHAR)//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: [/VARCHAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/VARGRAPHIC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[85];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARGRAPHIC)//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: [/VARGRAPHIC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i, or /VAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[86];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysibm_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysibm_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_87_of_rule_sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i, or /VAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/YEAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[87];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysibm_function});
-               %item = (__RULE__ => q{sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/YEAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEAR)//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: [/YEAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysibm_function},
-                                         $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{sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{sysibm_function},
-                                         $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{sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"window_partition_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [window_partition_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{window_partition_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: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{window_partition_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{window_partition_clause});
-               %item = (__RULE__ => q{window_partition_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PARTITION\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{window_partition_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(?:PARTITION\s+BY)//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 operator: [<leftop: partitioning_expression /,/ partitioning_expression>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_partition_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: partitioning_expression /,/ partitioning_expression>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_partition_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{partitioning_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_partition_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_partition_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{partitioning_expression}} = $_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{window_partition_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(?:,)//)
-               {
-                       
-                       $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__}=$&;
-               
-
-                       pop @item;
-                       if (defined $1) {push @item, $item{'partitioning_expression(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_partition_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{partitioning_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_partition_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_partition_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{partitioning_expression}} = $_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: partitioning_expression /,/ partitioning_expression>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_partition_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: partitioning_expression /,/ partitioning_expression>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_partition_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'partitioning_expression(s)'}=$_tok||[];
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_partition_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{window_partition_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{window_partition_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{window_partition_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{window_partition_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"WHERE"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [WHERE]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{WHERE},
-                                 $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: [/where/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{WHERE},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{WHERE});
-               %item = (__RULE__ => q{WHERE});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/where/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{WHERE},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:where)//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: [/where/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{WHERE},
-                                         $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{WHERE},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{WHERE},
-                                         $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{WHERE},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{WHERE},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun
-{
-       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_sysfun"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_sysfun},
-                                 $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: [/ABS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//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: [/ABS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//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: [/ABSVAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysfun},
-                                         $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_sysfun},
-                                        $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_sysfun},
-                                         $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_sysfun},
-                                         $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_sysfun},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function
-{
-       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_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_function},
-                                 $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: [/SYSIBM\\.|/i sysibm_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SYSIBM\\.|/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSIBM\.|)//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: [sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sysibm_function})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysibm_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sysibm_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sysibm_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i sysibm_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SYSFUN\\.|/i sysfun_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SYSFUN\\.|/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSFUN\.|)//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: [sysfun_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sysfun_function})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysfun_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sysfun_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sysfun_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/SYSFUN\\.|/i sysfun_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [userdefined_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [userdefined_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::userdefined_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [userdefined_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [userdefined_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{userdefined_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [userdefined_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_function},
-                                         $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_function},
-                                        $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_function},
-                                         $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_function},
-                                         $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_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"identifier"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [identifier]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{identifier},
-                                 $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{identifier},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{identifier});
-               %item = (__RULE__ => q{identifier});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{identifier},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{identifier},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{identifier},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{identifier},
-                                         $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{identifier},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{identifier},
-                                         $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{identifier},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{identifier},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause
-{
-       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__alternation_1_of_production_1_of_rule_window_order_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_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: [asc_option]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [asc_option]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [asc_option]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [asc_option]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{asc_option}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [asc_option]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [desc_option]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [desc_option]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [desc_option]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [desc_option]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{desc_option}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [desc_option]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                        $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__alternation_1_of_production_1_of_rule_window_order_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $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__alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"result_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [result_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{result_expression},
-                                 $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: [expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{result_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{result_expression});
-               %item = (__RULE__ => q{result_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{result_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{result_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{result_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{result_expression},
-                                         $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{result_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{result_expression},
-                                         $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{result_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{result_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"scoped_reference_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [scoped_reference_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{scoped_reference_expression},
-                                 $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: [expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{scoped_reference_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{scoped_reference_expression});
-               %item = (__RULE__ => q{scoped_reference_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{scoped_reference_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{scoped_reference_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scoped_reference_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scoped_reference_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { # scoped, reference 
-};
-               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: [expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scoped_reference_expression},
-                                         $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{scoped_reference_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{scoped_reference_expression},
-                                         $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{scoped_reference_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{scoped_reference_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification
-{
-       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__alternation_2_of_production_1_of_rule_cast_specification"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                 $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: [typed_table_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [typed_table_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_table_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [typed_table_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{typed_table_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [typed_table_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [typed_view_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [typed_view_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_view_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [typed_view_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{typed_view_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [typed_view_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $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__alternation_2_of_production_1_of_rule_cast_specification},
-                                        $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__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $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__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $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__alternation_2_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{when_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: [/WHEN/i '(' search_condition ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{when_clause});
-               %item = (__RULE__ => q{when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{when_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(?: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{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{when_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\(//)
-               {
-                       
-                       $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: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{when_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\)//)
-               {
-                       
-                       $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{when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do {$return = $item[3]};
-               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/i '(' search_condition ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{when_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{when_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{when_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{when_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option
-{
-       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_asc_option"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_asc_option]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_asc_option},
-                                 $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: [/NULLS\\s+FIRST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//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: [/NULLS\\s+FIRST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//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: [/NULLS\\s+LAST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_asc_option},
-                                         $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_asc_option},
-                                        $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_asc_option},
-                                         $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_asc_option},
-                                         $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_asc_option},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"sequence_name"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [sequence_name]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{sequence_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{sequence_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sequence_name});
-               %item = (__RULE__ => q{sequence_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sequence_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sequence_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{sequence_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{sequence_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{sequence_name},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{sequence_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{sequence_name},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{sequence_name},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"ld_duration"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [ld_duration]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{ld_duration},
-                                 $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: [/YEARS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/YEARS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEARS?)//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: [/YEARS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MONTHS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MONTHS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHS?)//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: [/MONTHS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS?)//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: [/DAYS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/HOURS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/HOURS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOURS?)//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: [/HOURS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MINUTES?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MINUTES?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTES?)//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: [/MINUTES?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SECONDS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECONDS?)//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: [/SECONDS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MICROSECONDS?/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[6];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_duration});
-               %item = (__RULE__ => q{ld_duration});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECONDS?)//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: [/MICROSECONDS?/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_duration},
-                                         $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{ld_duration},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{ld_duration},
-                                         $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{ld_duration},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{ld_duration},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"reference_a"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [reference_a]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{reference_a},
-                                 $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: [/REFERENCING/i old_new_corr old_new_table]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{reference_a},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{reference_a});
-               %item = (__RULE__ => q{reference_a});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{reference_a},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//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: [old_new_corr]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{reference_a},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{old_new_corr})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{reference_a},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_a},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{old_new_corr(0..2)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_table]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{reference_a},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{old_new_table})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table, 0, 2, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_table]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{reference_a},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_table]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_a},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{old_new_table(0..2)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_a},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]})  ) };
-               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: [/REFERENCING/i old_new_corr old_new_table]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_a},
-                                         $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{reference_a},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{reference_a},
-                                         $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{reference_a},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{reference_a},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"cast_specification"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [cast_specification]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{cast_specification},
-                                 $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: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{cast_specification});
-               %item = (__RULE__ => q{cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CAST/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CAST)//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 terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $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: [_alternation_1_of_production_1_of_rule_cast_specification]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{expression, or /NULL/i, or parameter_marker})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cast_specification]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cast_specification]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_cast_specification}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AS/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{data_type})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{data_type}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/SCOPE/]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/SCOPE/})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SCOPE/]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_cast_specification]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule_cast_specification(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $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{>>Matched production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cast_specification},
-                                         $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{cast_specification},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{cast_specification},
-                                         $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{cast_specification},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{cast_specification},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]},
-                                         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 terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $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)//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 terminal: [/OF/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/OF/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?: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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying operator: [<leftop: column_name /,/ column_name>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{column_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_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{type},
-                                         $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__}=$&;
-               
-
-                       pop @item;
-                       if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{column_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_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: column_name /,/ column_name>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'column_name(s)'}=$_tok||[];
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = { event  => 'update_on',
-              fields => $item[3] }
-};
-               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: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{type});
-               %item = (__RULE__ => q{type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_type]},
-                                 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::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_2_of_rule_type}} = $_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 = { event => $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: [/INSERT/i, or /DELETE/i, or /UPDATE/i]<<},
-                                         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::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_12_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                 $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: [/COVARIANCE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COVARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVARIANCE)//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: [/COVARIANCE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COVAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COVAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVAR)//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: [/COVAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $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_12_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $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_12_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_12_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"scalar_fullselect"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [scalar_fullselect]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{scalar_fullselect},
-                                 $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: ['(' fullselect ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{scalar_fullselect},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{scalar_fullselect});
-               %item = (__RULE__ => q{scalar_fullselect});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scalar_fullselect},
-                                         $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: [fullselect]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{scalar_fullselect},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{fullselect})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{scalar_fullselect},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scalar_fullselect},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{fullselect}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scalar_fullselect},
-                                         $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{>>Matched production: ['(' fullselect ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{scalar_fullselect},
-                                         $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{scalar_fullselect},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{scalar_fullselect},
-                                         $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{scalar_fullselect},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{scalar_fullselect},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options
-{
-       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_options"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_options]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_options},
-                                 $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: [/CASCADED/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_options});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CASCADED/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASCADED)//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: [/CASCADED/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LOCAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_options});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCAL)//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: [/LOCAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_options},
-                                         $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_options},
-                                        $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_options},
-                                         $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_options},
-                                         $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_options},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"func_args"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [func_args]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{func_args},
-                                 $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: [expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{func_args},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{func_args});
-               %item = (__RULE__ => q{func_args});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{func_args},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{func_args},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{func_args},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{func_args},
-                                         $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{func_args},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{func_args},
-                                         $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{func_args},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{func_args},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: [SCHEMA '.' 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: [SCHEMA]},
-                                 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::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{trigger_name},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{SCHEMA}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['.']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{trigger_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\.//)
-               {
-                       
-                       $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: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{trigger_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{NAME})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{trigger_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{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
-               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: [SCHEMA '.' NAME]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [NAME]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{trigger_name});
-               %item = (__RULE__ => q{trigger_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [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::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{trigger_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{trigger_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{trigger_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{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::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_numbering_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_numbering_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                 $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: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANGE\s+BETWEEN\s+UNBOUNDED\s+PRECEDING\s+AND\s+UNBBOUNDED\s+FOLLOWING)//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: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [window_aggregation_group_clause]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_aggregation_group_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [window_aggregation_group_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_aggregation_group_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [window_aggregation_group_clause]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $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_2_of_production_1_of_rule_numbering_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $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_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"method_name"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [method_name]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{method_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{method_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{method_name});
-               %item = (__RULE__ => q{method_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{method_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{method_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{method_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { # must be a method of subject_expression 
-};
-               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{method_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{method_name},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{method_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{method_name},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{method_name},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"quantified_p"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [quantified_p]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{quantified_p},
-                                 $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: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{quantified_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{quantified_p});
-               %item = (__RULE__ => q{quantified_p});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression1]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{quantified_p},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression1]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{quantified_p},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression1]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression1}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $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: [/SOME|ANY|ALL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/SOME|ANY|ALL/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOME|ANY|ALL)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $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: [fullselect]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{quantified_p},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{fullselect})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{quantified_p},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{fullselect}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $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{>>Matched production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{quantified_p},
-                                         $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{quantified_p},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{quantified_p},
-                                         $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{quantified_p},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{quantified_p},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"common_table_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [common_table_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{common_table_expression},
-                                 $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_name column_list /AS/i get_bracketed]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{common_table_expression});
-               %item = (__RULE__ => q{common_table_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $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{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{table_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $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::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $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{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_list}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AS/i})->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{Trying subrule: [get_bracketed]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{get_bracketed})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [get_bracketed]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [get_bracketed]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{get_bracketed}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do {
-    $return = { name  => $item{table_name}{name}, 
-                query => $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: [table_name column_list /AS/i get_bracketed]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i '(' fullselect ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{common_table_expression});
-               %item = (__RULE__ => q{common_table_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $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{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{table_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $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::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $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{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_list}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AS/i})->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{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $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: [fullselect]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{common_table_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{fullselect})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{common_table_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{fullselect}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $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{>>Matched production: [table_name column_list /AS/i '(' fullselect ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{common_table_expression},
-                                         $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{common_table_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{common_table_expression},
-                                         $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{common_table_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{common_table_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"after"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [after]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{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: [/AFTER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{after},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{after});
-               %item = (__RULE__ => q{after});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AFTER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{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(?: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{>>Matched production: [/AFTER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{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{after},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{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{after},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{after},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"predicate"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [predicate]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{predicate},
-                                 $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: [basic_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [basic_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [basic_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [basic_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{basic_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [basic_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [quantified_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [quantified_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [quantified_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [quantified_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{quantified_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [quantified_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [between_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [between_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::between_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [between_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [between_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{between_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [between_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [exists_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [exists_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::exists_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [exists_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [exists_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{exists_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [exists_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [in_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [in_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::in_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [in_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [in_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{in_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [in_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [like_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [like_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::like_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [like_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [like_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{like_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [like_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [null_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[6];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [null_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::null_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [null_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [null_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{null_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [null_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [type_p]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[7];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{predicate});
-               %item = (__RULE__ => q{predicate});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [type_p]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{predicate},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type_p]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{predicate},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [type_p]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{type_p}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [type_p]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{predicate},
-                                         $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{predicate},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{predicate},
-                                         $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{predicate},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{predicate},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"column_name"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{column_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{column_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{column_name});
-               %item = (__RULE__ => q{column_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{column_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{column_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{column_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{column_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{column_name},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{column_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{column_name},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{column_name},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"method_invocation"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [method_invocation]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{method_invocation},
-                                 $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: [subject_expression '..' method_name '(']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{method_invocation});
-               %item = (__RULE__ => q{method_invocation});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [subject_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{method_invocation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [subject_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{method_invocation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [subject_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{subject_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['..']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_invocation},
-                                         $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: [method_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{method_invocation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{method_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{method_invocation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [method_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{method_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{method_invocation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{'('})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{method_invocation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_method_invocation]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_method_invocation(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [subject_expression '..' method_name '(']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{method_invocation},
-                                         $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{method_invocation},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{method_invocation},
-                                         $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{method_invocation},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{method_invocation},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation
-{
-       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_dereference_operation"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_dereference_operation]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                 $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: ['(' expression ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_dereference_operation});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_dereference_operation});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                         $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 repeated subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{expression})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression(s)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                         $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{>>Matched production: ['(' expression ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_dereference_operation},
-                                         $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_dereference_operation},
-                                        $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_dereference_operation},
-                                         $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_dereference_operation},
-                                         $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_dereference_operation},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause
-{
-       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_searched_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_searched_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_searched_when_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: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_searched_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_searched_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_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(?: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{Trying subrule: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/THEN/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{result_expression, or /NULL/i})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_searched_when_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{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                        $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_searched_when_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{_alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $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_searched_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"group_bound2"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [group_bound2]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{group_bound2},
-                                 $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: [/UNBOUNDED\\s+PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound2});
-               %item = (__RULE__ => q{group_bound2});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//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: [/UNBOUNDED\\s+PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound2});
-               %item = (__RULE__ => q{group_bound2});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_bound2},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_bound2},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/PRECEDING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//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: [unsigned_constant /PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound2});
-               %item = (__RULE__ => q{group_bound2});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_bound2},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_bound2},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FOLLOWING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//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: [unsigned_constant /FOLLOWING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_bound2},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_bound2});
-               %item = (__RULE__ => q{group_bound2});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $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\s+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: [/CURRENT\\s+ROW/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_bound2},
-                                         $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{group_bound2},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{group_bound2},
-                                         $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{group_bound2},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{group_bound2},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"searched_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [searched_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{searched_when_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: [/WHEN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{searched_when_clause});
-               %item = (__RULE__ => q{searched_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{searched_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause, 1, 100000000, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{searched_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_searched_when_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_searched_when_clause(s)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{searched_when_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{searched_when_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{searched_when_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{searched_when_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{searched_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"basic_p"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [basic_p]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{basic_p},
-                                 $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: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{basic_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{basic_p});
-               %item = (__RULE__ => q{basic_p});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{basic_p},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{basic_p},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{basic_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{basic_p},
-                                         $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: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{basic_p},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{basic_p},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{basic_p},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{basic_p},
-                                         $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{basic_p},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{basic_p},
-                                         $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{basic_p},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{basic_p},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"asc_option"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [asc_option]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{asc_option},
-                                 $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/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{asc_option});
-               %item = (__RULE__ => q{asc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ASC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{asc_option},
-                                         $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)//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: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{asc_option},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{asc_option},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_asc_option]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{asc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_asc_option(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{asc_option},
-                                         $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{asc_option},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{asc_option},
-                                         $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{asc_option},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{asc_option},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"search_condition"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{search_condition},
-                                 $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{search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{search_condition});
-               %item = (__RULE__ => q{search_condition});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/[^)]+/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{search_condition},
-                                         $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{search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NOT|/i predicate, or '(' cond]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{search_condition});
-               %item = (__RULE__ => q{search_condition});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{search_condition},
-                                         $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|)//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_2_of_rule_search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{predicate, or '('})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_2_of_rule_search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [cond]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{cond})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond, 0, 100000000, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [cond]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [cond]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{cond(s?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/NOT|/i predicate, or '(' cond]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{search_condition},
-                                         $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{search_condition},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{search_condition},
-                                         $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{search_condition},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{search_condition},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator
-{
-       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_operator"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_operator]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_operator},
-                                 $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: [/CONCAT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_operator});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//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: [/CONCAT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['||']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_operator},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_operator});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['||']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_operator},
-                                         $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{_alternation_1_of_production_1_of_rule_operator},
-                                         $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_operator},
-                                        $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_operator},
-                                         $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_operator},
-                                         $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_operator},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"simple_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [simple_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{simple_when_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: [expression /WHEN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{simple_when_clause});
-               %item = (__RULE__ => q{simple_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{simple_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{simple_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{simple_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/WHEN/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause, 1, 100000000, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{simple_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_simple_when_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_simple_when_clause(s)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [expression /WHEN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{simple_when_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{simple_when_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{simple_when_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{simple_when_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{simple_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::INNER
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"INNER"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [INNER]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{INNER},
-                                 $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: [/inner/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{INNER},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{INNER});
-               %item = (__RULE__ => q{INNER});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/inner/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{INNER},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:inner)//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: [/inner/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{INNER},
-                                         $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{INNER},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{INNER},
-                                         $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{INNER},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{INNER},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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::Parser::DB2::Grammar::cond
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"cond"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [cond]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{cond},
-                                 $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: [/AND/i, or /OR/i /NOT|/i predicate, or '(']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{cond});
-               %item = (__RULE__ => q{cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cond]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cond]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cond]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_cond}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/NOT|/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NOT|)//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_2_of_production_1_of_rule_cond]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{predicate, or '('})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_cond]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_cond]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule_cond}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{cond},
-                                         $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{cond},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{cond},
-                                         $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{cond},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{cond},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"ld_type"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [ld_type]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{ld_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: [function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_type});
-               %item = (__RULE__ => q{ld_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ld_type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ld_type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_type});
-               %item = (__RULE__ => q{ld_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $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: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ld_type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ld_type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $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{>>Matched production: ['(' expression ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [constant]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_type});
-               %item = (__RULE__ => q{ld_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ld_type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ld_type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [column_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_type});
-               %item = (__RULE__ => q{ld_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ld_type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ld_type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [host_variable]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ld_type});
-               %item = (__RULE__ => q{ld_type});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ld_type},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ld_type},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_type},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{host_variable}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ld_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{ld_type},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{ld_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{ld_type},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{ld_type},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::RIGHT
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"RIGHT"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [RIGHT]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{RIGHT},
-                                 $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: [/right/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{RIGHT},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{RIGHT});
-               %item = (__RULE__ => q{RIGHT});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/right/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{RIGHT},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:right)//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: [/right/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{RIGHT},
-                                         $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{RIGHT},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{RIGHT},
-                                         $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{RIGHT},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{RIGHT},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation
-{
-       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_method_invocation"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_method_invocation]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                 $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: ['(' expression ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_method_invocation});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_method_invocation});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                         $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 repeated subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{expression})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression(s)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                         $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{>>Matched production: ['(' expression ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_method_invocation},
-                                         $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_method_invocation},
-                                        $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_method_invocation},
-                                         $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_method_invocation},
-                                         $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_method_invocation},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::LEFT
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"LEFT"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [LEFT]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{LEFT},
-                                 $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: [/left/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{LEFT},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{LEFT});
-               %item = (__RULE__ => q{LEFT});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/left/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{LEFT},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:left)//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: [/left/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{LEFT},
-                                         $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{LEFT},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{LEFT},
-                                         $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{LEFT},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{LEFT},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: [SCHEMA '.' 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: [SCHEMA]},
-                                 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::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{table_name},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{SCHEMA}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['.']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{table_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\.//)
-               {
-                       
-                       $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: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{table_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{NAME})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{table_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{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
-               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: [SCHEMA '.' NAME]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [NAME]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{table_name});
-               %item = (__RULE__ => q{table_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [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::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{table_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{table_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{NAME}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{table_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{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::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_53_of_rule_sysfun"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_53_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_53_of_rule_sysfun},
-                                 $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: [/TRUNCATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TRUNCATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNCATE)//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: [/TRUNCATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TRUNC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TRUNC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNC)//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: [/TRUNC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $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_53_of_rule_sysfun},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $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_53_of_rule_sysfun},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_53_of_rule_sysfun},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::options
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"options"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [options]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{options},
-                                 $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: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{options});
-               %item = (__RULE__ => q{options});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//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_options]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{options},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{/CASCADED/i, or /LOCAL/i})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_options]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{options},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_options]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_options}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CHECK\\s+OPTION/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{options},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/CHECK\\s+OPTION/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHECK\s+OPTION)//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{__PATTERN2__}=$&;
-               
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{options},
-                                         $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{options},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{options},
-                                         $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{options},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{options},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{function},
-                                 $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: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{function});
-               %item = (__RULE__ => q{function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $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: func_args /,/ func_args>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: func_args /,/ func_args>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{func_args})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{func_args}} = $_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{function},
-                                         $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{'func_args(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{func_args})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{func_args}} = $_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: func_args /,/ func_args>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: func_args /,/ func_args>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'func_args(s)'}=$_tok||[];
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $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{>>Matched production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{function},
-                                         $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{function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{function},
-                                         $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{function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_41_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                 $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: [/INTEGER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/INTEGER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INTEGER)//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: [/INTEGER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/INT/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/INT/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INT)//)
-               {
-                       
-                       $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: [/INT/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $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_41_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $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_41_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_41_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression
-{
-       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_case_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_case_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_case_expression},
-                                 $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: [searched_when_clause]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [searched_when_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_case_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [searched_when_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_case_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [searched_when_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{searched_when_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [searched_when_clause]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [simple_when_clause]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [simple_when_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_case_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [simple_when_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_case_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [simple_when_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{simple_when_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [simple_when_clause]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_case_expression},
-                                         $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_case_expression},
-                                        $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_case_expression},
-                                         $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_case_expression},
-                                         $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_case_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause
-{
-       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_window_order_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_window_order_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: [sort_key_expression asc_option, or desc_option]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_window_order_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_order_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [sort_key_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sort_key_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sort_key_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sort_key_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sort_key_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [asc_option, or desc_option]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{asc_option, or desc_option})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [asc_option, or desc_option]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [sort_key_expression asc_option, or desc_option]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_window_order_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{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                        $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_window_order_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{_alternation_1_of_production_1_of_rule_window_order_clause},
-                                         $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_window_order_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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 TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]},
-                                         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::Parser::DB2::Grammar::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 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::Parser::DB2::Grammar::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: [trigger_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $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::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $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{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{trigger_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [before]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{before})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [before]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [before]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{before}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [type]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{type})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{type}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/ON/i})->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{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::Parser::DB2::Grammar::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 repeated subrule: [reference_b]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{reference_b})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_b]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_b]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{reference_b(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FOR EACH ROW/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{'MODE DB2SQL'})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
-               {
-                       
-                       $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: [triggered_action]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{triggered_action})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{triggered_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{'table_name'}{'name'};
-    $return =  {
-        table      => $table_name,
-        schema     => $item{'trigger_name'}{'schema'},
-        name       => $item{'trigger_name'}{'name'},
-        when       => 'before',
-        db_event   => $item{'type'}->{'event'},
-        fields     => $item{'type'}{'fields'},
-        condition  => $item{'triggered_action'}{'condition'},
-        reference  => $item{'reference_b'},
-        granularity => $item[9],
-        action     => $item{'triggered_action'}{'statement'}
-    };
-
-    push @triggers, $return;
-};
-               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 TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_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 TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action]},
-                                         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::Parser::DB2::Grammar::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 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::Parser::DB2::Grammar::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: [trigger_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $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::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $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{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{trigger_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [after]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{after})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [after]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [after]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{after}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [type]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{type})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{type}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/ON/i})->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{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::Parser::DB2::Grammar::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 repeated subrule: [reference_a]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{reference_a})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_a]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_a]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{reference_a(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW|FOR EACH STATEMENT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FOR EACH ROW|FOR EACH STATEMENT/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW|FOR EACH STATEMENT)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{'MODE DB2SQL'})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
-               {
-                       
-                       $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: [triggered_action]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{triggered_action})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{triggered_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{'table_name'}{'name'};
-    $return = {
-        table      => $table_name,
-        schema     => $item{'trigger_name'}{'schema'},
-        name       => $item{'trigger_name'}{'name'},
-        when       => 'after',
-        db_event   => $item{'type'}{'event'},
-        fields     => $item{'type'}{'fields'},
-        condition  => $item{'triggered_action'}{'condition'},
-        reference  => $item{'reference_a'},
-        granularity => $item[9],
-        action     => $item{'triggered_action'}{'statement'}
-    };
-
-    push @triggers, $return;
-};
-               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 TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_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 /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]},
-                                         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::Parser::DB2::Grammar::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 terminal: [/FEDERATED|/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/FEDERATED|/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FEDERATED|)//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: [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::Parser::DB2::Grammar::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::Parser::DB2::Grammar::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 repeated subrule: [column_list]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{column_list})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [column_list]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [column_list]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_list(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AS/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [with_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{with_expression})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [with_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [with_expression]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{with_expression(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{create},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{SQL_procedure_statement})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{create},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{create},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{SQL_procedure_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 {
-    $return = {
-        name   => $item{view_name}{name},
-        sql    => $item{SQL_procedure_statement},
-        with   => $item{'with_expression(?)'},
-        fields => $item{'column_list(?)'}
-    };
-    push @views, $return;
-};
-               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 /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_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::Parser::DB2::Grammar::sysfun
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"sysfun"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [sysfun]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{sysfun},
-                                 $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: [/ABS/i, or /ABSVAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysfun},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysfun]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysfun},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysfun]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_sysfun}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ACOS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ACOS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ACOS)//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: [/ACOS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ASCII/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ASCII/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASCII)//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: [/ASCII/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ASIN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ASIN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASIN)//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: [/ASIN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ATAN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ATAN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN)//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: [/ATAN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ATAN2/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ATAN2/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN2)//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: [/ATAN2/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CEIL/i, or /CEILING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[6];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_7_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysfun},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_7_of_rule_sysfun]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysfun},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_7_of_rule_sysfun]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_7_of_rule_sysfun}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i, or /CEILING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[7];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//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: [/CHAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CHR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[8];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CHR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHR)//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: [/CHR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[9];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COS)//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: [/COS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/COT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[10];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/COT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COT)//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: [/COT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYNAME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[11];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYNAME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYNAME)//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: [/DAYNAME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[12];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK)//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: [/DAYOFWEEK/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK_ISO/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[13];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK_ISO)//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: [/DAYOFWEEK_ISO/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DAYOFYEAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[14];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFYEAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFYEAR)//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: [/DAYOFYEAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DEGREES/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[15];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DEGREES/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEGREES)//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: [/DEGREES/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DIFFERENCE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[16];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DIFFERENCE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIFFERENCE)//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: [/DIFFERENCE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[17];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//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: [/DOUBLE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/EXP/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[18];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/EXP/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EXP)//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: [/EXP/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/FLOOR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[19];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/FLOOR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOOR)//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: [/FLOOR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/GET_ROUTINE_SAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[20];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/GET_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GET_ROUTINE_SAR)//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: [/GET_ROUTINE_SAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[21];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//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: [/INSERT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/JULIAN_DAY/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[22];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/JULIAN_DAY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:JULIAN_DAY)//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: [/JULIAN_DAY/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[23];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//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: [/LCASE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LEFT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[24];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LEFT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LEFT)//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: [/LEFT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[25];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LN)//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: [/LN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LOCATE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[26];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LOCATE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCATE)//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: [/LOCATE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LOG/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[27];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LOG/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG)//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: [/LOG/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LOG10/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[28];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LOG10/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG10)//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: [/LOG10/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[29];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//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: [/LTRIM/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MIDNIGHT_SECONDS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[30];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MIDNIGHT_SECONDS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIDNIGHT_SECONDS)//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: [/MIDNIGHT_SECONDS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MOD/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[31];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MOD/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MOD)//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: [/MOD/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/MONTHNAME/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[32];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/MONTHNAME/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHNAME)//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: [/MONTHNAME/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/POWER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[33];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/POWER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POWER)//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: [/POWER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/PUT_ROUTINE_SAR/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[34];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PUT_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PUT_ROUTINE_SAR)//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: [/PUT_ROUTINE_SAR/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/QUARTER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[35];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/QUARTER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:QUARTER)//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: [/QUARTER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RADIANS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[36];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RADIANS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RADIANS)//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: [/RADIANS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RAND/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[37];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RAND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAND)//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: [/RAND/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REPEAT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[38];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REPEAT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REPEAT)//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: [/REPEAT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REPLACE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[39];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REPLACE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?: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: [/REPLACE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RIGHT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[40];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RIGHT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RIGHT)//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: [/RIGHT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ROUND/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[41];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ROUND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROUND)//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: [/ROUND/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/RTRIM/ I]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[42];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//)
-               {
-                       
-                       $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: [I]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysfun},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{I})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::I($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [I]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysfun},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [I]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{I}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/ I]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SIGN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[43];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SIGN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIGN)//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: [/SIGN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SIN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[44];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SIN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIN)//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: [/SIN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SOUNDEX/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[45];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SOUNDEX/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOUNDEX)//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: [/SOUNDEX/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SPACE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[46];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SPACE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SPACE)//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: [/SPACE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SQLCACHE_SNAPSHOT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[47];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SQLCACHE_SNAPSHOT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQLCACHE_SNAPSHOT)//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: [/SQLCACHE_SNAPSHOT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/SQRT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[48];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SQRT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQRT)//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: [/SQRT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TAN/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[49];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TAN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TAN)//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: [/TAN/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP_ISO/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[50];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP_ISO/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMP_ISO)//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: [/TIMESTAMP_ISO/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMPDIFF/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[51];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMPDIFF/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMPDIFF)//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: [/TIMESTAMPDIFF/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i, or /TRUNC/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[52];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_53_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{sysfun},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_53_of_rule_sysfun]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{sysfun},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_53_of_rule_sysfun]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_53_of_rule_sysfun}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i, or /TRUNC/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[53];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//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: [/UCASE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/WEEK/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[54];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WEEK/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK)//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: [/WEEK/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/WEEK_ISO/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[55];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{sysfun});
-               %item = (__RULE__ => q{sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK_ISO)//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: [/WEEK_ISO/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{sysfun},
-                                         $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{sysfun},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{sysfun},
-                                         $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{sysfun},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{sysfun},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond
-{
-       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__alternation_2_of_production_1_of_rule_cond"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                 $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: [/SELECTIVITY/i numeric_constant]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//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: [numeric_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{numeric_constant})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{numeric_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
-                                         $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__alternation_2_of_production_1_of_rule_cond},
-                                        $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__alternation_2_of_production_1_of_rule_cond},
-                                         $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__alternation_2_of_production_1_of_rule_cond},
-                                         $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__alternation_2_of_production_1_of_rule_cond},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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{>>Matched production: [/\\w+/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{NAME},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,18\}/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{NAME},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{NAME});
-               %item = (__RULE__ => q{NAME});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,18\}/]}, 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{1,18})//)
-               {
-                       
-                       $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\{1,18\}/]<<},
-                                         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::Parser::DB2::Grammar::constant
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"constant"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [constant]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{constant},
-                                 $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: [int_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [int_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::int_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [int_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [int_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{int_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [int_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [float_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [float_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::float_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [float_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [float_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{float_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [float_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [dec_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [dec_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dec_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [dec_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [dec_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{dec_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [dec_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [char_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [char_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::char_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [char_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [char_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{char_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [char_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [hex_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [hex_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::hex_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [hex_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [hex_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{hex_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [hex_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [grastr_const]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{constant});
-               %item = (__RULE__ => q{constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [grastr_const]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{constant},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::grastr_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [grastr_const]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{constant},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [grastr_const]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{grastr_const}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [grastr_const]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{constant},
-                                         $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{constant},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{constant},
-                                         $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{constant},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{constant},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function
-{
-       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_ranking_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_ranking_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                 $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: [/RANK/ '()']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/RANK/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANK)//)
-               {
-                       
-                       $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{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $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: [/RANK/ '()']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/DENSE_RANK|DENSERANK/i '()']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DENSE_RANK|DENSERANK/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DENSE_RANK|DENSERANK)//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 terminal: ['()']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $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: [/DENSE_RANK|DENSERANK/i '()']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_ranking_function},
-                                         $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_ranking_function},
-                                        $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_ranking_function},
-                                         $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_ranking_function},
-                                         $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_ranking_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"window_aggregation_group_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{window_aggregation_group_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: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{window_aggregation_group_clause});
-               %item = (__RULE__ => q{window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_aggregation_group_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_aggregation_group_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_aggregation_group_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{group_start, or group_between, or group_end})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_aggregation_group_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_aggregation_group_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{window_aggregation_group_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{window_aggregation_group_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{window_aggregation_group_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{window_aggregation_group_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_window_aggregation_group_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_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: [group_start]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [group_start]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_start]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [group_start]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{group_start}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [group_start]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [group_between]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [group_between]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_between]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [group_between]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{group_between}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [group_between]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [group_end]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [group_end]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_end]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [group_end]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{group_end}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [group_end]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_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{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule_window_aggregation_group_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{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"with_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [with_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{with_expression},
-                                 $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: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{with_expression});
-               %item = (__RULE__ => q{with_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//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 operator: [<leftop: common_table_expression /,/ common_table_expression>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{with_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: common_table_expression /,/ common_table_expression>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{with_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{common_table_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{with_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{common_table_expression}} = $_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{with_expression},
-                                         $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__}=$&;
-               
-
-                       pop @item;
-                       if (defined $1) {push @item, $item{'common_table_expression(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{with_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{common_table_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{with_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{common_table_expression}} = $_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: common_table_expression /,/ common_table_expression>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{with_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: common_table_expression /,/ common_table_expression>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'common_table_expression(s)'}=$_tok||[];
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do {
-    $return = $item{'common_table_expression'};
-};
-               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: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{with_expression},
-                                         $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{with_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{with_expression},
-                                         $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{with_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{with_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"numeric_constant"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [numeric_constant]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{numeric_constant},
-                                 $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+/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{numeric_constant},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{numeric_constant});
-               %item = (__RULE__ => q{numeric_constant});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/\\d+/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{numeric_constant},
-                                         $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+)//)
-               {
-                       
-                       $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: [/\\d+/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{numeric_constant},
-                                         $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{numeric_constant},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{numeric_constant},
-                                         $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{numeric_constant},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{numeric_constant},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"old_new_table"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [old_new_table]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{old_new_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: [/OLD_TABLE/i /(AS)?/i identifier]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{old_new_table});
-               %item = (__RULE__ => q{old_new_table});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/OLD_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_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(?:OLD_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{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/(AS)?/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{old_new_table},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{identifier})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{old_new_table},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{identifier}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
-               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: [/OLD_TABLE/i /(AS)?/i identifier]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NEW_TABLE/i /(AS)?/i identifier]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{old_new_table});
-               %item = (__RULE__ => q{old_new_table});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NEW_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_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(?:NEW_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{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/(AS)?/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{old_new_table},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{identifier})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{old_new_table},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{identifier}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_table},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
-               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: [/NEW_TABLE/i /(AS)?/i identifier]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_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{old_new_table},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{old_new_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{old_new_table},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{old_new_table},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function
-{
-       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_numbering_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_numbering_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                 $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: [window_order_clause window_aggregation_group_clause]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_numbering_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_numbering_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_order_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: [window_aggregation_group_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{window_aggregation_group_clause})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_aggregation_group_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_aggregation_group_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_aggregation_group_clause(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [window_order_clause window_aggregation_group_clause]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_numbering_function},
-                                         $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_numbering_function},
-                                        $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_numbering_function},
-                                         $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_numbering_function},
-                                         $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_numbering_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause
-{
-       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__alternation_1_of_production_1_of_rule_searched_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_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: [result_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{result_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_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(?: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: [/NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                        $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__alternation_1_of_production_1_of_rule_searched_when_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{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $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__alternation_1_of_production_1_of_rule_searched_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"old_new_corr"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [old_new_corr]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{old_new_corr},
-                                 $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: [/OLD/i /(AS)?/i correlation_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{old_new_corr});
-               %item = (__RULE__ => q{old_new_corr});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/OLD/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OLD)//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 terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/(AS)?/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{old_new_corr},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{correlation_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{old_new_corr},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{correlation_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
-               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: [/OLD/i /(AS)?/i correlation_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NEW/i /(AS)?/i correlation_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{old_new_corr});
-               %item = (__RULE__ => q{old_new_corr});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NEW/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEW)//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 terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/(AS)?/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{old_new_corr},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{correlation_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{old_new_corr},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{correlation_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
-               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: [/NEW/i /(AS)?/i correlation_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{old_new_corr},
-                                         $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{old_new_corr},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{old_new_corr},
-                                         $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{old_new_corr},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{old_new_corr},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_42_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                 $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: [/LCASE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//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: [/LCASE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/LOWER/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/LOWER/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOWER)//)
-               {
-                       
-                       $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: [/LOWER/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $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_42_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $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_42_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_42_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"subtype_treatment"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [subtype_treatment]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{subtype_treatment},
-                                 $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: [/TREAT/i '(' expression /AS/i data_type ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{subtype_treatment},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{subtype_treatment});
-               %item = (__RULE__ => q{subtype_treatment});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/TREAT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TREAT)//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 terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $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: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{subtype_treatment},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{subtype_treatment},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AS/i})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{subtype_treatment},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{data_type})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{subtype_treatment},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{data_type}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $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{>>Matched production: [/TREAT/i '(' expression /AS/i data_type ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{subtype_treatment},
-                                         $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{subtype_treatment},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{subtype_treatment},
-                                         $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{subtype_treatment},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{subtype_treatment},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{expression},
-                                 $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: '+', or '-' /operator/ '+', or '-'>]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{expression});
-               %item = (__RULE__ => q{expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{expression},
-                                 $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: [_alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{'+', or '-'})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_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: [/operator/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/operator/})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:operator)//)
-               {
-                       
-                       $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{'_alternation_1_of_production_1_of_rule_expression(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{'+', or '-'})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_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: '+', or '-' /operator/ '+', or '-'>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$_tok||[];
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [<leftop: '+', or '-' /operator/ '+', or '-'>]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{expression},
-                                         $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{expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{expression},
-                                         $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{expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $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: [function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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{>>Matched production: ['(' expression ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [constant]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [column_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[3];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [host_variable]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[4];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{host_variable}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [special_register]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[5];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [special_register]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::special_register($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [special_register]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [special_register]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{special_register}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [special_register]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: ['(' scalar_fullselect ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[6];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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: [scalar_fullselect]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{scalar_fullselect})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [scalar_fullselect]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [scalar_fullselect]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{scalar_fullselect}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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{>>Matched production: ['(' scalar_fullselect ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [labeled_duration]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[7];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [labeled_duration]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [labeled_duration]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [labeled_duration]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{labeled_duration}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [labeled_duration]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [case_expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[8];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [case_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [case_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [case_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{case_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [case_expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [cast_specification]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[9];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [cast_specification]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [cast_specification]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [cast_specification]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{cast_specification}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [cast_specification]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [OLAP_function]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[10];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [OLAP_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [OLAP_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [OLAP_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{OLAP_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [OLAP_function]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [method_invocation]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[11];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [method_invocation]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_invocation]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [method_invocation]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{method_invocation}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [method_invocation]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [subtype_treatment]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[12];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [subtype_treatment]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [subtype_treatment]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [subtype_treatment]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{subtype_treatment}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [subtype_treatment]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [sequence_reference]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[13];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [sequence_reference]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_reference]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_reference]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sequence_reference}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [sequence_reference]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $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_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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::Parser::DB2::Grammar::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::Parser::DB2::Grammar::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::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification
-{
-       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_cast_specification"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cast_specification]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                 $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: [expression]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $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)//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: [/NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [parameter_marker]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [parameter_marker]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::parameter_marker($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [parameter_marker]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [parameter_marker]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{parameter_marker}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [parameter_marker]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_cast_specification},
-                                         $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_cast_specification},
-                                        $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_cast_specification},
-                                         $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_cast_specification},
-                                         $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_cast_specification},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"before"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [before]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{before},
-                                 $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: [/NO CASCADE BEFORE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{before},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{before});
-               %item = (__RULE__ => q{before});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NO CASCADE BEFORE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{before},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NO CASCADE BEFORE)//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: [/NO CASCADE BEFORE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{before},
-                                         $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},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{before},
-                                         $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},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{before},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_83_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                 $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: [/UCASE/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//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: [/UCASE/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/UPPER/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UPPER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPPER)//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: [/UPPER/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $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_83_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $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_83_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_83_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"ranking_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [ranking_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{ranking_function},
-                                 $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: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{ranking_function});
-               %item = (__RULE__ => q{ranking_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_ranking_function]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ranking_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_ranking_function]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ranking_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_ranking_function]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_ranking_function}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/OVER/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//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 terminal: ['(']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $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 repeated subrule: [window_partition_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ranking_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{window_partition_clause})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ranking_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_partition_clause(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{ranking_function},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{window_order_clause})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{ranking_function},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{window_order_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [')']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $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{>>Matched production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{ranking_function},
-                                         $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{ranking_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{ranking_function},
-                                         $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{ranking_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{ranking_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition
-{
-       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__alternation_1_of_production_2_of_rule_search_condition"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                 $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: [/SELECTIVITY/i numeric_constant]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//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: [numeric_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{numeric_constant})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{numeric_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
-                                         $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__alternation_1_of_production_2_of_rule_search_condition},
-                                        $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__alternation_1_of_production_2_of_rule_search_condition},
-                                         $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__alternation_1_of_production_2_of_rule_search_condition},
-                                         $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__alternation_1_of_production_2_of_rule_search_condition},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function
-{
-       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_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                 $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: [/ABS/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//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: [/ABS/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//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: [/ABSVAL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_sysibm_function},
-                                         $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_sysibm_function},
-                                        $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_sysibm_function},
-                                         $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_sysibm_function},
-                                         $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_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"reference_b"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [reference_b]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{reference_b},
-                                 $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: [/REFERENCING/i old_new_corr]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{reference_b},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{reference_b});
-               %item = (__RULE__ => q{reference_b});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{reference_b},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//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: [old_new_corr]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{reference_b},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{old_new_corr})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{reference_b},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_b},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{old_new_corr(0..2)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_b},
-                                         $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: [/REFERENCING/i old_new_corr]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{reference_b},
-                                         $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{reference_b},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{reference_b},
-                                         $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{reference_b},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{reference_b},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause
-{
-       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_simple_when_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_simple_when_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_1_of_rule_simple_when_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: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_1_of_rule_simple_when_clause});
-               %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_simple_when_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_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(?: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{Trying subrule: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/THEN/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{result_expression, or /NULL/i})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_1_of_rule_simple_when_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{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                        $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_simple_when_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{_alternation_1_of_production_1_of_rule_simple_when_clause},
-                                         $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_simple_when_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_9_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                 $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: [/CORRELATION/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CORRELATION/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORRELATION)//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: [/CORRELATION/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CORR/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CORR/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORR)//)
-               {
-                       
-                       $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: [/CORR/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $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_9_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $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_9_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_9_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_7_of_rule_sysfun"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_7_of_rule_sysfun]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_7_of_rule_sysfun},
-                                 $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: [/CEIL/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CEIL/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEIL)//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: [/CEIL/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CEILING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
-               %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CEILING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEILING)//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: [/CEILING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $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_7_of_rule_sysfun},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $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_7_of_rule_sysfun},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_7_of_rule_sysfun},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"prevval_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [prevval_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{prevval_expression},
-                                 $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: [/PREVVAL\\s+FOR/i sequence_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{prevval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{prevval_expression});
-               %item = (__RULE__ => q{prevval_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PREVVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{prevval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PREVVAL\s+FOR)//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: [sequence_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{prevval_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sequence_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{prevval_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{prevval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sequence_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/PREVVAL\\s+FOR/i sequence_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{prevval_expression},
-                                         $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{prevval_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{prevval_expression},
-                                         $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{prevval_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{prevval_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::where_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"where_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [where_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{where_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: [WHERE search_condition]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{where_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{where_clause});
-               %item = (__RULE__ => q{where_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [WHERE]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{where_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [WHERE]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{where_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [WHERE]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{where_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{WHERE}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{where_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{search_condition})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{where_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{where_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{search_condition}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [WHERE search_condition]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{where_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{where_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{where_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{where_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{where_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"group_start"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [group_start]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{group_start},
-                                 $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: [/UNBOUNDED\\s+PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_start});
-               %item = (__RULE__ => q{group_start});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//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: [/UNBOUNDED\\s+PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_start});
-               %item = (__RULE__ => q{group_start});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_start},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_start},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{unsigned_constant}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/PRECEDING/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//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: [unsigned_constant /PRECEDING/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_start},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[2];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_start});
-               %item = (__RULE__ => q{group_start});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $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\s+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: [/CURRENT\\s+ROW/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_start},
-                                         $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{group_start},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{group_start},
-                                         $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{group_start},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{group_start},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"correlation_name"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [correlation_name]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{correlation_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{correlation_name},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{correlation_name});
-               %item = (__RULE__ => q{correlation_name});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{correlation_name},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{correlation_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{correlation_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{correlation_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{correlation_name},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{correlation_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{correlation_name},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{correlation_name},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"SQL_procedure_statement"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [SQL_procedure_statement]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{SQL_procedure_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: [/[^;]*/ /(;|\\z)/]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{SQL_procedure_statement},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{SQL_procedure_statement});
-               %item = (__RULE__ => q{SQL_procedure_statement});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/[^;]*/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{SQL_procedure_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 terminal: [/(;|\\z)/]}, Parse::RecDescent::_tracefirst($text),
-                                         q{SQL_procedure_statement},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/(;|\\z)/})->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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying action},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{SQL_procedure_statement},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do { $return = $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: [/[^;]*/ /(;|\\z)/]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{SQL_procedure_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{SQL_procedure_statement},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{SQL_procedure_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{SQL_procedure_statement},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{SQL_procedure_statement},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"group_between"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [group_between]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{group_between},
-                                 $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: [/BETWEEN/i group_bound1 /AND/i group_bound2]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{group_between},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{group_between});
-               %item = (__RULE__ => q{group_between});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/BETWEEN/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_between},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BETWEEN)//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: [group_bound1]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_between},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{group_bound1})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound1]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_between},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound1]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_between},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{group_bound1}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{group_between},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{/AND/i})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//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{__PATTERN2__}=$&;
-               
-
-               Parse::RecDescent::_trace(q{Trying subrule: [group_bound2]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{group_between},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{group_bound2})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound2]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{group_between},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound2]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_between},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{group_bound2}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/BETWEEN/i group_bound1 /AND/i group_bound2]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{group_between},
-                                         $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{group_between},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{group_between},
-                                         $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{group_between},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{group_between},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"nextval_expression"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [nextval_expression]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{nextval_expression},
-                                 $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: [/NEXTVAL\\s+FOR/i sequence_name]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{nextval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{nextval_expression});
-               %item = (__RULE__ => q{nextval_expression});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/NEXTVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{nextval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEXTVAL\s+FOR)//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: [sequence_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{nextval_expression},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sequence_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{nextval_expression},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{nextval_expression},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{sequence_name}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/NEXTVAL\\s+FOR/i sequence_name]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{nextval_expression},
-                                         $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{nextval_expression},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{nextval_expression},
-                                         $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{nextval_expression},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{nextval_expression},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"desc_option"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [desc_option]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{desc_option},
-                                 $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: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{desc_option});
-               %item = (__RULE__ => q{desc_option});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/DESC/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?: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{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{desc_option},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{desc_option},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_desc_option]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{desc_option},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_desc_option(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{desc_option},
-                                         $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{desc_option},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{desc_option},
-                                         $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{desc_option},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{desc_option},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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: column_name /,/ column_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 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(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: column_name /,/ column_name>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{column_list},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{column_list},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{column_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{column_list},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{column_list},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_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{'column_name(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{column_list},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{column_name})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{column_list},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{column_list},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{column_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: column_name /,/ column_name>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{column_list},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{column_list},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'column_name(s)'}=$_tok||[];
-
-
-               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(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{column_list},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               
-
-               $_tok = ($_noactions) ? 0 : do {
-    $return = 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: ['(' <leftop: column_name /,/ column_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::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_63_of_rule_sysibm_function"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                 $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: [/REGR_INTERCEPT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_INTERCEPT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_INTERCEPT)//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: [/REGR_INTERCEPT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $_matched = 1;
-               last;
-       }
-
-
-       while (!$_matched && !$commit)
-       {
-               
-               Parse::RecDescent::_trace(q{Trying production: [/REGR_ICPT/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[1];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
-               %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/REGR_ICPT/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_ICPT)//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: [/REGR_ICPT/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $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_63_of_rule_sysibm_function},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $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_63_of_rule_sysibm_function},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{_alternation_1_of_production_63_of_rule_sysibm_function},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dereference_operation
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"dereference_operation"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [dereference_operation]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{dereference_operation},
-                                 $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: [scoped_reference_expression '->' name1 '(']},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{dereference_operation});
-               %item = (__RULE__ => q{dereference_operation});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying subrule: [scoped_reference_expression]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{dereference_operation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [scoped_reference_expression]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{dereference_operation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [scoped_reference_expression]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{scoped_reference_expression}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying terminal: ['->']},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{dereference_operation},
-                                         $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: [name1]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{dereference_operation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{name1})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [name1]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{dereference_operation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [name1]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{name1}} = $_tok;
-               push @item, $_tok;
-               
-               }
-
-               Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{dereference_operation},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{'('})->at($text);
-               
-               unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation, 0, 1, $_noactions,$expectation,undef))) 
-               {
-                       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{dereference_operation},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_dereference_operation]<< (}
-                                       . @$_tok . q{ times)},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{dereference_operation},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_dereference_operation(?)}} = $_tok;
-               push @item, $_tok;
-               
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [scoped_reference_expression '->' name1 '(']<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{dereference_operation},
-                                         $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{dereference_operation},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{dereference_operation},
-                                         $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{dereference_operation},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{dereference_operation},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OUTER
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"OUTER"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [OUTER]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{OUTER},
-                                 $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: [/outer/i]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{OUTER},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{OUTER});
-               %item = (__RULE__ => q{OUTER});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/outer/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{OUTER},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $lastsep = "";
-               $expectation->is(q{})->at($text);
-               
-
-               unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:outer)//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: [/outer/i]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{OUTER},
-                                         $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{OUTER},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{OUTER},
-                                         $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{OUTER},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{OUTER},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause
-{
-       my $thisparser = $_[0];
-       use vars q{$tracelevel};
-       local $tracelevel = ($tracelevel||0)+1;
-       $ERRORS = 0;
-       my $thisrule = $thisparser->{"rules"}{"window_order_clause"};
-       
-       Parse::RecDescent::_trace(q{Trying rule: [window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($_[1]),
-                                 q{window_order_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: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]},
-                                         Parse::RecDescent::_tracefirst($_[1]),
-                                         q{window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               my $thisprod = $thisrule->{"prods"}[0];
-               $text = $_[1];
-               my $_savetext;
-               @item = (q{window_order_clause});
-               %item = (__RULE__ => q{window_order_clause});
-               my $repcount = 0;
-
-
-               Parse::RecDescent::_trace(q{Trying terminal: [/ORDER\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
-                                         q{window_order_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(?:ORDER\s+BY)//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 operator: [<leftop: sort_key_expression /,/ sort_key_expression>]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               $expectation->is(q{<leftop: sort_key_expression /,/ sort_key_expression>})->at($text);
-
-               $_tok = undef;
-               OPLOOP: while (1)
-               {
-                 $repcount = 0;
-                 my  @item;
-                 
-                 # MATCH LEFTARG
-                 
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sort_key_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_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{window_order_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(?:,)//)
-               {
-                       
-                       $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__}=$&;
-               
-
-                       pop @item;
-                       if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$1; $backtrack=1;}
-                       
-               Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
-                                 Parse::RecDescent::_tracefirst($text),
-                                 q{window_order_clause},
-                                 $tracelevel)
-                                       if defined $::RD_TRACE;
-               if (1) { no strict qw{refs};
-               $expectation->is(q{sort_key_expression})->at($text);
-               unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
-               {
-                       
-                       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
-                                       . $_tok . q{]},
-                                         
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-               $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_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: sort_key_expression /,/ sort_key_expression>]>>},
-                                                 Parse::RecDescent::_tracefirst($text),
-                                                 q{window_order_clause},
-                                                 $tracelevel)
-                                                       if defined $::RD_TRACE;
-                       $expectation->failed();
-                       last;
-               }
-               Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: sort_key_expression /,/ sort_key_expression>]<< (return value: [}
-                                         . qq{@{$_tok||[]}} . q{]},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_order_clause},
-                                         $tracelevel)
-                                               if defined $::RD_TRACE;
-
-               push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$_tok||[];
-
-
-
-               Parse::RecDescent::_trace(q{>>Matched production: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]<<},
-                                         Parse::RecDescent::_tracefirst($text),
-                                         q{window_order_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{window_order_clause},
-                                        $tracelevel)
-                                       if defined $::RD_TRACE;
-               return undef;
-       }
-       if (!defined($return) && defined($score))
-       {
-               Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
-                                         q{window_order_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{window_order_clause},
-                                         $tracelevel);
-               Parse::RecDescent::_trace(q{(consumed: [} .
-                                         Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
-                                         Parse::RecDescent::_tracefirst($text),
-                                         , q{window_order_clause},
-                                         $tracelevel)
-       }
-       $_[1] = $text;
-       return $return;
-}
-
-# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
-sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::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::Parser::DB2::Grammar::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;
-       }
-
-
-        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;
-}
-}
-package SQL::Translator::Parser::DB2::Grammar; sub new { my $self = bless( {
-                 '_AUTOTREE' => undef,
-                 'localvars' => '',
-                 'startcode' => '',
-                 '_check' => {
-                               'thisoffset' => '',
-                               'itempos' => '',
-                               'prevoffset' => '',
-                               'prevline' => '',
-                               'prevcolumn' => '',
-                               'thiscolumn' => ''
-                             },
-                 'namespace' => 'Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar',
-                 '_AUTOACTION' => undef,
-                 'rules' => {
-                              '_alternation_1_of_production_17_of_rule_sysibm_function' => 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' => 'DECIMAL',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/DECIMAL/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'DEC',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/DEC/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_17_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'triggered_action' => bless( {
-                                                             'impcount' => 0,
-                                                             'calls' => [
-                                                                          'when_clause',
-                                                                          'SQL_procedure_statement'
-                                                                        ],
-                                                             'changed' => 0,
-                                                             'opcount' => 0,
-                                                             'prods' => [
-                                                                          bless( {
-                                                                                   'number' => '0',
-                                                                                   'strcount' => 0,
-                                                                                   'dircount' => 0,
-                                                                                   'uncommit' => undef,
-                                                                                   'error' => undef,
-                                                                                   'patcount' => 0,
-                                                                                   'actcount' => 1,
-                                                                                   'items' => [
-                                                                                                bless( {
-                                                                                                         'subrule' => 'when_clause',
-                                                                                                         'expected' => undef,
-                                                                                                         'min' => 0,
-                                                                                                         'argcode' => undef,
-                                                                                                         'max' => 1,
-                                                                                                         'matchrule' => 0,
-                                                                                                         'repspec' => '?',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 263
-                                                                                                       }, 'Parse::RecDescent::Repetition' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => 'SQL_procedure_statement',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => undef,
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 263
-                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                bless( {
-                                                                                                         'hashname' => '__ACTION1__',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 264,
-                                                                                                         'code' => '{ $return = { \'condition\' => $item[1][0],
-              \'statement\' => $item{\'SQL_procedure_statement\'} };
-}'
-                                                                                                       }, 'Parse::RecDescent::Action' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'triggered_action',
-                                                             'vars' => '',
-                                                             'line' => 263
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_2_of_rule_search_condition' => bless( {
-                                                                                                    'impcount' => 0,
-                                                                                                    'calls' => [
-                                                                                                                 'predicate',
-                                                                                                                 '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
-                                                                                                                 'search_condition'
-                                                                                                               ],
-                                                                                                    'changed' => 0,
-                                                                                                    'opcount' => 0,
-                                                                                                    'prods' => [
-                                                                                                                 bless( {
-                                                                                                                          'number' => '0',
-                                                                                                                          'strcount' => 0,
-                                                                                                                          'dircount' => 0,
-                                                                                                                          'uncommit' => undef,
-                                                                                                                          'error' => undef,
-                                                                                                                          'patcount' => 0,
-                                                                                                                          'actcount' => 0,
-                                                                                                                          'items' => [
-                                                                                                                                       bless( {
-                                                                                                                                                'subrule' => 'predicate',
-                                                                                                                                                'matchrule' => 0,
-                                                                                                                                                'implicit' => undef,
-                                                                                                                                                'argcode' => undef,
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 628
-                                                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                       bless( {
-                                                                                                                                                'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
-                                                                                                                                                'expected' => '/SELECTIVITY/i',
-                                                                                                                                                'min' => 0,
-                                                                                                                                                'argcode' => undef,
-                                                                                                                                                'max' => 1,
-                                                                                                                                                'matchrule' => 0,
-                                                                                                                                                'repspec' => '?',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 628
-                                                                                                                                              }, 'Parse::RecDescent::Repetition' )
-                                                                                                                                     ],
-                                                                                                                          'line' => undef
-                                                                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                                                                 bless( {
-                                                                                                                          'number' => '1',
-                                                                                                                          'strcount' => 2,
-                                                                                                                          'dircount' => 0,
-                                                                                                                          'uncommit' => undef,
-                                                                                                                          'error' => undef,
-                                                                                                                          'patcount' => 0,
-                                                                                                                          'actcount' => 0,
-                                                                                                                          'items' => [
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => '(',
-                                                                                                                                                'hashname' => '__STRING1__',
-                                                                                                                                                'description' => '\'(\'',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 628
-                                                                                                                                              }, 'Parse::RecDescent::Literal' ),
-                                                                                                                                       bless( {
-                                                                                                                                                'subrule' => 'search_condition',
-                                                                                                                                                'matchrule' => 0,
-                                                                                                                                                'implicit' => undef,
-                                                                                                                                                'argcode' => undef,
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 628
-                                                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => ')',
-                                                                                                                                                'hashname' => '__STRING2__',
-                                                                                                                                                'description' => '\')\'',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 628
-                                                                                                                                              }, 'Parse::RecDescent::Literal' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_2_of_rule_search_condition',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'name1' => 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' => 536
-                                                                                            }, 'Parse::RecDescent::Subrule' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'name1',
-                                                  'vars' => '',
-                                                  'line' => 536
-                                                }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule_cond' => bless( {
-                                                                                        'impcount' => 0,
-                                                                                        'calls' => [
-                                                                                                     'predicate',
-                                                                                                     '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
-                                                                                                     'search_condition'
-                                                                                                   ],
-                                                                                        'changed' => 0,
-                                                                                        'opcount' => 0,
-                                                                                        'prods' => [
-                                                                                                     bless( {
-                                                                                                              'number' => '0',
-                                                                                                              'strcount' => 0,
-                                                                                                              'dircount' => 0,
-                                                                                                              'uncommit' => undef,
-                                                                                                              'error' => undef,
-                                                                                                              'patcount' => 0,
-                                                                                                              'actcount' => 0,
-                                                                                                              'items' => [
-                                                                                                                           bless( {
-                                                                                                                                    'subrule' => 'predicate',
-                                                                                                                                    'matchrule' => 0,
-                                                                                                                                    'implicit' => undef,
-                                                                                                                                    'argcode' => undef,
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'line' => 628
-                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                           bless( {
-                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
-                                                                                                                                    'expected' => '/SELECTIVITY/i',
-                                                                                                                                    'min' => 0,
-                                                                                                                                    'argcode' => undef,
-                                                                                                                                    'max' => 1,
-                                                                                                                                    'matchrule' => 0,
-                                                                                                                                    'repspec' => '?',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'line' => 628
-                                                                                                                                  }, 'Parse::RecDescent::Repetition' )
-                                                                                                                         ],
-                                                                                                              'line' => undef
-                                                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                                                     bless( {
-                                                                                                              'number' => '1',
-                                                                                                              'strcount' => 2,
-                                                                                                              'dircount' => 0,
-                                                                                                              'uncommit' => undef,
-                                                                                                              'error' => undef,
-                                                                                                              'patcount' => 0,
-                                                                                                              'actcount' => 0,
-                                                                                                              'items' => [
-                                                                                                                           bless( {
-                                                                                                                                    'pattern' => '(',
-                                                                                                                                    'hashname' => '__STRING1__',
-                                                                                                                                    'description' => '\'(\'',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'line' => 628
-                                                                                                                                  }, 'Parse::RecDescent::Literal' ),
-                                                                                                                           bless( {
-                                                                                                                                    'subrule' => 'search_condition',
-                                                                                                                                    'matchrule' => 0,
-                                                                                                                                    'implicit' => undef,
-                                                                                                                                    'argcode' => undef,
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'line' => 628
-                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                           bless( {
-                                                                                                                                    'pattern' => ')',
-                                                                                                                                    'hashname' => '__STRING2__',
-                                                                                                                                    'description' => '\')\'',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'line' => 628
-                                                                                                                                  }, 'Parse::RecDescent::Literal' )
-                                                                                                                         ],
-                                                                                                              'line' => 628
-                                                                                                            }, 'Parse::RecDescent::Production' )
-                                                                                                   ],
-                                                                                        'name' => '_alternation_2_of_production_1_of_rule_cond',
-                                                                                        'vars' => '',
-                                                                                        'line' => 628
-                                                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_expression' => bless( {
-                                                                                              'impcount' => 2,
-                                                                                              'calls' => [
-                                                                                                           '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
-                                                                                                           '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression'
-                                                                                                         ],
-                                                                                              'changed' => 0,
-                                                                                              'opcount' => 0,
-                                                                                              'prods' => [
-                                                                                                           bless( {
-                                                                                                                    'number' => '0',
-                                                                                                                    'strcount' => 0,
-                                                                                                                    'dircount' => 0,
-                                                                                                                    'uncommit' => undef,
-                                                                                                                    'error' => undef,
-                                                                                                                    'patcount' => 0,
-                                                                                                                    'actcount' => 0,
-                                                                                                                    'items' => [
-                                                                                                                                 bless( {
-                                                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
-                                                                                                                                          'expected' => '\'+\', or \'-\'',
-                                                                                                                                          'min' => 0,
-                                                                                                                                          'argcode' => undef,
-                                                                                                                                          'max' => 1,
-                                                                                                                                          'matchrule' => 0,
-                                                                                                                                          'repspec' => '?',
-                                                                                                                                          'lookahead' => 0,
-                                                                                                                                          'line' => 611
-                                                                                                                                        }, 'Parse::RecDescent::Repetition' ),
-                                                                                                                                 bless( {
-                                                                                                                                          'subrule' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
-                                                                                                                                          'matchrule' => 0,
-                                                                                                                                          'implicit' => 'function, or \'(\', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference',
-                                                                                                                                          'argcode' => undef,
-                                                                                                                                          'lookahead' => 0,
-                                                                                                                                          'line' => 627
-                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
-                                                                                                                               ],
-                                                                                                                    'line' => undef
-                                                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                                                         ],
-                                                                                              'name' => '_alternation_1_of_production_1_of_rule_expression',
-                                                                                              'vars' => '',
-                                                                                              'line' => 608
-                                                                                            }, 'Parse::RecDescent::Rule' ),
-                              'SCHEMA' => 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' => 142,
-                                                                                               'mod' => '',
-                                                                                               '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' => '\\w{1,128}',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/\\\\w\\{1,128\\}/',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 144,
-                                                                                               'mod' => '',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'SCHEMA',
-                                                   'vars' => '',
-                                                   'line' => 142
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_87_of_rule_sysibm_function' => 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' => 'VARIANCE',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/VARIANCE/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'VAR',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/VAR/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_87_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => 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' => 626
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => undef
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '1',
-                                                                                                                                                           'strcount' => 1,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'pattern' => '-',
-                                                                                                                                                                                 'hashname' => '__STRING1__',
-                                                                                                                                                                                 'description' => '\'-\'',
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 627
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 627
-                                                                                                                                                         }, 'Parse::RecDescent::Production' )
-                                                                                                                                                ],
-                                                                                                                                     'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
-                                                                                                                                     'vars' => '',
-                                                                                                                                     'line' => 626
-                                                                                                                                   }, 'Parse::RecDescent::Rule' ),
-                              'get_bracketed' => bless( {
-                                                          'impcount' => 0,
-                                                          'calls' => [],
-                                                          'changed' => 0,
-                                                          'opcount' => 0,
-                                                          'prods' => [
-                                                                       bless( {
-                                                                                'number' => '0',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 0,
-                                                                                'actcount' => 1,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'hashname' => '__ACTION1__',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 170,
-                                                                                                      'code' => '{ 
-    extract_bracketed($text, \'(\');
-}'
-                                                                                                    }, 'Parse::RecDescent::Action' )
-                                                                                           ],
-                                                                                'line' => undef
-                                                                              }, 'Parse::RecDescent::Production' )
-                                                                     ],
-                                                          'name' => 'get_bracketed',
-                                                          'vars' => '',
-                                                          'line' => 169
-                                                        }, 'Parse::RecDescent::Rule' ),
-                              'labeled_duration' => bless( {
-                                                             'impcount' => 0,
-                                                             'calls' => [
-                                                                          'ld_type',
-                                                                          'ld_duration'
-                                                                        ],
-                                                             'changed' => 0,
-                                                             'opcount' => 0,
-                                                             'prods' => [
-                                                                          bless( {
-                                                                                   'number' => '0',
-                                                                                   'strcount' => 0,
-                                                                                   'dircount' => 0,
-                                                                                   'uncommit' => undef,
-                                                                                   'error' => undef,
-                                                                                   'patcount' => 0,
-                                                                                   'actcount' => 0,
-                                                                                   'items' => [
-                                                                                                bless( {
-                                                                                                         'subrule' => 'ld_type',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => undef,
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 480
-                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => 'ld_duration',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => undef,
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 480
-                                                                                                       }, 'Parse::RecDescent::Subrule' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'labeled_duration',
-                                                             'vars' => '',
-                                                             'line' => 480
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              'group_end' => bless( {
-                                                      'impcount' => 0,
-                                                      'calls' => [
-                                                                   'unsigned_constant'
-                                                                 ],
-                                                      'changed' => 0,
-                                                      'opcount' => 0,
-                                                      'prods' => [
-                                                                   bless( {
-                                                                            'number' => '0',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 1,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'pattern' => 'UNBOUNDED\\s+PRECEDING',
-                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                  'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'rdelim' => '/',
-                                                                                                  'line' => 590,
-                                                                                                  '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( {
-                                                                                                  'subrule' => 'unsigned_constant',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 591
-                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                         bless( {
-                                                                                                  'pattern' => 'FOLLOWING',
-                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                  'description' => '/FOLLOWING/i',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'rdelim' => '/',
-                                                                                                  'line' => 591,
-                                                                                                  'mod' => 'i',
-                                                                                                  'ldelim' => '/'
-                                                                                                }, 'Parse::RecDescent::Token' )
-                                                                                       ],
-                                                                            'line' => 591
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'group_end',
-                                                      'vars' => '',
-                                                      'line' => 590
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              'statement' => bless( {
-                                                      'impcount' => 0,
-                                                      'calls' => [
-                                                                   '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' => 'comment',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 23
-                                                                                                }, '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' => 'create',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 24
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 24
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '2',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 1,
-                                                                            'uncommit' => 0,
-                                                                            'error' => 1,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'msg' => '',
-                                                                                                  'hashname' => '__DIRECTIVE1__',
-                                                                                                  'commitonly' => '',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 25
-                                                                                                }, 'Parse::RecDescent::Error' )
-                                                                                       ],
-                                                                            'line' => 25
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'statement',
-                                                      'vars' => '',
-                                                      'line' => 22
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
-                                                                                                                                             'impcount' => 0,
-                                                                                                                                             'calls' => [
-                                                                                                                                                          'result_expression'
-                                                                                                                                                        ],
-                                                                                                                                             'changed' => 0,
-                                                                                                                                             'opcount' => 0,
-                                                                                                                                             'prods' => [
-                                                                                                                                                          bless( {
-                                                                                                                                                                   'number' => '0',
-                                                                                                                                                                   'strcount' => 0,
-                                                                                                                                                                   'dircount' => 0,
-                                                                                                                                                                   'uncommit' => undef,
-                                                                                                                                                                   'error' => undef,
-                                                                                                                                                                   'patcount' => 0,
-                                                                                                                                                                   'actcount' => 0,
-                                                                                                                                                                   'items' => [
-                                                                                                                                                                                bless( {
-                                                                                                                                                                                         'subrule' => 'result_expression',
-                                                                                                                                                                                         'matchrule' => 0,
-                                                                                                                                                                                         'implicit' => undef,
-                                                                                                                                                                                         'argcode' => undef,
-                                                                                                                                                                                         'lookahead' => 0,
-                                                                                                                                                                                         'line' => 626
-                                                                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                              ],
-                                                                                                                                                                   'line' => undef
-                                                                                                                                                                 }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                          bless( {
-                                                                                                                                                                   'number' => '1',
-                                                                                                                                                                   'strcount' => 0,
-                                                                                                                                                                   'dircount' => 0,
-                                                                                                                                                                   'uncommit' => undef,
-                                                                                                                                                                   'error' => undef,
-                                                                                                                                                                   'patcount' => 1,
-                                                                                                                                                                   'actcount' => 0,
-                                                                                                                                                                   'items' => [
-                                                                                                                                                                                bless( {
-                                                                                                                                                                                         'pattern' => 'NULL',
-                                                                                                                                                                                         'hashname' => '__PATTERN1__',
-                                                                                                                                                                                         'description' => '/NULL/i',
-                                                                                                                                                                                         'lookahead' => 0,
-                                                                                                                                                                                         'rdelim' => '/',
-                                                                                                                                                                                         'line' => 627,
-                                                                                                                                                                                         'mod' => 'i',
-                                                                                                                                                                                         'ldelim' => '/'
-                                                                                                                                                                                       }, 'Parse::RecDescent::Token' )
-                                                                                                                                                                              ],
-                                                                                                                                                                   'line' => 627
-                                                                                                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                                                                                                        ],
-                                                                                                                                             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
-                                                                                                                                             'vars' => '',
-                                                                                                                                             'line' => 626
-                                                                                                                                           }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule_case_expression' => bless( {
-                                                                                                   'impcount' => 0,
-                                                                                                   'calls' => [
-                                                                                                                'result_expression'
-                                                                                                              ],
-                                                                                                   'changed' => 0,
-                                                                                                   'opcount' => 0,
-                                                                                                   'prods' => [
-                                                                                                                bless( {
-                                                                                                                         'number' => '0',
-                                                                                                                         'strcount' => 0,
-                                                                                                                         'dircount' => 0,
-                                                                                                                         'uncommit' => undef,
-                                                                                                                         'error' => undef,
-                                                                                                                         'patcount' => 1,
-                                                                                                                         'actcount' => 0,
-                                                                                                                         'items' => [
-                                                                                                                                      bless( {
-                                                                                                                                               'pattern' => 'ELSE\\s+NULL',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/ELSE\\\\s+NULL/i',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 626,
-                                                                                                                                               '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' => 'ELSE',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/ELSE/i',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 627,
-                                                                                                                                               'mod' => 'i',
-                                                                                                                                               'ldelim' => '/'
-                                                                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                                                                      bless( {
-                                                                                                                                               'subrule' => 'result_expression',
-                                                                                                                                               'matchrule' => 0,
-                                                                                                                                               'implicit' => undef,
-                                                                                                                                               'argcode' => undef,
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'line' => 627
-                                                                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                    ],
-                                                                                                                         'line' => 627
-                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                              ],
-                                                                                                   'name' => '_alternation_2_of_production_1_of_rule_case_expression',
-                                                                                                   'vars' => '',
-                                                                                                   'line' => 626
-                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              'subject_expression' => bless( {
-                                                               'impcount' => 0,
-                                                               'calls' => [
-                                                                            'expression'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 0,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 0,
-                                                                                     'actcount' => 1,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'expression',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 598
-                                                                                                         }, 'Parse::RecDescent::Subrule' ),
-                                                                                                  bless( {
-                                                                                                           'hashname' => '__ACTION1__',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 599,
-                                                                                                           'code' => '{ # with static result type that is a used-defined struct type 
-}'
-                                                                                                         }, 'Parse::RecDescent::Action' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'subject_expression',
-                                                               'vars' => '',
-                                                               'line' => 598
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_desc_option' => 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' => 'NULLS\\s+FIRST',
-                                                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                                                           'description' => '/NULLS\\\\s+FIRST/i',
-                                                                                                                                           'lookahead' => 0,
-                                                                                                                                           'rdelim' => '/',
-                                                                                                                                           'line' => 628,
-                                                                                                                                           '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' => 'NULLS\\s+LAST',
-                                                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                                                           'description' => '/NULLS\\\\s+LAST/i',
-                                                                                                                                           'lookahead' => 0,
-                                                                                                                                           'rdelim' => '/',
-                                                                                                                                           'line' => 628,
-                                                                                                                                           'mod' => 'i',
-                                                                                                                                           'ldelim' => '/'
-                                                                                                                                         }, 'Parse::RecDescent::Token' )
-                                                                                                                                ],
-                                                                                                                     'line' => 628
-                                                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                                                          ],
-                                                                                               'name' => '_alternation_1_of_production_1_of_rule_desc_option',
-                                                                                               'vars' => '',
-                                                                                               'line' => 628
-                                                                                             }, 'Parse::RecDescent::Rule' ),
-                              'view_name' => bless( {
-                                                      'impcount' => 0,
-                                                      'calls' => [
-                                                                   'SCHEMA',
-                                                                   'NAME'
-                                                                 ],
-                                                      'changed' => 0,
-                                                      'opcount' => 0,
-                                                      'prods' => [
-                                                                   bless( {
-                                                                            'number' => '0',
-                                                                            'strcount' => 1,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 1,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'SCHEMA',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 129
-                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                         bless( {
-                                                                                                  'pattern' => '.',
-                                                                                                  'hashname' => '__STRING1__',
-                                                                                                  'description' => '\'.\'',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 129
-                                                                                                }, 'Parse::RecDescent::Literal' ),
-                                                                                         bless( {
-                                                                                                  'subrule' => 'NAME',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 129
-                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                         bless( {
-                                                                                                  'hashname' => '__ACTION1__',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 130,
-                                                                                                  'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
-                                                                                                }, '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' => 'NAME',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 131
-                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                         bless( {
-                                                                                                  'hashname' => '__ACTION1__',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 132,
-                                                                                                  'code' => '{ $return = { name => $item[1] } }'
-                                                                                                }, 'Parse::RecDescent::Action' )
-                                                                                       ],
-                                                                            'line' => 131
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'view_name',
-                                                      'vars' => '',
-                                                      'line' => 129
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_cond' => 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' => 'AND',
-                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                    'description' => '/AND/i',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'rdelim' => '/',
-                                                                                                                                    'line' => 628,
-                                                                                                                                    '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' => 'OR',
-                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                    'description' => '/OR/i',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'rdelim' => '/',
-                                                                                                                                    'line' => 628,
-                                                                                                                                    'mod' => 'i',
-                                                                                                                                    'ldelim' => '/'
-                                                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                                                         ],
-                                                                                                              'line' => 628
-                                                                                                            }, 'Parse::RecDescent::Production' )
-                                                                                                   ],
-                                                                                        'name' => '_alternation_1_of_production_1_of_rule_cond',
-                                                                                        'vars' => '',
-                                                                                        'line' => 628
-                                                                                      }, 'Parse::RecDescent::Rule' ),
-                              'numbering_function' => bless( {
-                                                               'impcount' => 2,
-                                                               'calls' => [
-                                                                            'window_partition_clause',
-                                                                            '_alternation_1_of_production_1_of_rule_numbering_function',
-                                                                            '_alternation_2_of_production_1_of_rule_numbering_function'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 3,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 2,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'ROW_NUMBER|ROWNUMBER',
-                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                           'description' => '/ROW_NUMBER|ROWNUMBER/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 546,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => '()',
-                                                                                                           'hashname' => '__STRING1__',
-                                                                                                           'description' => '\'()\'',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 546
-                                                                                                         }, 'Parse::RecDescent::Literal' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'OVER',
-                                                                                                           'hashname' => '__PATTERN2__',
-                                                                                                           'description' => '/OVER/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 546,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => '(',
-                                                                                                           'hashname' => '__STRING2__',
-                                                                                                           'description' => '\'(\'',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 546
-                                                                                                         }, 'Parse::RecDescent::Literal' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'window_partition_clause',
-                                                                                                           'expected' => undef,
-                                                                                                           'min' => 0,
-                                                                                                           'argcode' => undef,
-                                                                                                           'max' => 1,
-                                                                                                           'matchrule' => 0,
-                                                                                                           'repspec' => '?',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 546
-                                                                                                         }, 'Parse::RecDescent::Repetition' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_numbering_function',
-                                                                                                           'expected' => 'window_order_clause',
-                                                                                                           'min' => 0,
-                                                                                                           'argcode' => undef,
-                                                                                                           'max' => 1,
-                                                                                                           'matchrule' => 0,
-                                                                                                           'repspec' => '?',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 548
-                                                                                                         }, 'Parse::RecDescent::Repetition' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => '_alternation_2_of_production_1_of_rule_numbering_function',
-                                                                                                           'expected' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i, or window_aggregation_group_clause',
-                                                                                                           'min' => 0,
-                                                                                                           'argcode' => undef,
-                                                                                                           'max' => 1,
-                                                                                                           'matchrule' => 0,
-                                                                                                           'repspec' => '?',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 551
-                                                                                                         }, 'Parse::RecDescent::Repetition' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => ')',
-                                                                                                           'hashname' => '__STRING3__',
-                                                                                                           'description' => '\')\'',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 551
-                                                                                                         }, 'Parse::RecDescent::Literal' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'numbering_function',
-                                                               'vars' => '',
-                                                               'line' => 546
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause' => 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' => 'ROWS',
-                                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                                               'description' => '/ROWS/i',
-                                                                                                                                                               'lookahead' => 0,
-                                                                                                                                                               'rdelim' => '/',
-                                                                                                                                                               'line' => 626,
-                                                                                                                                                               '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' => 'RANGE',
-                                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                                               'description' => '/RANGE/i',
-                                                                                                                                                               'lookahead' => 0,
-                                                                                                                                                               'rdelim' => '/',
-                                                                                                                                                               'line' => 627,
-                                                                                                                                                               'mod' => 'i',
-                                                                                                                                                               'ldelim' => '/'
-                                                                                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                                                                                    ],
-                                                                                                                                         'line' => 627
-                                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                                              ],
-                                                                                                                   'name' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
-                                                                                                                   'vars' => '',
-                                                                                                                   'line' => 626
-                                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              'group_bound1' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'unsigned_constant'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'UNBOUNDED\\s+PRECEDING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 580,
-                                                                                                     '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( {
-                                                                                                     'subrule' => 'unsigned_constant',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 581
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => 'PRECEDING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/PRECEDING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 581,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 581
-                                                                             }, 'Parse::RecDescent::Production' ),
-                                                                      bless( {
-                                                                               'number' => '2',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'subrule' => 'unsigned_constant',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 582
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => 'FOLLOWING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/FOLLOWING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 582,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 582
-                                                                             }, 'Parse::RecDescent::Production' ),
-                                                                      bless( {
-                                                                               'number' => '3',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'CURRENT\\s+ROW',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/CURRENT\\\\s+ROW/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 583,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 583
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'group_bound1',
-                                                         'vars' => '',
-                                                         'line' => 580
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              'OLAP_function' => bless( {
-                                                          'impcount' => 0,
-                                                          'calls' => [
-                                                                       'ranking_function',
-                                                                       'numbering_function',
-                                                                       'aggregation_function'
-                                                                     ],
-                                                          'changed' => 0,
-                                                          'opcount' => 0,
-                                                          'prods' => [
-                                                                       bless( {
-                                                                                'number' => '0',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 0,
-                                                                                'actcount' => 0,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'subrule' => 'ranking_function',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 538
-                                                                                                    }, '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' => 'numbering_function',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 539
-                                                                                                    }, 'Parse::RecDescent::Subrule' )
-                                                                                           ],
-                                                                                'line' => 539
-                                                                              }, 'Parse::RecDescent::Production' ),
-                                                                       bless( {
-                                                                                'number' => '2',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 0,
-                                                                                'actcount' => 0,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'subrule' => 'aggregation_function',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 540
-                                                                                                    }, 'Parse::RecDescent::Subrule' )
-                                                                                           ],
-                                                                                'line' => 540
-                                                                              }, 'Parse::RecDescent::Production' )
-                                                                     ],
-                                                          'name' => 'OLAP_function',
-                                                          'vars' => '',
-                                                          'line' => 538
-                                                        }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_30_of_rule_sysibm_function' => 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' => 'DOUBLE',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/DOUBLE/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'DOUBLE_PRECISION',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/DOUBLE_PRECISION/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_30_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'FULL' => 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' => 'full',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/full/i',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 113,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'FULL',
-                                                 'vars' => '',
-                                                 'line' => 113
-                                               }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule_cast_specification' => bless( {
-                                                                                                      'impcount' => 1,
-                                                                                                      'calls' => [
-                                                                                                                   '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification'
-                                                                                                                 ],
-                                                                                                      'changed' => 0,
-                                                                                                      'opcount' => 0,
-                                                                                                      'prods' => [
-                                                                                                                   bless( {
-                                                                                                                            'number' => '0',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 1,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'pattern' => 'SCOPE',
-                                                                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                                                                  'description' => '/SCOPE/',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'rdelim' => '/',
-                                                                                                                                                  'line' => 625,
-                                                                                                                                                  'mod' => '',
-                                                                                                                                                  'ldelim' => '/'
-                                                                                                                                                }, 'Parse::RecDescent::Token' ),
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => 'typed_table_name, or typed_view_name',
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                       ],
-                                                                                                                            'line' => undef
-                                                                                                                          }, 'Parse::RecDescent::Production' )
-                                                                                                                 ],
-                                                                                                      'name' => '_alternation_2_of_production_1_of_rule_cast_specification',
-                                                                                                      'vars' => '',
-                                                                                                      'line' => 625
-                                                                                                    }, 'Parse::RecDescent::Rule' ),
-                              'case_expression' => bless( {
-                                                            'impcount' => 2,
-                                                            'calls' => [
-                                                                         '_alternation_1_of_production_1_of_rule_case_expression',
-                                                                         '_alternation_2_of_production_1_of_rule_case_expression'
-                                                                       ],
-                                                            'changed' => 0,
-                                                            'opcount' => 0,
-                                                            'prods' => [
-                                                                         bless( {
-                                                                                  'number' => '0',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 2,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'CASE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/CASE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 496,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' ),
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_1_of_rule_case_expression',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => 'searched_when_clause, or simple_when_clause',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 498
-                                                                                                      }, 'Parse::RecDescent::Subrule' ),
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_2_of_production_1_of_rule_case_expression',
-                                                                                                        'expected' => '/ELSE\\\\s+NULL/i, or /ELSE/i',
-                                                                                                        'min' => 0,
-                                                                                                        'argcode' => undef,
-                                                                                                        'max' => 1,
-                                                                                                        'matchrule' => 0,
-                                                                                                        'repspec' => '?',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 501
-                                                                                                      }, 'Parse::RecDescent::Repetition' ),
-                                                                                               bless( {
-                                                                                                        'pattern' => 'END',
-                                                                                                        'hashname' => '__PATTERN2__',
-                                                                                                        'description' => '/END/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 501,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => undef
-                                                                                }, 'Parse::RecDescent::Production' )
-                                                                       ],
-                                                            'name' => 'case_expression',
-                                                            'vars' => '',
-                                                            'line' => 496
-                                                          }, 'Parse::RecDescent::Rule' ),
-                              'operator' => bless( {
-                                                     'impcount' => 0,
-                                                     'calls' => [
-                                                                  '_alternation_1_of_production_1_of_rule_operator'
-                                                                ],
-                                                     'changed' => 0,
-                                                     'opcount' => 0,
-                                                     'prods' => [
-                                                                  bless( {
-                                                                           'number' => '0',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule_operator',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => '/CONCAT/i, or \'||\'',
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 321
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => undef
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '1',
-                                                                           'strcount' => 1,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'pattern' => '/',
-                                                                                                 'hashname' => '__STRING1__',
-                                                                                                 'description' => '\'/\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 321
-                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                      ],
-                                                                           'line' => 321
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '2',
-                                                                           'strcount' => 1,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'pattern' => '*',
-                                                                                                 'hashname' => '__STRING1__',
-                                                                                                 'description' => '\'*\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 321
-                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                      ],
-                                                                           'line' => 321
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '3',
-                                                                           'strcount' => 1,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'pattern' => '+',
-                                                                                                 'hashname' => '__STRING1__',
-                                                                                                 'description' => '\'+\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 321
-                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                      ],
-                                                                           'line' => 321
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '4',
-                                                                           'strcount' => 1,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'pattern' => '-',
-                                                                                                 'hashname' => '__STRING1__',
-                                                                                                 'description' => '\'-\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 321
-                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                      ],
-                                                                           'line' => 321
-                                                                         }, 'Parse::RecDescent::Production' )
-                                                                ],
-                                                     'name' => 'operator',
-                                                     'vars' => '',
-                                                     'line' => 321
-                                                   }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_2_of_rule_type' => 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' => 'INSERT',
-                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                    'description' => '/INSERT/i',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'rdelim' => '/',
-                                                                                                                                    'line' => 628,
-                                                                                                                                    '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' => 'DELETE',
-                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                    'description' => '/DELETE/i',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'rdelim' => '/',
-                                                                                                                                    'line' => 628,
-                                                                                                                                    'mod' => 'i',
-                                                                                                                                    'ldelim' => '/'
-                                                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                                                         ],
-                                                                                                              'line' => 628
-                                                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                                                     bless( {
-                                                                                                              'number' => '2',
-                                                                                                              'strcount' => 0,
-                                                                                                              'dircount' => 0,
-                                                                                                              'uncommit' => undef,
-                                                                                                              'error' => undef,
-                                                                                                              'patcount' => 1,
-                                                                                                              'actcount' => 0,
-                                                                                                              'items' => [
-                                                                                                                           bless( {
-                                                                                                                                    'pattern' => 'UPDATE',
-                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                    'description' => '/UPDATE/i',
-                                                                                                                                    'lookahead' => 0,
-                                                                                                                                    'rdelim' => '/',
-                                                                                                                                    'line' => 628,
-                                                                                                                                    'mod' => 'i',
-                                                                                                                                    'ldelim' => '/'
-                                                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                                                         ],
-                                                                                                              'line' => 628
-                                                                                                            }, 'Parse::RecDescent::Production' )
-                                                                                                   ],
-                                                                                        'name' => '_alternation_1_of_production_2_of_rule_type',
-                                                                                        'vars' => '',
-                                                                                        'line' => 628
-                                                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_8_of_rule_sysibm_function' => 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' => 'CONCAT',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/CONCAT/',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 628,
-                                                                                                                                               'mod' => '',
-                                                                                                                                               'ldelim' => '/'
-                                                                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                                                                    ],
-                                                                                                                         'line' => undef
-                                                                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                                                                bless( {
-                                                                                                                         'number' => '1',
-                                                                                                                         'strcount' => 1,
-                                                                                                                         'dircount' => 0,
-                                                                                                                         'uncommit' => undef,
-                                                                                                                         'error' => undef,
-                                                                                                                         'patcount' => 0,
-                                                                                                                         'actcount' => 0,
-                                                                                                                         'items' => [
-                                                                                                                                      bless( {
-                                                                                                                                               'pattern' => '||',
-                                                                                                                                               'hashname' => '__STRING1__',
-                                                                                                                                               'description' => '\'||\'',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'line' => 628
-                                                                                                                                             }, 'Parse::RecDescent::Literal' )
-                                                                                                                                    ],
-                                                                                                                         'line' => 628
-                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                              ],
-                                                                                                   'name' => '_alternation_1_of_production_8_of_rule_sysibm_function',
-                                                                                                   'vars' => '',
-                                                                                                   'line' => 628
-                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              'sequence_reference' => bless( {
-                                                               'impcount' => 0,
-                                                               'calls' => [
-                                                                            'nextval_expression',
-                                                                            'prevval_expression'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 0,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 0,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'nextval_expression',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 608
-                                                                                                         }, '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' => 'prevval_expression',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 609
-                                                                                                         }, 'Parse::RecDescent::Subrule' )
-                                                                                                ],
-                                                                                     'line' => 609
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'sequence_reference',
-                                                               'vars' => '',
-                                                               'line' => 608
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              'sysibm_function' => bless( {
-                                                            'impcount' => 0,
-                                                            'calls' => [
-                                                                         '_alternation_1_of_production_1_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_8_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_9_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_12_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_17_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_30_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_41_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_42_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_63_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_83_of_rule_sysibm_function',
-                                                                         '_alternation_1_of_production_87_of_rule_sysibm_function'
-                                                                       ],
-                                                            'changed' => 0,
-                                                            'opcount' => 0,
-                                                            'prods' => [
-                                                                         bless( {
-                                                                                  'number' => '0',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_1_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/ABS/i, or /ABSVAL/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 332
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => undef
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '1',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'AVG',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/AVG/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 333,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 333
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '2',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'BIGINT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/BIGINT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 334,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 334
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '3',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'BLOB',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/BLOB/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 335,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 335
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '4',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'CHAR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/CHAR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 336,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 336
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '5',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'CLOB',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/CLOB/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 337,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 337
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '6',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'COALESCE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/COALESCE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 338,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 338
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '7',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_8_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/CONCAT/, or \'||\'',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 339
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 339
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '8',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_9_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/CORRELATION/i, or /CORR/',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 340
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 340
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '9',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'COUNT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/COUNT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 341,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 341
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '10',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'COUNT_BIG',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/COUNT_BIG/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 342,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 342
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '11',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_12_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/COVARIANCE/i, or /COVAR/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 343
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 343
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '12',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DATE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DATE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 344,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 344
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '13',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DAY',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DAY/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 345,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 345
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '14',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DAYS',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DAYS/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 346,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 346
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '15',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DBCLOB',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DBCLOB/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 347,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 347
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '16',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_17_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/DECIMAL/i, or /DEC/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 348
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 348
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '17',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DECRYPT_BIN',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DECRYPT_BIN/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 349,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 349
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '18',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DECRYPT_CHAR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DECRYPT_CHAR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 350,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 350
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '19',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DEREF',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DEREF/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 351,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 351
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '20',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DIGITS',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DIGITS/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 352,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 352
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '21',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLCOMMENT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLCOMMENT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 353,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 353
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '22',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLLINKTYPE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLLINKTYPE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 354,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 354
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '23',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLURLCOMPLETE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLURLCOMPLETE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 355,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 355
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '24',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLURLPATH',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLURLPATH/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 356,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 356
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '25',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLURLPATHONLY',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLURLPATHONLY/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 357,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 357
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '26',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLURLSCHEME',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLURLSCHEME/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 358,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 358
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '27',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLURLSERVER',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLURLSERVER/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 359,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 359
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '28',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'DLVALUE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/DLVALUE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 360,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 360
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '29',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_30_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/DOUBLE/i, or /DOUBLE_PRECISION/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 361
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 361
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '30',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'ENCRYPT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/ENCRYPT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 362,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 362
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '31',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'EVENT_MON_STATE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/EVENT_MON_STATE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 363,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 363
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '32',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'FLOAT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/FLOAT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 364,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 364
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '33',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'GETHINT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/GETHINT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 365,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 365
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '34',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'GENERATE_UNIQUE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/GENERATE_UNIQUE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 366,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 366
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '35',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'GRAPHIC',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/GRAPHIC/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 367,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 367
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '36',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'GROUPING',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/GROUPING/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 368,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 368
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '37',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'HEX',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/HEX/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 369,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 369
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '38',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'HOUR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/HOUR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 370,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 370
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '39',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'IDENTITY_VAL_LOCAL',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/IDENTITY_VAL_LOCAL/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 371,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 371
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '40',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_41_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/INTEGER/i, or /INT/',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 372
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 372
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '41',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_42_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/LCASE/i, or /LOWER/',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 373
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 373
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '42',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'LENGTH',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/LENGTH/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 374,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 374
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '43',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'LONG_VARCHAR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/LONG_VARCHAR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 375,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 375
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '44',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'LONG_VARGRAPHIC',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/LONG_VARGRAPHIC/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 376,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 376
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '45',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'LTRIM',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/LTRIM/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 377,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 377
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '46',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MAX',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MAX/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 378,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 378
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '47',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MICROSECOND',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MICROSECOND/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 379,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 379
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '48',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MIN',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MIN/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 380,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 380
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '49',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MINUTE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MINUTE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 381,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 381
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '50',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MONTH',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MONTH/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 382,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 382
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '51',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'MULTIPLY_ACT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/MULTIPLY_ACT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 383,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 383
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '52',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'NODENUMBER',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/NODENUMBER/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 384,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 384
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '53',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'NULLIF',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/NULLIF/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 385,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 385
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '54',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'PARTITON',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/PARTITON/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 386,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 386
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '55',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'POSSTR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/POSSTR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 387,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 387
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '56',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'RAISE_ERROR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/RAISE_ERROR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 388,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 388
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '57',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REAL',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REAL/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 389,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 389
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '58',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REC2XML',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REC2XML/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 390,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 390
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '59',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_AVGX',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_AVGX/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 391,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 391
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '60',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_AVGY',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_AVGY/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 392,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 392
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '61',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_COUNT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_COUNT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 393,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 393
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '62',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_63_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/REGR_INTERCEPT/i, or /REGR_ICPT/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 394
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 394
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '63',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_R2',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_R2/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 395,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 395
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '64',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_SLOPE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_SLOPE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 396,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 396
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '65',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_SXX',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_SXX/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 397,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 397
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '66',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_SXY',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_SXY/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 398,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 398
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '67',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'REGR_SYY',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/REGR_SYY/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 399,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 399
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '68',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'RTRIM',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/RTRIM/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 400,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 400
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '69',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'SECOND',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/SECOND/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 401,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 401
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '70',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'SMALLINT',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/SMALLINT/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 402,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 402
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '71',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'STDDEV',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/STDDEV/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 403,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 403
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '72',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'SUBSTR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/SUBSTR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 404,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 404
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '73',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'SUM',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/SUM/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 405,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 405
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '74',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TABLE_NAME',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TABLE_NAME/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 406,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 406
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '75',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TABLE_SCHEMA',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TABLE_SCHEMA/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 407,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 407
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '76',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TIME',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TIME/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 408,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 408
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '77',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TIMESTAMP',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TIMESTAMP/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 409,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 409
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '78',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TRANSLATE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TRANSLATE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 410,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 410
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '79',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TYPE_ID',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TYPE_ID/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 411,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 411
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '80',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TYPE_NAME',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TYPE_NAME/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 412,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 412
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '81',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'TYPE_SCHEMA',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/TYPE_SCHEMA/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 413,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 413
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '82',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_83_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/UCASE/i, or /UPPER/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 414
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 414
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '83',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'VALUE',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/VALUE/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 415,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 415
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '84',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'VARCHAR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/VARCHAR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 416,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 416
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '85',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'VARGRAPHIC',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/VARGRAPHIC/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 417,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 417
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '86',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 0,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'subrule' => '_alternation_1_of_production_87_of_rule_sysibm_function',
-                                                                                                        'matchrule' => 0,
-                                                                                                        'implicit' => '/VARIANCE/i, or /VAR/i',
-                                                                                                        'argcode' => undef,
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 418
-                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                             ],
-                                                                                  'line' => 418
-                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                         bless( {
-                                                                                  'number' => '87',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 0,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 1,
-                                                                                  'actcount' => 0,
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'YEAR',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/YEAR/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 419,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                             ],
-                                                                                  'line' => 419
-                                                                                }, 'Parse::RecDescent::Production' )
-                                                                       ],
-                                                            'name' => 'sysibm_function',
-                                                            'vars' => '',
-                                                            'line' => 332
-                                                          }, 'Parse::RecDescent::Rule' ),
-                              'window_partition_clause' => bless( {
-                                                                    'impcount' => 0,
-                                                                    'calls' => [
-                                                                                 'partitioning_expression'
-                                                                               ],
-                                                                    'changed' => 0,
-                                                                    'opcount' => 0,
-                                                                    'prods' => [
-                                                                                 bless( {
-                                                                                          'number' => '0',
-                                                                                          'strcount' => 0,
-                                                                                          'dircount' => 1,
-                                                                                          'uncommit' => undef,
-                                                                                          'error' => undef,
-                                                                                          'patcount' => 2,
-                                                                                          'actcount' => 0,
-                                                                                          'op' => [],
-                                                                                          'items' => [
-                                                                                                       bless( {
-                                                                                                                'pattern' => 'PARTITION\\s+BY',
-                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                'description' => '/PARTITION\\\\s+BY/i',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'rdelim' => '/',
-                                                                                                                'line' => 553,
-                                                                                                                'mod' => 'i',
-                                                                                                                'ldelim' => '/'
-                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                       bless( {
-                                                                                                                'expected' => '<leftop: partitioning_expression /,/ partitioning_expression>',
-                                                                                                                'min' => 1,
-                                                                                                                'name' => '\'partitioning_expression(s)\'',
-                                                                                                                'max' => 100000000,
-                                                                                                                'leftarg' => bless( {
-                                                                                                                                      'subrule' => 'partitioning_expression',
-                                                                                                                                      'matchrule' => 0,
-                                                                                                                                      'implicit' => undef,
-                                                                                                                                      'argcode' => undef,
-                                                                                                                                      'lookahead' => 0,
-                                                                                                                                      'line' => 553
-                                                                                                                                    }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                'rightarg' => bless( {
-                                                                                                                                       'subrule' => 'partitioning_expression',
-                                                                                                                                       'matchrule' => 0,
-                                                                                                                                       'implicit' => undef,
-                                                                                                                                       'argcode' => undef,
-                                                                                                                                       'lookahead' => 0,
-                                                                                                                                       'line' => 553
-                                                                                                                                     }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                'hashname' => '__DIRECTIVE1__',
-                                                                                                                'type' => 'leftop',
-                                                                                                                'op' => bless( {
-                                                                                                                                 'pattern' => ',',
-                                                                                                                                 'hashname' => '__PATTERN2__',
-                                                                                                                                 'description' => '/,/',
-                                                                                                                                 'lookahead' => 0,
-                                                                                                                                 'rdelim' => '/',
-                                                                                                                                 'line' => 553,
-                                                                                                                                 'mod' => '',
-                                                                                                                                 'ldelim' => '/'
-                                                                                                                               }, 'Parse::RecDescent::Token' )
-                                                                                                              }, 'Parse::RecDescent::Operator' )
-                                                                                                     ],
-                                                                                          'line' => undef
-                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                               ],
-                                                                    'name' => 'window_partition_clause',
-                                                                    'vars' => '',
-                                                                    'line' => 553
-                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'WHERE' => 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' => 'where',
-                                                                                              'hashname' => '__PATTERN1__',
-                                                                                              'description' => '/where/i',
-                                                                                              'lookahead' => 0,
-                                                                                              'rdelim' => '/',
-                                                                                              'line' => 117,
-                                                                                              'mod' => 'i',
-                                                                                              'ldelim' => '/'
-                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'WHERE',
-                                                  'vars' => '',
-                                                  'line' => 117
-                                                }, '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' => 101,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'CREATE',
-                                                   'vars' => '',
-                                                   'line' => 101
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_sysfun' => 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' => 'ABS',
-                                                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                                                      'description' => '/ABS/i',
-                                                                                                                                      'lookahead' => 0,
-                                                                                                                                      'rdelim' => '/',
-                                                                                                                                      'line' => 628,
-                                                                                                                                      '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' => 'ABSVAL',
-                                                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                                                      'description' => '/ABSVAL/i',
-                                                                                                                                      'lookahead' => 0,
-                                                                                                                                      'rdelim' => '/',
-                                                                                                                                      'line' => 628,
-                                                                                                                                      'mod' => 'i',
-                                                                                                                                      'ldelim' => '/'
-                                                                                                                                    }, 'Parse::RecDescent::Token' )
-                                                                                                                           ],
-                                                                                                                'line' => 628
-                                                                                                              }, 'Parse::RecDescent::Production' )
-                                                                                                     ],
-                                                                                          'name' => '_alternation_1_of_production_1_of_rule_sysfun',
-                                                                                          'vars' => '',
-                                                                                          'line' => 628
-                                                                                        }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_function' => bless( {
-                                                                                            'impcount' => 0,
-                                                                                            'calls' => [
-                                                                                                         'sysibm_function',
-                                                                                                         'sysfun_function',
-                                                                                                         'userdefined_function'
-                                                                                                       ],
-                                                                                            'changed' => 0,
-                                                                                            'opcount' => 0,
-                                                                                            'prods' => [
-                                                                                                         bless( {
-                                                                                                                  'number' => '0',
-                                                                                                                  'strcount' => 0,
-                                                                                                                  'dircount' => 0,
-                                                                                                                  'uncommit' => undef,
-                                                                                                                  'error' => undef,
-                                                                                                                  'patcount' => 1,
-                                                                                                                  'actcount' => 0,
-                                                                                                                  'items' => [
-                                                                                                                               bless( {
-                                                                                                                                        'pattern' => 'SYSIBM\\.|',
-                                                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                                                        'description' => '/SYSIBM\\\\.|/i',
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'rdelim' => '/',
-                                                                                                                                        'line' => 625,
-                                                                                                                                        'mod' => 'i',
-                                                                                                                                        'ldelim' => '/'
-                                                                                                                                      }, 'Parse::RecDescent::Token' ),
-                                                                                                                               bless( {
-                                                                                                                                        'subrule' => 'sysibm_function',
-                                                                                                                                        'matchrule' => 0,
-                                                                                                                                        'implicit' => undef,
-                                                                                                                                        'argcode' => undef,
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'line' => 625
-                                                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                                                             ],
-                                                                                                                  'line' => undef
-                                                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                                                         bless( {
-                                                                                                                  'number' => '1',
-                                                                                                                  'strcount' => 0,
-                                                                                                                  'dircount' => 0,
-                                                                                                                  'uncommit' => undef,
-                                                                                                                  'error' => undef,
-                                                                                                                  'patcount' => 1,
-                                                                                                                  'actcount' => 0,
-                                                                                                                  'items' => [
-                                                                                                                               bless( {
-                                                                                                                                        'pattern' => 'SYSFUN\\.|',
-                                                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                                                        'description' => '/SYSFUN\\\\.|/i',
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'rdelim' => '/',
-                                                                                                                                        'line' => 626,
-                                                                                                                                        'mod' => 'i',
-                                                                                                                                        'ldelim' => '/'
-                                                                                                                                      }, 'Parse::RecDescent::Token' ),
-                                                                                                                               bless( {
-                                                                                                                                        'subrule' => 'sysfun_function',
-                                                                                                                                        'matchrule' => 0,
-                                                                                                                                        'implicit' => undef,
-                                                                                                                                        'argcode' => undef,
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'line' => 626
-                                                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                                                             ],
-                                                                                                                  'line' => 626
-                                                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                                                         bless( {
-                                                                                                                  'number' => '2',
-                                                                                                                  'strcount' => 0,
-                                                                                                                  'dircount' => 0,
-                                                                                                                  'uncommit' => undef,
-                                                                                                                  'error' => undef,
-                                                                                                                  'patcount' => 0,
-                                                                                                                  'actcount' => 0,
-                                                                                                                  'items' => [
-                                                                                                                               bless( {
-                                                                                                                                        'subrule' => 'userdefined_function',
-                                                                                                                                        'matchrule' => 0,
-                                                                                                                                        'implicit' => undef,
-                                                                                                                                        'argcode' => undef,
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'line' => 627
-                                                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                                                             ],
-                                                                                                                  'line' => 627
-                                                                                                                }, 'Parse::RecDescent::Production' )
-                                                                                                       ],
-                                                                                            'name' => '_alternation_1_of_production_1_of_rule_function',
-                                                                                            'vars' => '',
-                                                                                            'line' => 625
-                                                                                          }, 'Parse::RecDescent::Rule' ),
-                              'identifier' => 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' => 136
-                                                                                                 }, 'Parse::RecDescent::Subrule' )
-                                                                                        ],
-                                                                             'line' => undef
-                                                                           }, 'Parse::RecDescent::Production' )
-                                                                  ],
-                                                       'name' => 'identifier',
-                                                       'vars' => '',
-                                                       'line' => 136
-                                                     }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
-                                                                                                                                              'impcount' => 0,
-                                                                                                                                              'calls' => [
-                                                                                                                                                           'asc_option',
-                                                                                                                                                           'desc_option'
-                                                                                                                                                         ],
-                                                                                                                                              'changed' => 0,
-                                                                                                                                              'opcount' => 0,
-                                                                                                                                              'prods' => [
-                                                                                                                                                           bless( {
-                                                                                                                                                                    'number' => '0',
-                                                                                                                                                                    'strcount' => 0,
-                                                                                                                                                                    'dircount' => 0,
-                                                                                                                                                                    'uncommit' => undef,
-                                                                                                                                                                    'error' => undef,
-                                                                                                                                                                    'patcount' => 0,
-                                                                                                                                                                    'actcount' => 0,
-                                                                                                                                                                    'items' => [
-                                                                                                                                                                                 bless( {
-                                                                                                                                                                                          'subrule' => 'asc_option',
-                                                                                                                                                                                          'matchrule' => 0,
-                                                                                                                                                                                          'implicit' => undef,
-                                                                                                                                                                                          'argcode' => undef,
-                                                                                                                                                                                          'lookahead' => 0,
-                                                                                                                                                                                          'line' => 626
-                                                                                                                                                                                        }, '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' => 'desc_option',
-                                                                                                                                                                                          'matchrule' => 0,
-                                                                                                                                                                                          'implicit' => undef,
-                                                                                                                                                                                          'argcode' => undef,
-                                                                                                                                                                                          'lookahead' => 0,
-                                                                                                                                                                                          'line' => 627
-                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                               ],
-                                                                                                                                                                    'line' => 627
-                                                                                                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                                                                                                         ],
-                                                                                                                                              'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
-                                                                                                                                              'vars' => '',
-                                                                                                                                              'line' => 626
-                                                                                                                                            }, 'Parse::RecDescent::Rule' ),
-                              'result_expression' => bless( {
-                                                              'impcount' => 0,
-                                                              'calls' => [
-                                                                           'expression'
-                                                                         ],
-                                                              'changed' => 0,
-                                                              'opcount' => 0,
-                                                              'prods' => [
-                                                                           bless( {
-                                                                                    'number' => '0',
-                                                                                    'strcount' => 0,
-                                                                                    'dircount' => 0,
-                                                                                    'uncommit' => undef,
-                                                                                    'error' => undef,
-                                                                                    'patcount' => 0,
-                                                                                    'actcount' => 0,
-                                                                                    'items' => [
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'expression',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 515
-                                                                                                        }, 'Parse::RecDescent::Subrule' )
-                                                                                               ],
-                                                                                    'line' => undef
-                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                         ],
-                                                              'name' => 'result_expression',
-                                                              'vars' => '',
-                                                              'line' => 515
-                                                            }, 'Parse::RecDescent::Rule' ),
-                              'scoped_reference_expression' => bless( {
-                                                                        'impcount' => 0,
-                                                                        'calls' => [
-                                                                                     'expression'
-                                                                                   ],
-                                                                        'changed' => 0,
-                                                                        'opcount' => 0,
-                                                                        'prods' => [
-                                                                                     bless( {
-                                                                                              'number' => '0',
-                                                                                              'strcount' => 0,
-                                                                                              'dircount' => 0,
-                                                                                              'uncommit' => undef,
-                                                                                              'error' => undef,
-                                                                                              'patcount' => 0,
-                                                                                              'actcount' => 1,
-                                                                                              'items' => [
-                                                                                                           bless( {
-                                                                                                                    'subrule' => 'expression',
-                                                                                                                    'matchrule' => 0,
-                                                                                                                    'implicit' => undef,
-                                                                                                                    'argcode' => undef,
-                                                                                                                    'lookahead' => 0,
-                                                                                                                    'line' => 532
-                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                                           bless( {
-                                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                                    'lookahead' => 0,
-                                                                                                                    'line' => 533,
-                                                                                                                    'code' => '{ # scoped, reference 
-}'
-                                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                                         ],
-                                                                                              'line' => undef
-                                                                                            }, 'Parse::RecDescent::Production' )
-                                                                                   ],
-                                                                        'name' => 'scoped_reference_expression',
-                                                                        'vars' => '',
-                                                                        'line' => 528
-                                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification' => bless( {
-                                                                                                                                             'impcount' => 0,
-                                                                                                                                             'calls' => [
-                                                                                                                                                          'typed_table_name',
-                                                                                                                                                          'typed_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' => 'typed_table_name',
-                                                                                                                                                                                         'matchrule' => 0,
-                                                                                                                                                                                         'implicit' => undef,
-                                                                                                                                                                                         'argcode' => undef,
-                                                                                                                                                                                         'lookahead' => 0,
-                                                                                                                                                                                         'line' => 626
-                                                                                                                                                                                       }, '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' => 'typed_view_name',
-                                                                                                                                                                                         'matchrule' => 0,
-                                                                                                                                                                                         'implicit' => undef,
-                                                                                                                                                                                         'argcode' => undef,
-                                                                                                                                                                                         'lookahead' => 0,
-                                                                                                                                                                                         'line' => 627
-                                                                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                              ],
-                                                                                                                                                                   'line' => 627
-                                                                                                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                                                                                                        ],
-                                                                                                                                             'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
-                                                                                                                                             'vars' => '',
-                                                                                                                                             'line' => 626
-                                                                                                                                           }, 'Parse::RecDescent::Rule' ),
-                              'when_clause' => bless( {
-                                                        'impcount' => 0,
-                                                        'calls' => [
-                                                                     'search_condition'
-                                                                   ],
-                                                        'changed' => 0,
-                                                        'opcount' => 0,
-                                                        'prods' => [
-                                                                     bless( {
-                                                                              'number' => '0',
-                                                                              'strcount' => 2,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 1,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'WHEN',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/WHEN/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 261,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                           bless( {
-                                                                                                    'pattern' => '(',
-                                                                                                    'hashname' => '__STRING1__',
-                                                                                                    'description' => '\'(\'',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 261
-                                                                                                  }, 'Parse::RecDescent::Literal' ),
-                                                                                           bless( {
-                                                                                                    'subrule' => 'search_condition',
-                                                                                                    'matchrule' => 0,
-                                                                                                    'implicit' => undef,
-                                                                                                    'argcode' => undef,
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 261
-                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                           bless( {
-                                                                                                    'pattern' => ')',
-                                                                                                    'hashname' => '__STRING2__',
-                                                                                                    'description' => '\')\'',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 261
-                                                                                                  }, 'Parse::RecDescent::Literal' ),
-                                                                                           bless( {
-                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 261,
-                                                                                                    'code' => '{$return = $item[3]}'
-                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'when_clause',
-                                                        'vars' => '',
-                                                        'line' => 259
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_asc_option' => 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' => 'NULLS\\s+FIRST',
-                                                                                                                                          'hashname' => '__PATTERN1__',
-                                                                                                                                          'description' => '/NULLS\\\\s+FIRST/i',
-                                                                                                                                          'lookahead' => 0,
-                                                                                                                                          'rdelim' => '/',
-                                                                                                                                          'line' => 628,
-                                                                                                                                          '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' => 'NULLS\\s+LAST',
-                                                                                                                                          'hashname' => '__PATTERN1__',
-                                                                                                                                          'description' => '/NULLS\\\\s+LAST/i',
-                                                                                                                                          'lookahead' => 0,
-                                                                                                                                          'rdelim' => '/',
-                                                                                                                                          'line' => 628,
-                                                                                                                                          'mod' => 'i',
-                                                                                                                                          'ldelim' => '/'
-                                                                                                                                        }, 'Parse::RecDescent::Token' )
-                                                                                                                               ],
-                                                                                                                    'line' => 628
-                                                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                                                         ],
-                                                                                              'name' => '_alternation_1_of_production_1_of_rule_asc_option',
-                                                                                              'vars' => '',
-                                                                                              'line' => 628
-                                                                                            }, 'Parse::RecDescent::Rule' ),
-                              'sequence_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' => 615
-                                                                                                    }, 'Parse::RecDescent::Subrule' )
-                                                                                           ],
-                                                                                'line' => undef
-                                                                              }, 'Parse::RecDescent::Production' )
-                                                                     ],
-                                                          'name' => 'sequence_name',
-                                                          'vars' => '',
-                                                          'line' => 615
-                                                        }, 'Parse::RecDescent::Rule' ),
-                              'ld_duration' => 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' => 'YEARS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/YEARS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 488,
-                                                                                                    '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' => 'MONTHS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/MONTHS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 489,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 489
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '2',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'DAYS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/DAYS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 490,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 490
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '3',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'HOURS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/HOURS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 491,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 491
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '4',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'MINUTES?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/MINUTES?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 492,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 492
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '5',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'SECONDS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/SECONDS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 493,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 493
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '6',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'MICROSECONDS?',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/MICROSECONDS?/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 494,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 494
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'ld_duration',
-                                                        'vars' => '',
-                                                        'line' => 488
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'reference_a' => bless( {
-                                                        'impcount' => 0,
-                                                        'calls' => [
-                                                                     'old_new_corr',
-                                                                     'old_new_table'
-                                                                   ],
-                                                        'changed' => 0,
-                                                        'opcount' => 0,
-                                                        'prods' => [
-                                                                     bless( {
-                                                                              'number' => '0',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 1,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'REFERENCING',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/REFERENCING/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 283,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                           bless( {
-                                                                                                    'subrule' => 'old_new_corr',
-                                                                                                    'expected' => undef,
-                                                                                                    'min' => 0,
-                                                                                                    'argcode' => undef,
-                                                                                                    'max' => 2,
-                                                                                                    'matchrule' => 0,
-                                                                                                    'repspec' => '0..2',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 283
-                                                                                                  }, 'Parse::RecDescent::Repetition' ),
-                                                                                           bless( {
-                                                                                                    'subrule' => 'old_new_table',
-                                                                                                    'expected' => undef,
-                                                                                                    'min' => 0,
-                                                                                                    'argcode' => undef,
-                                                                                                    'max' => 2,
-                                                                                                    'matchrule' => 0,
-                                                                                                    'repspec' => '0..2',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 283
-                                                                                                  }, 'Parse::RecDescent::Repetition' ),
-                                                                                           bless( {
-                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 284,
-                                                                                                    'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}), join(\' \', @{$item[3]})  ) }'
-                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'reference_a',
-                                                        'vars' => '',
-                                                        'line' => 283
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'cast_specification' => bless( {
-                                                               'impcount' => 2,
-                                                               'calls' => [
-                                                                            '_alternation_1_of_production_1_of_rule_cast_specification',
-                                                                            'data_type',
-                                                                            '_alternation_2_of_production_1_of_rule_cast_specification'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 2,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 2,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'CAST',
-                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                           'description' => '/CAST/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 517,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => '(',
-                                                                                                           'hashname' => '__STRING1__',
-                                                                                                           'description' => '\'(\'',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 517
-                                                                                                         }, 'Parse::RecDescent::Literal' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_cast_specification',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => 'expression, or /NULL/i, or parameter_marker',
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 520
-                                                                                                         }, 'Parse::RecDescent::Subrule' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'AS',
-                                                                                                           'hashname' => '__PATTERN2__',
-                                                                                                           'description' => '/AS/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 520,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'data_type',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 520
-                                                                                                         }, 'Parse::RecDescent::Subrule' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => '_alternation_2_of_production_1_of_rule_cast_specification',
-                                                                                                           'expected' => '/SCOPE/',
-                                                                                                           'min' => 0,
-                                                                                                           'argcode' => undef,
-                                                                                                           'max' => 1,
-                                                                                                           'matchrule' => 0,
-                                                                                                           'repspec' => '?',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 524
-                                                                                                         }, 'Parse::RecDescent::Repetition' ),
-                                                                                                  bless( {
-                                                                                                           'pattern' => ')',
-                                                                                                           'hashname' => '__STRING2__',
-                                                                                                           'description' => '\')\'',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 524
-                                                                                                         }, 'Parse::RecDescent::Literal' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'cast_specification',
-                                                               'vars' => '',
-                                                               'line' => 517
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              'type' => bless( {
-                                                 'impcount' => 1,
-                                                 'calls' => [
-                                                              'column_name',
-                                                              '_alternation_1_of_production_2_of_rule_type'
-                                                            ],
-                                                 'changed' => 0,
-                                                 'opcount' => 0,
-                                                 'prods' => [
-                                                              bless( {
-                                                                       'number' => '0',
-                                                                       'strcount' => 0,
-                                                                       'dircount' => 1,
-                                                                       'uncommit' => undef,
-                                                                       'error' => undef,
-                                                                       'patcount' => 3,
-                                                                       'actcount' => 1,
-                                                                       'op' => [],
-                                                                       'items' => [
-                                                                                    bless( {
-                                                                                             'pattern' => 'UPDATE',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/UPDATE/i',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 272,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' ),
-                                                                                    bless( {
-                                                                                             'pattern' => 'OF',
-                                                                                             'hashname' => '__PATTERN2__',
-                                                                                             'description' => '/OF/i',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 272,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' ),
-                                                                                    bless( {
-                                                                                             'expected' => '<leftop: column_name /,/ column_name>',
-                                                                                             'min' => 1,
-                                                                                             'name' => '\'column_name(s)\'',
-                                                                                             'max' => 100000000,
-                                                                                             'leftarg' => bless( {
-                                                                                                                   'subrule' => 'column_name',
-                                                                                                                   'matchrule' => 0,
-                                                                                                                   'implicit' => undef,
-                                                                                                                   'argcode' => undef,
-                                                                                                                   'lookahead' => 0,
-                                                                                                                   'line' => 272
-                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                             'rightarg' => bless( {
-                                                                                                                    'subrule' => 'column_name',
-                                                                                                                    'matchrule' => 0,
-                                                                                                                    'implicit' => undef,
-                                                                                                                    'argcode' => undef,
-                                                                                                                    'lookahead' => 0,
-                                                                                                                    'line' => 272
-                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                             'hashname' => '__DIRECTIVE1__',
-                                                                                             'type' => 'leftop',
-                                                                                             'op' => bless( {
-                                                                                                              'pattern' => ',',
-                                                                                                              'hashname' => '__PATTERN3__',
-                                                                                                              'description' => '/,/',
-                                                                                                              'lookahead' => 0,
-                                                                                                              'rdelim' => '/',
-                                                                                                              'line' => 272,
-                                                                                                              'mod' => '',
-                                                                                                              'ldelim' => '/'
-                                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                           }, 'Parse::RecDescent::Operator' ),
-                                                                                    bless( {
-                                                                                             'hashname' => '__ACTION1__',
-                                                                                             'lookahead' => 0,
-                                                                                             'line' => 273,
-                                                                                             'code' => '{ $return = { event  => \'update_on\',
-              fields => $item[3] }
-}'
-                                                                                           }, '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' => '_alternation_1_of_production_2_of_rule_type',
-                                                                                             'matchrule' => 0,
-                                                                                             'implicit' => '/INSERT/i, or /DELETE/i, or /UPDATE/i',
-                                                                                             'argcode' => undef,
-                                                                                             'lookahead' => 0,
-                                                                                             'line' => 277
-                                                                                           }, 'Parse::RecDescent::Subrule' ),
-                                                                                    bless( {
-                                                                                             'hashname' => '__ACTION1__',
-                                                                                             'lookahead' => 0,
-                                                                                             'line' => 278,
-                                                                                             'code' => '{ $return = { event => $item[1] } }'
-                                                                                           }, 'Parse::RecDescent::Action' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'type',
-                                                 'vars' => '',
-                                                 'line' => 272
-                                               }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_12_of_rule_sysibm_function' => 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' => 'COVARIANCE',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/COVARIANCE/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'COVAR',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/COVAR/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_12_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'scalar_fullselect' => bless( {
-                                                              'impcount' => 0,
-                                                              'calls' => [
-                                                                           'fullselect'
-                                                                         ],
-                                                              'changed' => 0,
-                                                              'opcount' => 0,
-                                                              'prods' => [
-                                                                           bless( {
-                                                                                    'number' => '0',
-                                                                                    'strcount' => 2,
-                                                                                    'dircount' => 0,
-                                                                                    'uncommit' => undef,
-                                                                                    'error' => undef,
-                                                                                    'patcount' => 0,
-                                                                                    'actcount' => 0,
-                                                                                    'items' => [
-                                                                                                 bless( {
-                                                                                                          'pattern' => '(',
-                                                                                                          'hashname' => '__STRING1__',
-                                                                                                          'description' => '\'(\'',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 478
-                                                                                                        }, 'Parse::RecDescent::Literal' ),
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'fullselect',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 478
-                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 bless( {
-                                                                                                          'pattern' => ')',
-                                                                                                          'hashname' => '__STRING2__',
-                                                                                                          'description' => '\')\'',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 478
-                                                                                                        }, 'Parse::RecDescent::Literal' )
-                                                                                               ],
-                                                                                    'line' => undef
-                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                         ],
-                                                              'name' => 'scalar_fullselect',
-                                                              'vars' => '',
-                                                              'line' => 478
-                                                            }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_options' => 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' => 'CASCADED',
-                                                                                                                                       'hashname' => '__PATTERN1__',
-                                                                                                                                       'description' => '/CASCADED/i',
-                                                                                                                                       'lookahead' => 0,
-                                                                                                                                       'rdelim' => '/',
-                                                                                                                                       'line' => 628,
-                                                                                                                                       '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' => 'LOCAL',
-                                                                                                                                       'hashname' => '__PATTERN1__',
-                                                                                                                                       'description' => '/LOCAL/i',
-                                                                                                                                       'lookahead' => 0,
-                                                                                                                                       'rdelim' => '/',
-                                                                                                                                       'line' => 628,
-                                                                                                                                       'mod' => 'i',
-                                                                                                                                       'ldelim' => '/'
-                                                                                                                                     }, 'Parse::RecDescent::Token' )
-                                                                                                                            ],
-                                                                                                                 'line' => 628
-                                                                                                               }, 'Parse::RecDescent::Production' )
-                                                                                                      ],
-                                                                                           'name' => '_alternation_1_of_production_1_of_rule_options',
-                                                                                           'vars' => '',
-                                                                                           'line' => 628
-                                                                                         }, 'Parse::RecDescent::Rule' ),
-                              'func_args' => bless( {
-                                                      'impcount' => 0,
-                                                      'calls' => [
-                                                                   'expression'
-                                                                 ],
-                                                      'changed' => 0,
-                                                      'opcount' => 0,
-                                                      'prods' => [
-                                                                   bless( {
-                                                                            'number' => '0',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'expression',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 330
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => undef
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'func_args',
-                                                      'vars' => '',
-                                                      'line' => 330
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              'trigger_name' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'SCHEMA',
-                                                                      'NAME'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 1,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 0,
-                                                                               'actcount' => 1,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'subrule' => 'SCHEMA',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 119
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => '.',
-                                                                                                     'hashname' => '__STRING1__',
-                                                                                                     'description' => '\'.\'',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 119
-                                                                                                   }, 'Parse::RecDescent::Literal' ),
-                                                                                            bless( {
-                                                                                                     'subrule' => 'NAME',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 119
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'hashname' => '__ACTION1__',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 120,
-                                                                                                     'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
-                                                                                                   }, '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' => 'NAME',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 121
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'hashname' => '__ACTION1__',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 122,
-                                                                                                     'code' => '{ $return = { name => $item[1] } }'
-                                                                                                   }, 'Parse::RecDescent::Action' )
-                                                                                          ],
-                                                                               'line' => 121
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'trigger_name',
-                                                         'vars' => '',
-                                                         'line' => 119
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule_numbering_function' => bless( {
-                                                                                                      'impcount' => 0,
-                                                                                                      'calls' => [
-                                                                                                                   'window_aggregation_group_clause'
-                                                                                                                 ],
-                                                                                                      'changed' => 0,
-                                                                                                      'opcount' => 0,
-                                                                                                      'prods' => [
-                                                                                                                   bless( {
-                                                                                                                            'number' => '0',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 1,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'pattern' => 'RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING',
-                                                                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                                                                  'description' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'rdelim' => '/',
-                                                                                                                                                  'line' => 626,
-                                                                                                                                                  'mod' => 'i',
-                                                                                                                                                  'ldelim' => '/'
-                                                                                                                                                }, 'Parse::RecDescent::Token' )
-                                                                                                                                       ],
-                                                                                                                            'line' => undef
-                                                                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                                                                   bless( {
-                                                                                                                            'number' => '1',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 0,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'window_aggregation_group_clause',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => undef,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                       ],
-                                                                                                                            'line' => 627
-                                                                                                                          }, 'Parse::RecDescent::Production' )
-                                                                                                                 ],
-                                                                                                      'name' => '_alternation_2_of_production_1_of_rule_numbering_function',
-                                                                                                      'vars' => '',
-                                                                                                      'line' => 626
-                                                                                                    }, 'Parse::RecDescent::Rule' ),
-                              'method_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' => 602
-                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                           bless( {
-                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 603,
-                                                                                                    'code' => '{ # must be a method of subject_expression 
-}'
-                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'method_name',
-                                                        'vars' => '',
-                                                        'line' => 602
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'quantified_p' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'expression1',
-                                                                      'fullselect'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 2,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 2,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'subrule' => 'expression1',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 626
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 626,
-                                                                                                     'mod' => '',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => 'SOME|ANY|ALL',
-                                                                                                     'hashname' => '__PATTERN2__',
-                                                                                                     'description' => '/SOME|ANY|ALL/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 626,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => '(',
-                                                                                                     'hashname' => '__STRING1__',
-                                                                                                     'description' => '\'(\'',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 626
-                                                                                                   }, 'Parse::RecDescent::Literal' ),
-                                                                                            bless( {
-                                                                                                     'subrule' => 'fullselect',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 626
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => ')',
-                                                                                                     'hashname' => '__STRING2__',
-                                                                                                     'description' => '\')\'',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 626
-                                                                                                   }, 'Parse::RecDescent::Literal' )
-                                                                                          ],
-                                                                               'line' => undef
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'quantified_p',
-                                                         'vars' => '',
-                                                         'line' => 626
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              'common_table_expression' => bless( {
-                                                                    'impcount' => 0,
-                                                                    'calls' => [
-                                                                                 'table_name',
-                                                                                 'column_list',
-                                                                                 'get_bracketed',
-                                                                                 'fullselect'
-                                                                               ],
-                                                                    'changed' => 0,
-                                                                    'opcount' => 0,
-                                                                    'prods' => [
-                                                                                 bless( {
-                                                                                          'number' => '0',
-                                                                                          'strcount' => 0,
-                                                                                          'dircount' => 0,
-                                                                                          'uncommit' => undef,
-                                                                                          'error' => undef,
-                                                                                          'patcount' => 1,
-                                                                                          'actcount' => 1,
-                                                                                          'items' => [
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'table_name',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 162
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'column_list',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 162
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'pattern' => 'AS',
-                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                'description' => '/AS/i',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'rdelim' => '/',
-                                                                                                                'line' => 162,
-                                                                                                                'mod' => 'i',
-                                                                                                                'ldelim' => '/'
-                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'get_bracketed',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 162
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'hashname' => '__ACTION1__',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 163,
-                                                                                                                'code' => '{
-    $return = { name  => $item{table_name}{name}, 
-                query => $item[4]
-                };
-}'
-                                                                                                              }, 'Parse::RecDescent::Action' )
-                                                                                                     ],
-                                                                                          'line' => undef
-                                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                                 bless( {
-                                                                                          'number' => '1',
-                                                                                          'strcount' => 2,
-                                                                                          'dircount' => 0,
-                                                                                          'uncommit' => undef,
-                                                                                          'error' => undef,
-                                                                                          'patcount' => 1,
-                                                                                          'actcount' => 0,
-                                                                                          'items' => [
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'table_name',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 174
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'column_list',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 174
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'pattern' => 'AS',
-                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                'description' => '/AS/i',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'rdelim' => '/',
-                                                                                                                'line' => 174,
-                                                                                                                'mod' => 'i',
-                                                                                                                'ldelim' => '/'
-                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                       bless( {
-                                                                                                                'pattern' => '(',
-                                                                                                                'hashname' => '__STRING1__',
-                                                                                                                'description' => '\'(\'',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 174
-                                                                                                              }, 'Parse::RecDescent::Literal' ),
-                                                                                                       bless( {
-                                                                                                                'subrule' => 'fullselect',
-                                                                                                                'matchrule' => 0,
-                                                                                                                'implicit' => undef,
-                                                                                                                'argcode' => undef,
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 174
-                                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                                       bless( {
-                                                                                                                'pattern' => ')',
-                                                                                                                'hashname' => '__STRING2__',
-                                                                                                                'description' => '\')\'',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 174
-                                                                                                              }, 'Parse::RecDescent::Literal' )
-                                                                                                     ],
-                                                                                          'line' => undef
-                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                               ],
-                                                                    'name' => 'common_table_expression',
-                                                                    'vars' => '',
-                                                                    'line' => 160
-                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'after' => 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' => 'AFTER',
-                                                                                              'hashname' => '__PATTERN1__',
-                                                                                              'description' => '/AFTER/i',
-                                                                                              'lookahead' => 0,
-                                                                                              'rdelim' => '/',
-                                                                                              'line' => 270,
-                                                                                              'mod' => 'i',
-                                                                                              'ldelim' => '/'
-                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'after',
-                                                  'vars' => '',
-                                                  'line' => 270
-                                                }, 'Parse::RecDescent::Rule' ),
-                              'predicate' => bless( {
-                                                      'impcount' => 0,
-                                                      'calls' => [
-                                                                   'basic_p',
-                                                                   'quantified_p',
-                                                                   'between_p',
-                                                                   'exists_p',
-                                                                   'in_p',
-                                                                   'like_p',
-                                                                   'null_p',
-                                                                   'type_p'
-                                                                 ],
-                                                      'changed' => 0,
-                                                      'opcount' => 0,
-                                                      'prods' => [
-                                                                   bless( {
-                                                                            'number' => '0',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'basic_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, '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' => 'quantified_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '2',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'between_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '3',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'exists_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '4',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'in_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '5',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'like_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '6',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'null_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                   bless( {
-                                                                            'number' => '7',
-                                                                            'strcount' => 0,
-                                                                            'dircount' => 0,
-                                                                            'uncommit' => undef,
-                                                                            'error' => undef,
-                                                                            'patcount' => 0,
-                                                                            'actcount' => 0,
-                                                                            'items' => [
-                                                                                         bless( {
-                                                                                                  'subrule' => 'type_p',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 622
-                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                       ],
-                                                                            'line' => 622
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'predicate',
-                                                      'vars' => '',
-                                                      'line' => 622
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              'column_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' => 134
-                                                                                                  }, 'Parse::RecDescent::Subrule' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'column_name',
-                                                        'vars' => '',
-                                                        'line' => 134
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'method_invocation' => bless( {
-                                                              'impcount' => 1,
-                                                              'calls' => [
-                                                                           'subject_expression',
-                                                                           'method_name',
-                                                                           '_alternation_1_of_production_1_of_rule_method_invocation'
-                                                                         ],
-                                                              'changed' => 0,
-                                                              'opcount' => 0,
-                                                              'prods' => [
-                                                                           bless( {
-                                                                                    'number' => '0',
-                                                                                    'strcount' => 1,
-                                                                                    'dircount' => 0,
-                                                                                    'uncommit' => undef,
-                                                                                    'error' => undef,
-                                                                                    'patcount' => 0,
-                                                                                    'actcount' => 0,
-                                                                                    'items' => [
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'subject_expression',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 593
-                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 bless( {
-                                                                                                          'pattern' => '..',
-                                                                                                          'hashname' => '__STRING1__',
-                                                                                                          'description' => '\'..\'',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 593
-                                                                                                        }, 'Parse::RecDescent::Literal' ),
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'method_name',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 593
-                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 bless( {
-                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_method_invocation',
-                                                                                                          'expected' => '\'(\'',
-                                                                                                          'min' => 0,
-                                                                                                          'argcode' => undef,
-                                                                                                          'max' => 1,
-                                                                                                          'matchrule' => 0,
-                                                                                                          'repspec' => '?',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 596
-                                                                                                        }, 'Parse::RecDescent::Repetition' )
-                                                                                               ],
-                                                                                    'line' => undef
-                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                         ],
-                                                              'name' => 'method_invocation',
-                                                              'vars' => '',
-                                                              'line' => 593
-                                                            }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_dereference_operation' => bless( {
-                                                                                                         'impcount' => 0,
-                                                                                                         'calls' => [
-                                                                                                                      'expression'
-                                                                                                                    ],
-                                                                                                         'changed' => 0,
-                                                                                                         'opcount' => 0,
-                                                                                                         'prods' => [
-                                                                                                                      bless( {
-                                                                                                                               'number' => '0',
-                                                                                                                               'strcount' => 2,
-                                                                                                                               'dircount' => 0,
-                                                                                                                               'uncommit' => undef,
-                                                                                                                               'error' => undef,
-                                                                                                                               'patcount' => 0,
-                                                                                                                               'actcount' => 0,
-                                                                                                                               'items' => [
-                                                                                                                                            bless( {
-                                                                                                                                                     'pattern' => '(',
-                                                                                                                                                     'hashname' => '__STRING1__',
-                                                                                                                                                     'description' => '\'(\'',
-                                                                                                                                                     'lookahead' => 0,
-                                                                                                                                                     'line' => 628
-                                                                                                                                                   }, 'Parse::RecDescent::Literal' ),
-                                                                                                                                            bless( {
-                                                                                                                                                     'subrule' => 'expression',
-                                                                                                                                                     'expected' => undef,
-                                                                                                                                                     'min' => 1,
-                                                                                                                                                     'argcode' => undef,
-                                                                                                                                                     'max' => 100000000,
-                                                                                                                                                     'matchrule' => 0,
-                                                                                                                                                     'repspec' => 's',
-                                                                                                                                                     'lookahead' => 0,
-                                                                                                                                                     'line' => 628
-                                                                                                                                                   }, 'Parse::RecDescent::Repetition' ),
-                                                                                                                                            bless( {
-                                                                                                                                                     'pattern' => ')',
-                                                                                                                                                     'hashname' => '__STRING2__',
-                                                                                                                                                     'description' => '\')\'',
-                                                                                                                                                     'lookahead' => 0,
-                                                                                                                                                     'line' => 628
-                                                                                                                                                   }, 'Parse::RecDescent::Literal' )
-                                                                                                                                          ],
-                                                                                                                               'line' => undef
-                                                                                                                             }, 'Parse::RecDescent::Production' )
-                                                                                                                    ],
-                                                                                                         'name' => '_alternation_1_of_production_1_of_rule_dereference_operation',
-                                                                                                         'vars' => '',
-                                                                                                         'line' => 628
-                                                                                                       }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
-                                                                                                        'impcount' => 1,
-                                                                                                        'calls' => [
-                                                                                                                     'search_condition',
-                                                                                                                     '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause'
-                                                                                                                   ],
-                                                                                                        'changed' => 0,
-                                                                                                        'opcount' => 0,
-                                                                                                        'prods' => [
-                                                                                                                     bless( {
-                                                                                                                              'number' => '0',
-                                                                                                                              'strcount' => 0,
-                                                                                                                              'dircount' => 0,
-                                                                                                                              'uncommit' => undef,
-                                                                                                                              'error' => undef,
-                                                                                                                              'patcount' => 2,
-                                                                                                                              'actcount' => 0,
-                                                                                                                              'items' => [
-                                                                                                                                           bless( {
-                                                                                                                                                    'pattern' => 'WHEN',
-                                                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                                                    'description' => '/WHEN/i',
-                                                                                                                                                    'lookahead' => 0,
-                                                                                                                                                    'rdelim' => '/',
-                                                                                                                                                    'line' => 624,
-                                                                                                                                                    'mod' => 'i',
-                                                                                                                                                    'ldelim' => '/'
-                                                                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                                                                           bless( {
-                                                                                                                                                    'subrule' => 'search_condition',
-                                                                                                                                                    'matchrule' => 0,
-                                                                                                                                                    'implicit' => undef,
-                                                                                                                                                    'argcode' => undef,
-                                                                                                                                                    'lookahead' => 0,
-                                                                                                                                                    'line' => 624
-                                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                           bless( {
-                                                                                                                                                    'pattern' => 'THEN',
-                                                                                                                                                    'hashname' => '__PATTERN2__',
-                                                                                                                                                    'description' => '/THEN/i',
-                                                                                                                                                    'lookahead' => 0,
-                                                                                                                                                    'rdelim' => '/',
-                                                                                                                                                    'line' => 624,
-                                                                                                                                                    'mod' => 'i',
-                                                                                                                                                    'ldelim' => '/'
-                                                                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                                                                           bless( {
-                                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
-                                                                                                                                                    'matchrule' => 0,
-                                                                                                                                                    'implicit' => 'result_expression, or /NULL/i',
-                                                                                                                                                    'argcode' => undef,
-                                                                                                                                                    'lookahead' => 0,
-                                                                                                                                                    'line' => 627
-                                                                                                                                                  }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                         ],
-                                                                                                                              'line' => undef
-                                                                                                                            }, 'Parse::RecDescent::Production' )
-                                                                                                                   ],
-                                                                                                        'name' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
-                                                                                                        'vars' => '',
-                                                                                                        'line' => 624
-                                                                                                      }, 'Parse::RecDescent::Rule' ),
-                              'group_bound2' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'unsigned_constant'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'UNBOUNDED\\s+PRECEDING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 585,
-                                                                                                     '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( {
-                                                                                                     'subrule' => 'unsigned_constant',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 586
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => 'PRECEDING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/PRECEDING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 586,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 586
-                                                                             }, 'Parse::RecDescent::Production' ),
-                                                                      bless( {
-                                                                               'number' => '2',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'subrule' => 'unsigned_constant',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 587
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => 'FOLLOWING',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/FOLLOWING/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 587,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 587
-                                                                             }, 'Parse::RecDescent::Production' ),
-                                                                      bless( {
-                                                                               'number' => '3',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 1,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'CURRENT\\s+ROW',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/CURRENT\\\\s+ROW/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 588,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                          ],
-                                                                               'line' => 588
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'group_bound2',
-                                                         'vars' => '',
-                                                         'line' => 585
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              'searched_when_clause' => bless( {
-                                                                 'impcount' => 1,
-                                                                 'calls' => [
-                                                                              '_alternation_1_of_production_1_of_rule_searched_when_clause'
-                                                                            ],
-                                                                 'changed' => 0,
-                                                                 'opcount' => 0,
-                                                                 'prods' => [
-                                                                              bless( {
-                                                                                       'number' => '0',
-                                                                                       'strcount' => 0,
-                                                                                       'dircount' => 0,
-                                                                                       'uncommit' => undef,
-                                                                                       'error' => undef,
-                                                                                       'patcount' => 0,
-                                                                                       'actcount' => 0,
-                                                                                       'items' => [
-                                                                                                    bless( {
-                                                                                                             'subrule' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
-                                                                                                             'expected' => '/WHEN/i',
-                                                                                                             'min' => 1,
-                                                                                                             'argcode' => undef,
-                                                                                                             'max' => 100000000,
-                                                                                                             'matchrule' => 0,
-                                                                                                             'repspec' => 's',
-                                                                                                             'lookahead' => 0,
-                                                                                                             'line' => 507
-                                                                                                           }, 'Parse::RecDescent::Repetition' )
-                                                                                                  ],
-                                                                                       'line' => undef
-                                                                                     }, 'Parse::RecDescent::Production' )
-                                                                            ],
-                                                                 'name' => 'searched_when_clause',
-                                                                 'vars' => '',
-                                                                 'line' => 503
-                                                               }, 'Parse::RecDescent::Rule' ),
-                              'basic_p' => bless( {
-                                                    'impcount' => 0,
-                                                    'calls' => [
-                                                                 'expression'
-                                                               ],
-                                                    'changed' => 0,
-                                                    'opcount' => 0,
-                                                    'prods' => [
-                                                                 bless( {
-                                                                          'number' => '0',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 1,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'subrule' => 'expression',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 624
-                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                       bless( {
-                                                                                                'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
-                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
-                                                                                                'lookahead' => 0,
-                                                                                                'rdelim' => '/',
-                                                                                                'line' => 624,
-                                                                                                'mod' => '',
-                                                                                                'ldelim' => '/'
-                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                       bless( {
-                                                                                                'subrule' => 'expression',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 624
-                                                                                              }, 'Parse::RecDescent::Subrule' )
-                                                                                     ],
-                                                                          'line' => undef
-                                                                        }, 'Parse::RecDescent::Production' )
-                                                               ],
-                                                    'name' => 'basic_p',
-                                                    'vars' => '',
-                                                    'line' => 624
-                                                  }, 'Parse::RecDescent::Rule' ),
-                              'asc_option' => bless( {
-                                                       'impcount' => 1,
-                                                       'calls' => [
-                                                                    '_alternation_1_of_production_1_of_rule_asc_option'
-                                                                  ],
-                                                       'changed' => 0,
-                                                       'opcount' => 0,
-                                                       'prods' => [
-                                                                    bless( {
-                                                                             'number' => '0',
-                                                                             'strcount' => 0,
-                                                                             'dircount' => 0,
-                                                                             'uncommit' => undef,
-                                                                             'error' => undef,
-                                                                             'patcount' => 1,
-                                                                             'actcount' => 0,
-                                                                             'items' => [
-                                                                                          bless( {
-                                                                                                   'pattern' => 'ASC',
-                                                                                                   'hashname' => '__PATTERN1__',
-                                                                                                   'description' => '/ASC/i',
-                                                                                                   'lookahead' => 0,
-                                                                                                   'rdelim' => '/',
-                                                                                                   'line' => 562,
-                                                                                                   'mod' => 'i',
-                                                                                                   'ldelim' => '/'
-                                                                                                 }, 'Parse::RecDescent::Token' ),
-                                                                                          bless( {
-                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule_asc_option',
-                                                                                                   'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
-                                                                                                   'min' => 0,
-                                                                                                   'argcode' => undef,
-                                                                                                   'max' => 1,
-                                                                                                   'matchrule' => 0,
-                                                                                                   'repspec' => '?',
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 562
-                                                                                                 }, 'Parse::RecDescent::Repetition' )
-                                                                                        ],
-                                                                             'line' => undef
-                                                                           }, 'Parse::RecDescent::Production' )
-                                                                  ],
-                                                       'name' => 'asc_option',
-                                                       'vars' => '',
-                                                       'line' => 562
-                                                     }, 'Parse::RecDescent::Rule' ),
-                              'search_condition' => bless( {
-                                                             'impcount' => 1,
-                                                             'calls' => [
-                                                                          '_alternation_1_of_production_2_of_rule_search_condition',
-                                                                          'cond'
-                                                                        ],
-                                                             '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' => 297,
-                                                                                                         'mod' => '',
-                                                                                                         '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' => 'NOT|',
-                                                                                                         'hashname' => '__PATTERN1__',
-                                                                                                         'description' => '/NOT|/i',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'rdelim' => '/',
-                                                                                                         'line' => 618,
-                                                                                                         'mod' => 'i',
-                                                                                                         'ldelim' => '/'
-                                                                                                       }, 'Parse::RecDescent::Token' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => '_alternation_1_of_production_2_of_rule_search_condition',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => 'predicate, or \'(\'',
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 618
-                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => 'cond',
-                                                                                                         'expected' => undef,
-                                                                                                         'min' => 0,
-                                                                                                         'argcode' => undef,
-                                                                                                         'max' => 100000000,
-                                                                                                         'matchrule' => 0,
-                                                                                                         'repspec' => 's?',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 618
-                                                                                                       }, 'Parse::RecDescent::Repetition' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'search_condition',
-                                                             'vars' => '',
-                                                             'line' => 296
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_operator' => 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' => 'CONCAT',
-                                                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                                                        'description' => '/CONCAT/i',
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'rdelim' => '/',
-                                                                                                                                        'line' => 628,
-                                                                                                                                        'mod' => 'i',
-                                                                                                                                        'ldelim' => '/'
-                                                                                                                                      }, 'Parse::RecDescent::Token' )
-                                                                                                                             ],
-                                                                                                                  'line' => undef
-                                                                                                                }, 'Parse::RecDescent::Production' ),
-                                                                                                         bless( {
-                                                                                                                  'number' => '1',
-                                                                                                                  'strcount' => 1,
-                                                                                                                  'dircount' => 0,
-                                                                                                                  'uncommit' => undef,
-                                                                                                                  'error' => undef,
-                                                                                                                  'patcount' => 0,
-                                                                                                                  'actcount' => 0,
-                                                                                                                  'items' => [
-                                                                                                                               bless( {
-                                                                                                                                        'pattern' => '||',
-                                                                                                                                        'hashname' => '__STRING1__',
-                                                                                                                                        'description' => '\'||\'',
-                                                                                                                                        'lookahead' => 0,
-                                                                                                                                        'line' => 628
-                                                                                                                                      }, 'Parse::RecDescent::Literal' )
-                                                                                                                             ],
-                                                                                                                  'line' => 628
-                                                                                                                }, 'Parse::RecDescent::Production' )
-                                                                                                       ],
-                                                                                            'name' => '_alternation_1_of_production_1_of_rule_operator',
-                                                                                            'vars' => '',
-                                                                                            'line' => 628
-                                                                                          }, 'Parse::RecDescent::Rule' ),
-                              'simple_when_clause' => bless( {
-                                                               'impcount' => 1,
-                                                               'calls' => [
-                                                                            'expression',
-                                                                            '_alternation_1_of_production_1_of_rule_simple_when_clause'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 0,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 0,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'expression',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 509
-                                                                                                         }, 'Parse::RecDescent::Subrule' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
-                                                                                                           'expected' => '/WHEN/i',
-                                                                                                           'min' => 1,
-                                                                                                           'argcode' => undef,
-                                                                                                           'max' => 100000000,
-                                                                                                           'matchrule' => 0,
-                                                                                                           'repspec' => 's',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 513
-                                                                                                         }, 'Parse::RecDescent::Repetition' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'simple_when_clause',
-                                                               'vars' => '',
-                                                               'line' => 509
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              'INNER' => 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' => 'inner',
-                                                                                              'hashname' => '__PATTERN1__',
-                                                                                              'description' => '/inner/i',
-                                                                                              'lookahead' => 0,
-                                                                                              'rdelim' => '/',
-                                                                                              'line' => 107,
-                                                                                              'mod' => 'i',
-                                                                                              'ldelim' => '/'
-                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'INNER',
-                                                  'vars' => '',
-                                                  'line' => 107
-                                                }, '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' => 20,
-                                                                                               'mod' => '',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'eofile',
-                                                   'vars' => '',
-                                                   'line' => 20
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              'cond' => bless( {
-                                                 'impcount' => 2,
-                                                 'calls' => [
-                                                              '_alternation_1_of_production_1_of_rule_cond',
-                                                              '_alternation_2_of_production_1_of_rule_cond'
-                                                            ],
-                                                 'changed' => 0,
-                                                 'opcount' => 0,
-                                                 'prods' => [
-                                                              bless( {
-                                                                       'number' => '0',
-                                                                       'strcount' => 0,
-                                                                       'dircount' => 0,
-                                                                       'uncommit' => undef,
-                                                                       'error' => undef,
-                                                                       'patcount' => 1,
-                                                                       'actcount' => 0,
-                                                                       'items' => [
-                                                                                    bless( {
-                                                                                             'subrule' => '_alternation_1_of_production_1_of_rule_cond',
-                                                                                             'matchrule' => 0,
-                                                                                             'implicit' => '/AND/i, or /OR/i',
-                                                                                             'argcode' => undef,
-                                                                                             'lookahead' => 0,
-                                                                                             'line' => 620
-                                                                                           }, 'Parse::RecDescent::Subrule' ),
-                                                                                    bless( {
-                                                                                             'pattern' => 'NOT|',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/NOT|/i',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 620,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' ),
-                                                                                    bless( {
-                                                                                             'subrule' => '_alternation_2_of_production_1_of_rule_cond',
-                                                                                             'matchrule' => 0,
-                                                                                             'implicit' => 'predicate, or \'(\'',
-                                                                                             'argcode' => undef,
-                                                                                             'lookahead' => 0,
-                                                                                             'line' => 620
-                                                                                           }, 'Parse::RecDescent::Subrule' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'cond',
-                                                 'vars' => '',
-                                                 'line' => 620
-                                               }, 'Parse::RecDescent::Rule' ),
-                              'ld_type' => bless( {
-                                                    'impcount' => 0,
-                                                    'calls' => [
-                                                                 'function',
-                                                                 'expression',
-                                                                 'constant',
-                                                                 'column_name',
-                                                                 'host_variable'
-                                                               ],
-                                                    'changed' => 0,
-                                                    'opcount' => 0,
-                                                    'prods' => [
-                                                                 bless( {
-                                                                          'number' => '0',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 0,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'subrule' => 'function',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 482
-                                                                                              }, 'Parse::RecDescent::Subrule' )
-                                                                                     ],
-                                                                          'line' => undef
-                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                 bless( {
-                                                                          'number' => '1',
-                                                                          'strcount' => 2,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 0,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'pattern' => '(',
-                                                                                                'hashname' => '__STRING1__',
-                                                                                                'description' => '\'(\'',
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 483
-                                                                                              }, 'Parse::RecDescent::Literal' ),
-                                                                                       bless( {
-                                                                                                'subrule' => 'expression',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 483
-                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                       bless( {
-                                                                                                'pattern' => ')',
-                                                                                                'hashname' => '__STRING2__',
-                                                                                                'description' => '\')\'',
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 483
-                                                                                              }, 'Parse::RecDescent::Literal' )
-                                                                                     ],
-                                                                          'line' => 483
-                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                 bless( {
-                                                                          'number' => '2',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 0,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'subrule' => 'constant',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 484
-                                                                                              }, 'Parse::RecDescent::Subrule' )
-                                                                                     ],
-                                                                          'line' => 484
-                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                 bless( {
-                                                                          'number' => '3',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 0,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'subrule' => 'column_name',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 485
-                                                                                              }, 'Parse::RecDescent::Subrule' )
-                                                                                     ],
-                                                                          'line' => 485
-                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                 bless( {
-                                                                          'number' => '4',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 0,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'subrule' => 'host_variable',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => undef,
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 486
-                                                                                              }, 'Parse::RecDescent::Subrule' )
-                                                                                     ],
-                                                                          'line' => 486
-                                                                        }, 'Parse::RecDescent::Production' )
-                                                               ],
-                                                    'name' => 'ld_type',
-                                                    'vars' => '',
-                                                    'line' => 482
-                                                  }, 'Parse::RecDescent::Rule' ),
-                              'RIGHT' => 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' => 'right',
-                                                                                              'hashname' => '__PATTERN1__',
-                                                                                              'description' => '/right/i',
-                                                                                              'lookahead' => 0,
-                                                                                              'rdelim' => '/',
-                                                                                              'line' => 111,
-                                                                                              'mod' => 'i',
-                                                                                              'ldelim' => '/'
-                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'RIGHT',
-                                                  'vars' => '',
-                                                  'line' => 111
-                                                }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_method_invocation' => bless( {
-                                                                                                     'impcount' => 0,
-                                                                                                     'calls' => [
-                                                                                                                  'expression'
-                                                                                                                ],
-                                                                                                     'changed' => 0,
-                                                                                                     'opcount' => 0,
-                                                                                                     'prods' => [
-                                                                                                                  bless( {
-                                                                                                                           'number' => '0',
-                                                                                                                           'strcount' => 2,
-                                                                                                                           'dircount' => 0,
-                                                                                                                           'uncommit' => undef,
-                                                                                                                           'error' => undef,
-                                                                                                                           'patcount' => 0,
-                                                                                                                           'actcount' => 0,
-                                                                                                                           'items' => [
-                                                                                                                                        bless( {
-                                                                                                                                                 'pattern' => '(',
-                                                                                                                                                 'hashname' => '__STRING1__',
-                                                                                                                                                 'description' => '\'(\'',
-                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                 'line' => 626
-                                                                                                                                               }, 'Parse::RecDescent::Literal' ),
-                                                                                                                                        bless( {
-                                                                                                                                                 'subrule' => 'expression',
-                                                                                                                                                 'expected' => undef,
-                                                                                                                                                 'min' => 1,
-                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                 'max' => 100000000,
-                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                 'repspec' => 's',
-                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                 'line' => 626
-                                                                                                                                               }, 'Parse::RecDescent::Repetition' ),
-                                                                                                                                        bless( {
-                                                                                                                                                 'pattern' => ')',
-                                                                                                                                                 'hashname' => '__STRING2__',
-                                                                                                                                                 'description' => '\')\'',
-                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                 'line' => 626
-                                                                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                                                                      ],
-                                                                                                                           'line' => undef
-                                                                                                                         }, 'Parse::RecDescent::Production' )
-                                                                                                                ],
-                                                                                                     'name' => '_alternation_1_of_production_1_of_rule_method_invocation',
-                                                                                                     'vars' => '',
-                                                                                                     'line' => 626
-                                                                                                   }, 'Parse::RecDescent::Rule' ),
-                              'LEFT' => 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' => 'left',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/left/i',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 109,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'LEFT',
-                                                 'vars' => '',
-                                                 'line' => 109
-                                               }, 'Parse::RecDescent::Rule' ),
-                              'table_name' => bless( {
-                                                       'impcount' => 0,
-                                                       'calls' => [
-                                                                    'SCHEMA',
-                                                                    'NAME'
-                                                                  ],
-                                                       'changed' => 0,
-                                                       'opcount' => 0,
-                                                       'prods' => [
-                                                                    bless( {
-                                                                             'number' => '0',
-                                                                             'strcount' => 1,
-                                                                             'dircount' => 0,
-                                                                             'uncommit' => undef,
-                                                                             'error' => undef,
-                                                                             'patcount' => 0,
-                                                                             'actcount' => 1,
-                                                                             'items' => [
-                                                                                          bless( {
-                                                                                                   'subrule' => 'SCHEMA',
-                                                                                                   'matchrule' => 0,
-                                                                                                   'implicit' => undef,
-                                                                                                   'argcode' => undef,
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 124
-                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                          bless( {
-                                                                                                   'pattern' => '.',
-                                                                                                   'hashname' => '__STRING1__',
-                                                                                                   'description' => '\'.\'',
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 124
-                                                                                                 }, 'Parse::RecDescent::Literal' ),
-                                                                                          bless( {
-                                                                                                   'subrule' => 'NAME',
-                                                                                                   'matchrule' => 0,
-                                                                                                   'implicit' => undef,
-                                                                                                   'argcode' => undef,
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 124
-                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                          bless( {
-                                                                                                   'hashname' => '__ACTION1__',
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 125,
-                                                                                                   'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
-                                                                                                 }, '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' => 'NAME',
-                                                                                                   'matchrule' => 0,
-                                                                                                   'implicit' => undef,
-                                                                                                   'argcode' => undef,
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 126
-                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                          bless( {
-                                                                                                   'hashname' => '__ACTION1__',
-                                                                                                   'lookahead' => 0,
-                                                                                                   'line' => 127,
-                                                                                                   'code' => '{ $return = { name => $item[1] } }'
-                                                                                                 }, 'Parse::RecDescent::Action' )
-                                                                                        ],
-                                                                             'line' => 126
-                                                                           }, 'Parse::RecDescent::Production' )
-                                                                  ],
-                                                       'name' => 'table_name',
-                                                       'vars' => '',
-                                                       'line' => 124
-                                                     }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_53_of_rule_sysfun' => 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' => 'TRUNCATE',
-                                                                                                                                       'hashname' => '__PATTERN1__',
-                                                                                                                                       'description' => '/TRUNCATE/i',
-                                                                                                                                       'lookahead' => 0,
-                                                                                                                                       'rdelim' => '/',
-                                                                                                                                       'line' => 628,
-                                                                                                                                       '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' => 'TRUNC',
-                                                                                                                                       'hashname' => '__PATTERN1__',
-                                                                                                                                       'description' => '/TRUNC/i',
-                                                                                                                                       'lookahead' => 0,
-                                                                                                                                       'rdelim' => '/',
-                                                                                                                                       'line' => 628,
-                                                                                                                                       'mod' => 'i',
-                                                                                                                                       'ldelim' => '/'
-                                                                                                                                     }, 'Parse::RecDescent::Token' )
-                                                                                                                            ],
-                                                                                                                 'line' => 628
-                                                                                                               }, 'Parse::RecDescent::Production' )
-                                                                                                      ],
-                                                                                           'name' => '_alternation_1_of_production_53_of_rule_sysfun',
-                                                                                           'vars' => '',
-                                                                                           'line' => 628
-                                                                                         }, 'Parse::RecDescent::Rule' ),
-                              'options' => bless( {
-                                                    'impcount' => 1,
-                                                    'calls' => [
-                                                                 '_alternation_1_of_production_1_of_rule_options'
-                                                               ],
-                                                    'changed' => 0,
-                                                    'opcount' => 0,
-                                                    'prods' => [
-                                                                 bless( {
-                                                                          'number' => '0',
-                                                                          'strcount' => 0,
-                                                                          'dircount' => 0,
-                                                                          'uncommit' => undef,
-                                                                          'error' => undef,
-                                                                          'patcount' => 2,
-                                                                          'actcount' => 0,
-                                                                          'items' => [
-                                                                                       bless( {
-                                                                                                'pattern' => 'WITH',
-                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                'description' => '/WITH/i',
-                                                                                                'lookahead' => 0,
-                                                                                                'rdelim' => '/',
-                                                                                                'line' => 150,
-                                                                                                'mod' => 'i',
-                                                                                                'ldelim' => '/'
-                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                       bless( {
-                                                                                                'subrule' => '_alternation_1_of_production_1_of_rule_options',
-                                                                                                'matchrule' => 0,
-                                                                                                'implicit' => '/CASCADED/i, or /LOCAL/i',
-                                                                                                'argcode' => undef,
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 150
-                                                                                              }, 'Parse::RecDescent::Subrule' ),
-                                                                                       bless( {
-                                                                                                'pattern' => 'CHECK\\s+OPTION',
-                                                                                                'hashname' => '__PATTERN2__',
-                                                                                                'description' => '/CHECK\\\\s+OPTION/i',
-                                                                                                'lookahead' => 0,
-                                                                                                'rdelim' => '/',
-                                                                                                'line' => 150,
-                                                                                                'mod' => 'i',
-                                                                                                'ldelim' => '/'
-                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                     ],
-                                                                          'line' => undef
-                                                                        }, 'Parse::RecDescent::Production' )
-                                                               ],
-                                                    'name' => 'options',
-                                                    'vars' => '',
-                                                    'line' => 150
-                                                  }, 'Parse::RecDescent::Rule' ),
-                              'function' => bless( {
-                                                     'impcount' => 1,
-                                                     'calls' => [
-                                                                  '_alternation_1_of_production_1_of_rule_function',
-                                                                  'func_args'
-                                                                ],
-                                                     'changed' => 0,
-                                                     'opcount' => 0,
-                                                     'prods' => [
-                                                                  bless( {
-                                                                           'number' => '0',
-                                                                           'strcount' => 2,
-                                                                           'dircount' => 1,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 1,
-                                                                           'actcount' => 0,
-                                                                           'op' => [],
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule_function',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => '/SYSIBM\\\\.|/i, or /SYSFUN\\\\.|/i, or userdefined_function',
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 326
-                                                                                               }, 'Parse::RecDescent::Subrule' ),
-                                                                                        bless( {
-                                                                                                 'pattern' => '(',
-                                                                                                 'hashname' => '__STRING1__',
-                                                                                                 'description' => '\'(\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 326
-                                                                                               }, 'Parse::RecDescent::Literal' ),
-                                                                                        bless( {
-                                                                                                 'expected' => '<leftop: func_args /,/ func_args>',
-                                                                                                 'min' => 1,
-                                                                                                 'name' => '\'func_args(s)\'',
-                                                                                                 'max' => 100000000,
-                                                                                                 'leftarg' => bless( {
-                                                                                                                       'subrule' => 'func_args',
-                                                                                                                       'matchrule' => 0,
-                                                                                                                       'implicit' => undef,
-                                                                                                                       'argcode' => undef,
-                                                                                                                       'lookahead' => 0,
-                                                                                                                       'line' => 326
-                                                                                                                     }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 'rightarg' => bless( {
-                                                                                                                        'subrule' => 'func_args',
-                                                                                                                        'matchrule' => 0,
-                                                                                                                        'implicit' => undef,
-                                                                                                                        'argcode' => undef,
-                                                                                                                        'lookahead' => 0,
-                                                                                                                        'line' => 326
-                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 'hashname' => '__DIRECTIVE1__',
-                                                                                                 'type' => 'leftop',
-                                                                                                 'op' => bless( {
-                                                                                                                  'pattern' => ',',
-                                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                                  'description' => '/,/',
-                                                                                                                  'lookahead' => 0,
-                                                                                                                  'rdelim' => '/',
-                                                                                                                  'line' => 326,
-                                                                                                                  'mod' => '',
-                                                                                                                  'ldelim' => '/'
-                                                                                                                }, 'Parse::RecDescent::Token' )
-                                                                                               }, 'Parse::RecDescent::Operator' ),
-                                                                                        bless( {
-                                                                                                 'pattern' => ')',
-                                                                                                 'hashname' => '__STRING2__',
-                                                                                                 'description' => '\')\'',
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 326
-                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                      ],
-                                                                           'line' => undef
-                                                                         }, 'Parse::RecDescent::Production' )
-                                                                ],
-                                                     'name' => 'function',
-                                                     'vars' => '',
-                                                     'line' => 323
-                                                   }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_41_of_rule_sysibm_function' => 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' => 'INTEGER',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/INTEGER/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'INT',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/INT/',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => '',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_41_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_case_expression' => bless( {
-                                                                                                   'impcount' => 0,
-                                                                                                   'calls' => [
-                                                                                                                'searched_when_clause',
-                                                                                                                'simple_when_clause'
-                                                                                                              ],
-                                                                                                   'changed' => 0,
-                                                                                                   'opcount' => 0,
-                                                                                                   'prods' => [
-                                                                                                                bless( {
-                                                                                                                         'number' => '0',
-                                                                                                                         'strcount' => 0,
-                                                                                                                         'dircount' => 0,
-                                                                                                                         'uncommit' => undef,
-                                                                                                                         'error' => undef,
-                                                                                                                         'patcount' => 0,
-                                                                                                                         'actcount' => 0,
-                                                                                                                         'items' => [
-                                                                                                                                      bless( {
-                                                                                                                                               'subrule' => 'searched_when_clause',
-                                                                                                                                               'matchrule' => 0,
-                                                                                                                                               'implicit' => undef,
-                                                                                                                                               'argcode' => undef,
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'line' => 626
-                                                                                                                                             }, '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' => 'simple_when_clause',
-                                                                                                                                               'matchrule' => 0,
-                                                                                                                                               'implicit' => undef,
-                                                                                                                                               'argcode' => undef,
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'line' => 627
-                                                                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                    ],
-                                                                                                                         'line' => 627
-                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                              ],
-                                                                                                   'name' => '_alternation_1_of_production_1_of_rule_case_expression',
-                                                                                                   'vars' => '',
-                                                                                                   'line' => 626
-                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
-                                                                                                       'impcount' => 1,
-                                                                                                       'calls' => [
-                                                                                                                    'sort_key_expression',
-                                                                                                                    '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause'
-                                                                                                                  ],
-                                                                                                       'changed' => 0,
-                                                                                                       'opcount' => 0,
-                                                                                                       'prods' => [
-                                                                                                                    bless( {
-                                                                                                                             'number' => '0',
-                                                                                                                             'strcount' => 0,
-                                                                                                                             'dircount' => 0,
-                                                                                                                             'uncommit' => undef,
-                                                                                                                             'error' => undef,
-                                                                                                                             'patcount' => 0,
-                                                                                                                             'actcount' => 0,
-                                                                                                                             'items' => [
-                                                                                                                                          bless( {
-                                                                                                                                                   'subrule' => 'sort_key_expression',
-                                                                                                                                                   'matchrule' => 0,
-                                                                                                                                                   'implicit' => undef,
-                                                                                                                                                   'argcode' => undef,
-                                                                                                                                                   'lookahead' => 0,
-                                                                                                                                                   'line' => 624
-                                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                          bless( {
-                                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
-                                                                                                                                                   'expected' => 'asc_option, or desc_option',
-                                                                                                                                                   'min' => 0,
-                                                                                                                                                   'argcode' => undef,
-                                                                                                                                                   'max' => 1,
-                                                                                                                                                   'matchrule' => 0,
-                                                                                                                                                   'repspec' => '?',
-                                                                                                                                                   'lookahead' => 0,
-                                                                                                                                                   'line' => 627
-                                                                                                                                                 }, 'Parse::RecDescent::Repetition' )
-                                                                                                                                        ],
-                                                                                                                             'line' => undef
-                                                                                                                           }, 'Parse::RecDescent::Production' )
-                                                                                                                  ],
-                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_window_order_clause',
-                                                                                                       'vars' => '',
-                                                                                                       'line' => 624
-                                                                                                     }, 'Parse::RecDescent::Rule' ),
-                              'create' => bless( {
-                                                   'impcount' => 0,
-                                                   'calls' => [
-                                                                'CREATE',
-                                                                'TRIGGER',
-                                                                'trigger_name',
-                                                                'before',
-                                                                'type',
-                                                                'table_name',
-                                                                'reference_b',
-                                                                'triggered_action',
-                                                                'after',
-                                                                'reference_a',
-                                                                'VIEW',
-                                                                'view_name',
-                                                                'column_list',
-                                                                'with_expression',
-                                                                'SQL_procedure_statement'
-                                                              ],
-                                                   'changed' => 0,
-                                                   'opcount' => 0,
-                                                   'prods' => [
-                                                                bless( {
-                                                                         'number' => '0',
-                                                                         'strcount' => 1,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 2,
-                                                                         'actcount' => 1,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => 'CREATE',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'TRIGGER',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'trigger_name',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'before',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'type',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'ON',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ON/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 36,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'table_name',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'reference_b',
-                                                                                               'expected' => undef,
-                                                                                               'min' => 0,
-                                                                                               'argcode' => undef,
-                                                                                               'max' => 1,
-                                                                                               'matchrule' => 0,
-                                                                                               'repspec' => '?',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Repetition' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'FOR EACH ROW',
-                                                                                               'hashname' => '__PATTERN2__',
-                                                                                               'description' => '/FOR EACH ROW/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 36,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'MODE DB2SQL',
-                                                                                               'hashname' => '__STRING1__',
-                                                                                               'description' => '\'MODE DB2SQL\'',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Literal' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'triggered_action',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 36
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'hashname' => '__ACTION1__',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 37,
-                                                                                               'code' => '{
-    my $table_name = $item{\'table_name\'}{\'name\'};
-    $return =  {
-        table      => $table_name,
-        schema     => $item{\'trigger_name\'}{\'schema\'},
-        name       => $item{\'trigger_name\'}{\'name\'},
-        when       => \'before\',
-        db_event   => $item{\'type\'}->{\'event\'},
-        fields     => $item{\'type\'}{\'fields\'},
-        condition  => $item{\'triggered_action\'}{\'condition\'},
-        reference  => $item{\'reference_b\'},
-        granularity => $item[9],
-        action     => $item{\'triggered_action\'}{\'statement\'}
-    };
-
-    push @triggers, $return;
-}'
-                                                                                             }, 'Parse::RecDescent::Action' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '1',
-                                                                         'strcount' => 1,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 2,
-                                                                         'actcount' => 1,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => 'CREATE',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'TRIGGER',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'trigger_name',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'after',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'type',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'ON',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ON/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 55,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'table_name',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'reference_a',
-                                                                                               'expected' => undef,
-                                                                                               'min' => 0,
-                                                                                               'argcode' => undef,
-                                                                                               'max' => 1,
-                                                                                               'matchrule' => 0,
-                                                                                               'repspec' => '?',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Repetition' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'FOR EACH ROW|FOR EACH STATEMENT',
-                                                                                               'hashname' => '__PATTERN2__',
-                                                                                               'description' => '/FOR EACH ROW|FOR EACH STATEMENT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 55,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'MODE DB2SQL',
-                                                                                               'hashname' => '__STRING1__',
-                                                                                               'description' => '\'MODE DB2SQL\'',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Literal' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'triggered_action',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 55
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'hashname' => '__ACTION1__',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 56,
-                                                                                               'code' => '{
-    my $table_name = $item{\'table_name\'}{\'name\'};
-    $return = {
-        table      => $table_name,
-        schema     => $item{\'trigger_name\'}{\'schema\'},
-        name       => $item{\'trigger_name\'}{\'name\'},
-        when       => \'after\',
-        db_event   => $item{\'type\'}{\'event\'},
-        fields     => $item{\'type\'}{\'fields\'},
-        condition  => $item{\'triggered_action\'}{\'condition\'},
-        reference  => $item{\'reference_a\'},
-        granularity => $item[9],
-        action     => $item{\'triggered_action\'}{\'statement\'}
-    };
-
-    push @triggers, $return;
-}'
-                                                                                             }, 'Parse::RecDescent::Action' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '2',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 2,
-                                                                         'actcount' => 1,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => 'CREATE',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'FEDERATED|',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/FEDERATED|/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 74,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'VIEW',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'view_name',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'column_list',
-                                                                                               'expected' => undef,
-                                                                                               'min' => 0,
-                                                                                               'argcode' => undef,
-                                                                                               'max' => 1,
-                                                                                               'matchrule' => 0,
-                                                                                               'repspec' => '?',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Repetition' ),
-                                                                                      bless( {
-                                                                                               'pattern' => 'AS',
-                                                                                               'hashname' => '__PATTERN2__',
-                                                                                               'description' => '/AS/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 74,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'with_expression',
-                                                                                               'expected' => undef,
-                                                                                               'min' => 0,
-                                                                                               'argcode' => undef,
-                                                                                               'max' => 1,
-                                                                                               'matchrule' => 0,
-                                                                                               'repspec' => '?',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Repetition' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'SQL_procedure_statement',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 74
-                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                      bless( {
-                                                                                               'hashname' => '__ACTION1__',
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 75,
-                                                                                               'code' => '{
-    $return = {
-        name   => $item{view_name}{name},
-        sql    => $item{SQL_procedure_statement},
-        with   => $item{\'with_expression(?)\'},
-        fields => $item{\'column_list(?)\'}
-    };
-    push @views, $return;
-}'
-                                                                                             }, 'Parse::RecDescent::Action' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'create',
-                                                   'vars' => '',
-                                                   'line' => 36
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              'sysfun' => bless( {
-                                                   'impcount' => 0,
-                                                   'calls' => [
-                                                                '_alternation_1_of_production_1_of_rule_sysfun',
-                                                                '_alternation_1_of_production_7_of_rule_sysfun',
-                                                                'I',
-                                                                '_alternation_1_of_production_53_of_rule_sysfun'
-                                                              ],
-                                                   'changed' => 0,
-                                                   'opcount' => 0,
-                                                   'prods' => [
-                                                                bless( {
-                                                                         'number' => '0',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 0,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => '_alternation_1_of_production_1_of_rule_sysfun',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => '/ABS/i, or /ABSVAL/i',
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 421
-                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '1',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ACOS',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ACOS/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 422,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 422
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '2',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ASCII',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ASCII/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 423,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 423
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '3',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ASIN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ASIN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 424,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 424
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '4',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ATAN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ATAN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 425,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 425
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '5',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ATAN2',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ATAN2/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 426,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 426
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '6',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 0,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => '_alternation_1_of_production_7_of_rule_sysfun',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => '/CEIL/i, or /CEILING/i',
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 427
-                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                    ],
-                                                                         'line' => 427
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '7',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'CHAR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/CHAR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 428,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 428
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '8',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'CHR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/CHR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 429,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 429
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '9',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'COS',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/COS/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 430,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 430
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '10',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'COT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/COT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 431,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 431
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '11',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DAYNAME',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DAYNAME/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 432,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 432
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '12',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DAYOFWEEK',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DAYOFWEEK/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 433,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 433
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '13',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DAYOFWEEK_ISO',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DAYOFWEEK_ISO/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 434,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 434
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '14',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DAYOFYEAR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DAYOFYEAR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 435,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 435
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '15',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DEGREES',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DEGREES/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 436,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 436
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '16',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DIFFERENCE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DIFFERENCE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 437,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 437
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '17',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'DOUBLE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/DOUBLE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 438,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 438
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '18',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'EXP',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/EXP/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 439,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 439
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '19',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'FLOOR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/FLOOR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 440,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 440
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '20',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'GET_ROUTINE_SAR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/GET_ROUTINE_SAR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 441,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 441
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '21',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'INSERT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/INSERT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 442,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 442
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '22',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'JULIAN_DAY',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/JULIAN_DAY/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 443,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 443
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '23',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LCASE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LCASE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 444,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 444
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '24',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LEFT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LEFT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 445,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 445
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '25',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 446,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 446
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '26',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LOCATE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LOCATE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 447,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 447
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '27',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LOG',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LOG/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 448,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 448
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '28',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LOG10',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LOG10/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 449,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 449
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '29',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'LTRIM',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/LTRIM/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 450,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 450
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '30',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'MIDNIGHT_SECONDS',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/MIDNIGHT_SECONDS/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 451,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 451
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '31',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'MOD',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/MOD/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 452,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 452
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '32',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'MONTHNAME',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/MONTHNAME/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 453,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 453
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '33',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'POWER',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/POWER/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 454,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 454
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '34',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'PUT_ROUTINE_SAR',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/PUT_ROUTINE_SAR/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 455,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 455
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '35',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'QUARTER',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/QUARTER/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 456,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 456
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '36',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'RADIANS',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/RADIANS/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 457,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 457
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '37',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'RAND',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/RAND/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 458,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 458
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '38',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'REPEAT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/REPEAT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 459,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 459
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '39',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'REPLACE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/REPLACE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 460,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 460
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '40',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'RIGHT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/RIGHT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 461,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 461
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '41',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'ROUND',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/ROUND/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 462,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 462
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '42',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'RTRIM',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/RTRIM/',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 463,
-                                                                                               'mod' => '',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' ),
-                                                                                      bless( {
-                                                                                               'subrule' => 'I',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => undef,
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 463
-                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                    ],
-                                                                         'line' => 463
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '43',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SIGN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SIGN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 464,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 464
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '44',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SIN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SIN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 465,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 465
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '45',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SOUNDEX',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SOUNDEX/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 466,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 466
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '46',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SPACE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SPACE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 467,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 467
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '47',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SQLCACHE_SNAPSHOT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SQLCACHE_SNAPSHOT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 468,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 468
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '48',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'SQRT',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/SQRT/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 469,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 469
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '49',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'TAN',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/TAN/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 470,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 470
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '50',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'TIMESTAMP_ISO',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/TIMESTAMP_ISO/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 471,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 471
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '51',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'TIMESTAMPDIFF',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/TIMESTAMPDIFF/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 472,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 472
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '52',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 0,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'subrule' => '_alternation_1_of_production_53_of_rule_sysfun',
-                                                                                               'matchrule' => 0,
-                                                                                               'implicit' => '/TRUNCATE/i, or /TRUNC/i',
-                                                                                               'argcode' => undef,
-                                                                                               'lookahead' => 0,
-                                                                                               'line' => 473
-                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                    ],
-                                                                         'line' => 473
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '53',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'UCASE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/UCASE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 474,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 474
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '54',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'WEEK',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/WEEK/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 475,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 475
-                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                bless( {
-                                                                         'number' => '55',
-                                                                         'strcount' => 0,
-                                                                         'dircount' => 0,
-                                                                         'uncommit' => undef,
-                                                                         'error' => undef,
-                                                                         'patcount' => 1,
-                                                                         'actcount' => 0,
-                                                                         'items' => [
-                                                                                      bless( {
-                                                                                               'pattern' => 'WEEK_ISO',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/WEEK_ISO/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 476,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => 476
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'sysfun',
-                                                   'vars' => '',
-                                                   'line' => 421
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond' => bless( {
-                                                                                                                               'impcount' => 0,
-                                                                                                                               'calls' => [
-                                                                                                                                            'numeric_constant'
-                                                                                                                                          ],
-                                                                                                                               'changed' => 0,
-                                                                                                                               'opcount' => 0,
-                                                                                                                               'prods' => [
-                                                                                                                                            bless( {
-                                                                                                                                                     'number' => '0',
-                                                                                                                                                     'strcount' => 0,
-                                                                                                                                                     'dircount' => 0,
-                                                                                                                                                     'uncommit' => undef,
-                                                                                                                                                     'error' => undef,
-                                                                                                                                                     'patcount' => 1,
-                                                                                                                                                     'actcount' => 0,
-                                                                                                                                                     'items' => [
-                                                                                                                                                                  bless( {
-                                                                                                                                                                           'pattern' => 'SELECTIVITY',
-                                                                                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                                                                                           'description' => '/SELECTIVITY/i',
-                                                                                                                                                                           'lookahead' => 0,
-                                                                                                                                                                           'rdelim' => '/',
-                                                                                                                                                                           'line' => 628,
-                                                                                                                                                                           'mod' => 'i',
-                                                                                                                                                                           'ldelim' => '/'
-                                                                                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                                                                                  bless( {
-                                                                                                                                                                           'subrule' => 'numeric_constant',
-                                                                                                                                                                           'matchrule' => 0,
-                                                                                                                                                                           'implicit' => undef,
-                                                                                                                                                                           'argcode' => undef,
-                                                                                                                                                                           'lookahead' => 0,
-                                                                                                                                                                           'line' => 628
-                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                ],
-                                                                                                                                                     'line' => undef
-                                                                                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                                                                                          ],
-                                                                                                                               'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
-                                                                                                                               'vars' => '',
-                                                                                                                               'line' => 628
-                                                                                                                             }, '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' => 0,
-                                                                       'items' => [
-                                                                                    bless( {
-                                                                                             'pattern' => '\\w+',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/\\\\w+/',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 146,
-                                                                                             'mod' => '',
-                                                                                             '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' => '\\w{1,18}',
-                                                                                             'hashname' => '__PATTERN1__',
-                                                                                             'description' => '/\\\\w\\{1,18\\}/',
-                                                                                             'lookahead' => 0,
-                                                                                             'rdelim' => '/',
-                                                                                             'line' => 148,
-                                                                                             'mod' => '',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'NAME',
-                                                 'vars' => '',
-                                                 'line' => 146
-                                               }, 'Parse::RecDescent::Rule' ),
-                              'constant' => bless( {
-                                                     'impcount' => 0,
-                                                     'calls' => [
-                                                                  'int_const',
-                                                                  'float_const',
-                                                                  'dec_const',
-                                                                  'char_const',
-                                                                  'hex_const',
-                                                                  'grastr_const'
-                                                                ],
-                                                     'changed' => 0,
-                                                     'opcount' => 0,
-                                                     'prods' => [
-                                                                  bless( {
-                                                                           'number' => '0',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => 'int_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, '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' => 'float_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => 328
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '2',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => 'dec_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => 328
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '3',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => 'char_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => 328
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '4',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => 'hex_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => 328
-                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                  bless( {
-                                                                           'number' => '5',
-                                                                           'strcount' => 0,
-                                                                           'dircount' => 0,
-                                                                           'uncommit' => undef,
-                                                                           'error' => undef,
-                                                                           'patcount' => 0,
-                                                                           'actcount' => 0,
-                                                                           'items' => [
-                                                                                        bless( {
-                                                                                                 'subrule' => 'grastr_const',
-                                                                                                 'matchrule' => 0,
-                                                                                                 'implicit' => undef,
-                                                                                                 'argcode' => undef,
-                                                                                                 'lookahead' => 0,
-                                                                                                 'line' => 328
-                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                      ],
-                                                                           'line' => 328
-                                                                         }, 'Parse::RecDescent::Production' )
-                                                                ],
-                                                     'name' => 'constant',
-                                                     'vars' => '',
-                                                     'line' => 328
-                                                   }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_ranking_function' => bless( {
-                                                                                                    'impcount' => 0,
-                                                                                                    'calls' => [],
-                                                                                                    'changed' => 0,
-                                                                                                    'opcount' => 0,
-                                                                                                    'prods' => [
-                                                                                                                 bless( {
-                                                                                                                          'number' => '0',
-                                                                                                                          'strcount' => 1,
-                                                                                                                          'dircount' => 0,
-                                                                                                                          'uncommit' => undef,
-                                                                                                                          'error' => undef,
-                                                                                                                          'patcount' => 1,
-                                                                                                                          'actcount' => 0,
-                                                                                                                          'items' => [
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => 'RANK',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/RANK/',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 626,
-                                                                                                                                                'mod' => '',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => '()',
-                                                                                                                                                'hashname' => '__STRING1__',
-                                                                                                                                                'description' => '\'()\'',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 626
-                                                                                                                                              }, 'Parse::RecDescent::Literal' )
-                                                                                                                                     ],
-                                                                                                                          'line' => undef
-                                                                                                                        }, 'Parse::RecDescent::Production' ),
-                                                                                                                 bless( {
-                                                                                                                          'number' => '1',
-                                                                                                                          'strcount' => 1,
-                                                                                                                          'dircount' => 0,
-                                                                                                                          'uncommit' => undef,
-                                                                                                                          'error' => undef,
-                                                                                                                          'patcount' => 1,
-                                                                                                                          'actcount' => 0,
-                                                                                                                          'items' => [
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => 'DENSE_RANK|DENSERANK',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/DENSE_RANK|DENSERANK/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 627,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                                                       bless( {
-                                                                                                                                                'pattern' => '()',
-                                                                                                                                                'hashname' => '__STRING1__',
-                                                                                                                                                'description' => '\'()\'',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'line' => 627
-                                                                                                                                              }, 'Parse::RecDescent::Literal' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 627
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_ranking_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 626
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'window_aggregation_group_clause' => bless( {
-                                                                            'impcount' => 2,
-                                                                            'calls' => [
-                                                                                         '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
-                                                                                         '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause'
-                                                                                       ],
-                                                                            'changed' => 0,
-                                                                            'opcount' => 0,
-                                                                            'prods' => [
-                                                                                         bless( {
-                                                                                                  'number' => '0',
-                                                                                                  'strcount' => 0,
-                                                                                                  'dircount' => 0,
-                                                                                                  'uncommit' => undef,
-                                                                                                  'error' => undef,
-                                                                                                  'patcount' => 0,
-                                                                                                  'actcount' => 0,
-                                                                                                  'items' => [
-                                                                                                               bless( {
-                                                                                                                        'subrule' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
-                                                                                                                        'matchrule' => 0,
-                                                                                                                        'implicit' => '/ROWS/i, or /RANGE/i',
-                                                                                                                        'argcode' => undef,
-                                                                                                                        'lookahead' => 0,
-                                                                                                                        'line' => 568
-                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
-                                                                                                               bless( {
-                                                                                                                        'subrule' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
-                                                                                                                        'matchrule' => 0,
-                                                                                                                        'implicit' => 'group_start, or group_between, or group_end',
-                                                                                                                        'argcode' => undef,
-                                                                                                                        'lookahead' => 0,
-                                                                                                                        'line' => 572
-                                                                                                                      }, 'Parse::RecDescent::Subrule' )
-                                                                                                             ],
-                                                                                                  'line' => undef
-                                                                                                }, 'Parse::RecDescent::Production' )
-                                                                                       ],
-                                                                            'name' => 'window_aggregation_group_clause',
-                                                                            'vars' => '',
-                                                                            'line' => 566
-                                                                          }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
-                                                                                                                   'impcount' => 0,
-                                                                                                                   'calls' => [
-                                                                                                                                'group_start',
-                                                                                                                                'group_between',
-                                                                                                                                'group_end'
-                                                                                                                              ],
-                                                                                                                   'changed' => 0,
-                                                                                                                   'opcount' => 0,
-                                                                                                                   'prods' => [
-                                                                                                                                bless( {
-                                                                                                                                         'number' => '0',
-                                                                                                                                         'strcount' => 0,
-                                                                                                                                         'dircount' => 0,
-                                                                                                                                         'uncommit' => undef,
-                                                                                                                                         'error' => undef,
-                                                                                                                                         'patcount' => 0,
-                                                                                                                                         'actcount' => 0,
-                                                                                                                                         'items' => [
-                                                                                                                                                      bless( {
-                                                                                                                                                               'subrule' => 'group_start',
-                                                                                                                                                               'matchrule' => 0,
-                                                                                                                                                               'implicit' => undef,
-                                                                                                                                                               'argcode' => undef,
-                                                                                                                                                               'lookahead' => 0,
-                                                                                                                                                               'line' => 625
-                                                                                                                                                             }, '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' => 'group_between',
-                                                                                                                                                               'matchrule' => 0,
-                                                                                                                                                               'implicit' => undef,
-                                                                                                                                                               'argcode' => undef,
-                                                                                                                                                               'lookahead' => 0,
-                                                                                                                                                               'line' => 626
-                                                                                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                    ],
-                                                                                                                                         'line' => 626
-                                                                                                                                       }, 'Parse::RecDescent::Production' ),
-                                                                                                                                bless( {
-                                                                                                                                         'number' => '2',
-                                                                                                                                         'strcount' => 0,
-                                                                                                                                         'dircount' => 0,
-                                                                                                                                         'uncommit' => undef,
-                                                                                                                                         'error' => undef,
-                                                                                                                                         'patcount' => 0,
-                                                                                                                                         'actcount' => 0,
-                                                                                                                                         'items' => [
-                                                                                                                                                      bless( {
-                                                                                                                                                               'subrule' => 'group_end',
-                                                                                                                                                               'matchrule' => 0,
-                                                                                                                                                               'implicit' => undef,
-                                                                                                                                                               'argcode' => undef,
-                                                                                                                                                               'lookahead' => 0,
-                                                                                                                                                               'line' => 627
-                                                                                                                                                             }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                    ],
-                                                                                                                                         'line' => 627
-                                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                                              ],
-                                                                                                                   'name' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
-                                                                                                                   'vars' => '',
-                                                                                                                   'line' => 625
-                                                                                                                 }, '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' => 105,
-                                                                                             'mod' => 'i',
-                                                                                             'ldelim' => '/'
-                                                                                           }, 'Parse::RecDescent::Token' )
-                                                                                  ],
-                                                                       'line' => undef
-                                                                     }, 'Parse::RecDescent::Production' )
-                                                            ],
-                                                 'name' => 'VIEW',
-                                                 'vars' => '',
-                                                 'line' => 105
-                                               }, 'Parse::RecDescent::Rule' ),
-                              'with_expression' => bless( {
-                                                            'impcount' => 0,
-                                                            'calls' => [
-                                                                         'common_table_expression'
-                                                                       ],
-                                                            'changed' => 0,
-                                                            'opcount' => 0,
-                                                            'prods' => [
-                                                                         bless( {
-                                                                                  'number' => '0',
-                                                                                  'strcount' => 0,
-                                                                                  'dircount' => 1,
-                                                                                  'uncommit' => undef,
-                                                                                  'error' => undef,
-                                                                                  'patcount' => 2,
-                                                                                  'actcount' => 1,
-                                                                                  'op' => [],
-                                                                                  'items' => [
-                                                                                               bless( {
-                                                                                                        'pattern' => 'WITH',
-                                                                                                        'hashname' => '__PATTERN1__',
-                                                                                                        'description' => '/WITH/i',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'rdelim' => '/',
-                                                                                                        'line' => 89,
-                                                                                                        'mod' => 'i',
-                                                                                                        'ldelim' => '/'
-                                                                                                      }, 'Parse::RecDescent::Token' ),
-                                                                                               bless( {
-                                                                                                        'expected' => '<leftop: common_table_expression /,/ common_table_expression>',
-                                                                                                        'min' => 1,
-                                                                                                        'name' => '\'common_table_expression(s)\'',
-                                                                                                        'max' => 100000000,
-                                                                                                        'leftarg' => bless( {
-                                                                                                                              'subrule' => 'common_table_expression',
-                                                                                                                              'matchrule' => 0,
-                                                                                                                              'implicit' => undef,
-                                                                                                                              'argcode' => undef,
-                                                                                                                              'lookahead' => 0,
-                                                                                                                              'line' => 89
-                                                                                                                            }, 'Parse::RecDescent::Subrule' ),
-                                                                                                        'rightarg' => bless( {
-                                                                                                                               'subrule' => 'common_table_expression',
-                                                                                                                               'matchrule' => 0,
-                                                                                                                               'implicit' => undef,
-                                                                                                                               'argcode' => undef,
-                                                                                                                               'lookahead' => 0,
-                                                                                                                               'line' => 89
-                                                                                                                             }, 'Parse::RecDescent::Subrule' ),
-                                                                                                        'hashname' => '__DIRECTIVE1__',
-                                                                                                        'type' => 'leftop',
-                                                                                                        'op' => bless( {
-                                                                                                                         'pattern' => ',',
-                                                                                                                         'hashname' => '__PATTERN2__',
-                                                                                                                         'description' => '/,/',
-                                                                                                                         'lookahead' => 0,
-                                                                                                                         'rdelim' => '/',
-                                                                                                                         'line' => 89,
-                                                                                                                         'mod' => '',
-                                                                                                                         'ldelim' => '/'
-                                                                                                                       }, 'Parse::RecDescent::Token' )
-                                                                                                      }, 'Parse::RecDescent::Operator' ),
-                                                                                               bless( {
-                                                                                                        'hashname' => '__ACTION1__',
-                                                                                                        'lookahead' => 0,
-                                                                                                        'line' => 90,
-                                                                                                        'code' => '{
-    $return = $item{\'common_table_expression\'};
-}'
-                                                                                                      }, 'Parse::RecDescent::Action' )
-                                                                                             ],
-                                                                                  'line' => undef
-                                                                                }, 'Parse::RecDescent::Production' )
-                                                                       ],
-                                                            'name' => 'with_expression',
-                                                            'vars' => '',
-                                                            'line' => 87
-                                                          }, 'Parse::RecDescent::Rule' ),
-                              'numeric_constant' => 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' => '\\d+',
-                                                                                                         'hashname' => '__PATTERN1__',
-                                                                                                         'description' => '/\\\\d+/',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'rdelim' => '/',
-                                                                                                         'line' => 140,
-                                                                                                         'mod' => '',
-                                                                                                         'ldelim' => '/'
-                                                                                                       }, 'Parse::RecDescent::Token' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'numeric_constant',
-                                                             'vars' => '',
-                                                             'line' => 140
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              'old_new_table' => bless( {
-                                                          'impcount' => 0,
-                                                          'calls' => [
-                                                                       'identifier'
-                                                                     ],
-                                                          'changed' => 0,
-                                                          'opcount' => 0,
-                                                          'prods' => [
-                                                                       bless( {
-                                                                                'number' => '0',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 2,
-                                                                                'actcount' => 1,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'pattern' => 'OLD_TABLE',
-                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                      'description' => '/OLD_TABLE/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 291,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'pattern' => '(AS)?',
-                                                                                                      'hashname' => '__PATTERN2__',
-                                                                                                      'description' => '/(AS)?/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 291,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'subrule' => 'identifier',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 291
-                                                                                                    }, 'Parse::RecDescent::Subrule' ),
-                                                                                             bless( {
-                                                                                                      'hashname' => '__ACTION1__',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 292,
-                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
-                                                                                                    }, 'Parse::RecDescent::Action' )
-                                                                                           ],
-                                                                                'line' => undef
-                                                                              }, 'Parse::RecDescent::Production' ),
-                                                                       bless( {
-                                                                                'number' => '1',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 2,
-                                                                                'actcount' => 1,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'pattern' => 'NEW_TABLE',
-                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                      'description' => '/NEW_TABLE/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 293,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'pattern' => '(AS)?',
-                                                                                                      'hashname' => '__PATTERN2__',
-                                                                                                      'description' => '/(AS)?/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 293,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'subrule' => 'identifier',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 293
-                                                                                                    }, 'Parse::RecDescent::Subrule' ),
-                                                                                             bless( {
-                                                                                                      'hashname' => '__ACTION1__',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 294,
-                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
-                                                                                                    }, 'Parse::RecDescent::Action' )
-                                                                                           ],
-                                                                                'line' => 293
-                                                                              }, 'Parse::RecDescent::Production' )
-                                                                     ],
-                                                          'name' => 'old_new_table',
-                                                          'vars' => '',
-                                                          'line' => 291
-                                                        }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_numbering_function' => bless( {
-                                                                                                      'impcount' => 0,
-                                                                                                      'calls' => [
-                                                                                                                   'window_order_clause',
-                                                                                                                   'window_aggregation_group_clause'
-                                                                                                                 ],
-                                                                                                      'changed' => 0,
-                                                                                                      'opcount' => 0,
-                                                                                                      'prods' => [
-                                                                                                                   bless( {
-                                                                                                                            'number' => '0',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 0,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'window_order_clause',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => undef,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'window_aggregation_group_clause',
-                                                                                                                                                  'expected' => undef,
-                                                                                                                                                  'min' => 0,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'max' => 1,
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'repspec' => '?',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Repetition' )
-                                                                                                                                       ],
-                                                                                                                            'line' => undef
-                                                                                                                          }, 'Parse::RecDescent::Production' )
-                                                                                                                 ],
-                                                                                                      'name' => '_alternation_1_of_production_1_of_rule_numbering_function',
-                                                                                                      'vars' => '',
-                                                                                                      'line' => 627
-                                                                                                    }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
-                                                                                                                                               'impcount' => 0,
-                                                                                                                                               'calls' => [
-                                                                                                                                                            'result_expression'
-                                                                                                                                                          ],
-                                                                                                                                               'changed' => 0,
-                                                                                                                                               'opcount' => 0,
-                                                                                                                                               'prods' => [
-                                                                                                                                                            bless( {
-                                                                                                                                                                     'number' => '0',
-                                                                                                                                                                     'strcount' => 0,
-                                                                                                                                                                     'dircount' => 0,
-                                                                                                                                                                     'uncommit' => undef,
-                                                                                                                                                                     'error' => undef,
-                                                                                                                                                                     'patcount' => 0,
-                                                                                                                                                                     'actcount' => 0,
-                                                                                                                                                                     'items' => [
-                                                                                                                                                                                  bless( {
-                                                                                                                                                                                           'subrule' => 'result_expression',
-                                                                                                                                                                                           'matchrule' => 0,
-                                                                                                                                                                                           'implicit' => undef,
-                                                                                                                                                                                           'argcode' => undef,
-                                                                                                                                                                                           'lookahead' => 0,
-                                                                                                                                                                                           'line' => 626
-                                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                                ],
-                                                                                                                                                                     'line' => undef
-                                                                                                                                                                   }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                            bless( {
-                                                                                                                                                                     'number' => '1',
-                                                                                                                                                                     'strcount' => 0,
-                                                                                                                                                                     'dircount' => 0,
-                                                                                                                                                                     'uncommit' => undef,
-                                                                                                                                                                     'error' => undef,
-                                                                                                                                                                     'patcount' => 1,
-                                                                                                                                                                     'actcount' => 0,
-                                                                                                                                                                     'items' => [
-                                                                                                                                                                                  bless( {
-                                                                                                                                                                                           'pattern' => 'NULL',
-                                                                                                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                                                                                                           'description' => '/NULL/i',
-                                                                                                                                                                                           'lookahead' => 0,
-                                                                                                                                                                                           'rdelim' => '/',
-                                                                                                                                                                                           'line' => 627,
-                                                                                                                                                                                           'mod' => 'i',
-                                                                                                                                                                                           'ldelim' => '/'
-                                                                                                                                                                                         }, 'Parse::RecDescent::Token' )
-                                                                                                                                                                                ],
-                                                                                                                                                                     'line' => 627
-                                                                                                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                                                                                                          ],
-                                                                                                                                               'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
-                                                                                                                                               'vars' => '',
-                                                                                                                                               'line' => 626
-                                                                                                                                             }, 'Parse::RecDescent::Rule' ),
-                              'old_new_corr' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'correlation_name'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 2,
-                                                                               'actcount' => 1,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'OLD',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/OLD/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 286,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => '(AS)?',
-                                                                                                     'hashname' => '__PATTERN2__',
-                                                                                                     'description' => '/(AS)?/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 286,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'subrule' => 'correlation_name',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 286
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'hashname' => '__ACTION1__',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 287,
-                                                                                                     'code' => '{ $return = join(\' \', @item[1..3] ) }'
-                                                                                                   }, 'Parse::RecDescent::Action' )
-                                                                                          ],
-                                                                               'line' => undef
-                                                                             }, 'Parse::RecDescent::Production' ),
-                                                                      bless( {
-                                                                               'number' => '1',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 2,
-                                                                               'actcount' => 1,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'pattern' => 'NEW',
-                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                     'description' => '/NEW/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 288,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'pattern' => '(AS)?',
-                                                                                                     'hashname' => '__PATTERN2__',
-                                                                                                     'description' => '/(AS)?/i',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'rdelim' => '/',
-                                                                                                     'line' => 288,
-                                                                                                     'mod' => 'i',
-                                                                                                     'ldelim' => '/'
-                                                                                                   }, 'Parse::RecDescent::Token' ),
-                                                                                            bless( {
-                                                                                                     'subrule' => 'correlation_name',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 288
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'hashname' => '__ACTION1__',
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 289,
-                                                                                                     'code' => '{ $return = join(\' \', @item[1..3] ) }'
-                                                                                                   }, 'Parse::RecDescent::Action' )
-                                                                                          ],
-                                                                               'line' => 288
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'old_new_corr',
-                                                         'vars' => '',
-                                                         'line' => 286
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_42_of_rule_sysibm_function' => 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' => 'LCASE',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/LCASE/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'LOWER',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/LOWER/',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => '',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_42_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'subtype_treatment' => bless( {
-                                                              'impcount' => 0,
-                                                              'calls' => [
-                                                                           'expression',
-                                                                           'data_type'
-                                                                         ],
-                                                              'changed' => 0,
-                                                              'opcount' => 0,
-                                                              'prods' => [
-                                                                           bless( {
-                                                                                    'number' => '0',
-                                                                                    'strcount' => 2,
-                                                                                    'dircount' => 0,
-                                                                                    'uncommit' => undef,
-                                                                                    'error' => undef,
-                                                                                    'patcount' => 2,
-                                                                                    'actcount' => 0,
-                                                                                    'items' => [
-                                                                                                 bless( {
-                                                                                                          'pattern' => 'TREAT',
-                                                                                                          'hashname' => '__PATTERN1__',
-                                                                                                          'description' => '/TREAT/i',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'rdelim' => '/',
-                                                                                                          'line' => 606,
-                                                                                                          'mod' => 'i',
-                                                                                                          'ldelim' => '/'
-                                                                                                        }, 'Parse::RecDescent::Token' ),
-                                                                                                 bless( {
-                                                                                                          'pattern' => '(',
-                                                                                                          'hashname' => '__STRING1__',
-                                                                                                          'description' => '\'(\'',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 606
-                                                                                                        }, 'Parse::RecDescent::Literal' ),
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'expression',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 606
-                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 bless( {
-                                                                                                          'pattern' => 'AS',
-                                                                                                          'hashname' => '__PATTERN2__',
-                                                                                                          'description' => '/AS/i',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'rdelim' => '/',
-                                                                                                          'line' => 606,
-                                                                                                          'mod' => 'i',
-                                                                                                          'ldelim' => '/'
-                                                                                                        }, 'Parse::RecDescent::Token' ),
-                                                                                                 bless( {
-                                                                                                          'subrule' => 'data_type',
-                                                                                                          'matchrule' => 0,
-                                                                                                          'implicit' => undef,
-                                                                                                          'argcode' => undef,
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 606
-                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                 bless( {
-                                                                                                          'pattern' => ')',
-                                                                                                          'hashname' => '__STRING2__',
-                                                                                                          'description' => '\')\'',
-                                                                                                          'lookahead' => 0,
-                                                                                                          'line' => 606
-                                                                                                        }, 'Parse::RecDescent::Literal' )
-                                                                                               ],
-                                                                                    'line' => undef
-                                                                                  }, 'Parse::RecDescent::Production' )
-                                                                         ],
-                                                              'name' => 'subtype_treatment',
-                                                              'vars' => '',
-                                                              'line' => 606
-                                                            }, 'Parse::RecDescent::Rule' ),
-                              'expression' => bless( {
-                                                       'impcount' => 1,
-                                                       'calls' => [
-                                                                    '_alternation_1_of_production_1_of_rule_expression'
-                                                                  ],
-                                                       '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: \'+\', or \'-\' /operator/ \'+\', or \'-\'>',
-                                                                                                   'min' => 1,
-                                                                                                   'name' => '\'_alternation_1_of_production_1_of_rule_expression(s)\'',
-                                                                                                   'max' => 100000000,
-                                                                                                   'leftarg' => bless( {
-                                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_expression',
-                                                                                                                         'matchrule' => 0,
-                                                                                                                         'implicit' => '\'+\', or \'-\'',
-                                                                                                                         'argcode' => undef,
-                                                                                                                         'lookahead' => 0,
-                                                                                                                         'line' => 319
-                                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                   'rightarg' => bless( {
-                                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_expression',
-                                                                                                                          'matchrule' => 0,
-                                                                                                                          'implicit' => '\'+\', or \'-\'',
-                                                                                                                          'argcode' => undef,
-                                                                                                                          'lookahead' => 0,
-                                                                                                                          'line' => 319
-                                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                   'hashname' => '__DIRECTIVE1__',
-                                                                                                   'type' => 'leftop',
-                                                                                                   'op' => bless( {
-                                                                                                                    'pattern' => 'operator',
-                                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                                    'description' => '/operator/',
-                                                                                                                    'lookahead' => 0,
-                                                                                                                    'rdelim' => '/',
-                                                                                                                    'line' => 319,
-                                                                                                                    'mod' => '',
-                                                                                                                    'ldelim' => '/'
-                                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                                 }, 'Parse::RecDescent::Operator' )
-                                                                                        ],
-                                                                             'line' => undef
-                                                                           }, 'Parse::RecDescent::Production' )
-                                                                  ],
-                                                       'name' => 'expression',
-                                                       'vars' => '',
-                                                       'line' => 299
-                                                     }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
-                                                                                                                                     'impcount' => 0,
-                                                                                                                                     'calls' => [
-                                                                                                                                                  'function',
-                                                                                                                                                  'expression',
-                                                                                                                                                  'constant',
-                                                                                                                                                  'column_name',
-                                                                                                                                                  'host_variable',
-                                                                                                                                                  'special_register',
-                                                                                                                                                  'scalar_fullselect',
-                                                                                                                                                  'labeled_duration',
-                                                                                                                                                  'case_expression',
-                                                                                                                                                  'cast_specification',
-                                                                                                                                                  'OLAP_function',
-                                                                                                                                                  'method_invocation',
-                                                                                                                                                  'subtype_treatment',
-                                                                                                                                                  'sequence_reference'
-                                                                                                                                                ],
-                                                                                                                                     'changed' => 0,
-                                                                                                                                     'opcount' => 0,
-                                                                                                                                     'prods' => [
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '0',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'function',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 613
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => undef
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '1',
-                                                                                                                                                           'strcount' => 2,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'pattern' => '(',
-                                                                                                                                                                                 'hashname' => '__STRING1__',
-                                                                                                                                                                                 'description' => '\'(\'',
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 614
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' ),
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'expression',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 614
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'pattern' => ')',
-                                                                                                                                                                                 'hashname' => '__STRING2__',
-                                                                                                                                                                                 'description' => '\')\'',
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 614
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 614
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '2',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'constant',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 615
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 615
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '3',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'column_name',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 616
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 616
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '4',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'host_variable',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 617
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 617
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '5',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'special_register',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 618
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 618
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '6',
-                                                                                                                                                           'strcount' => 2,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'pattern' => '(',
-                                                                                                                                                                                 'hashname' => '__STRING1__',
-                                                                                                                                                                                 'description' => '\'(\'',
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 619
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' ),
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'scalar_fullselect',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 619
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'pattern' => ')',
-                                                                                                                                                                                 'hashname' => '__STRING2__',
-                                                                                                                                                                                 'description' => '\')\'',
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 619
-                                                                                                                                                                               }, 'Parse::RecDescent::Literal' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 619
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '7',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'labeled_duration',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 620
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 620
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '8',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'case_expression',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 621
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 621
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '9',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'cast_specification',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 622
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 622
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '10',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'OLAP_function',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 624
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 623
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '11',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'method_invocation',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 625
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 625
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '12',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'subtype_treatment',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 626
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 626
-                                                                                                                                                         }, 'Parse::RecDescent::Production' ),
-                                                                                                                                                  bless( {
-                                                                                                                                                           'number' => '13',
-                                                                                                                                                           'strcount' => 0,
-                                                                                                                                                           'dircount' => 0,
-                                                                                                                                                           'uncommit' => undef,
-                                                                                                                                                           'error' => undef,
-                                                                                                                                                           'patcount' => 0,
-                                                                                                                                                           'actcount' => 0,
-                                                                                                                                                           'items' => [
-                                                                                                                                                                        bless( {
-                                                                                                                                                                                 'subrule' => 'sequence_reference',
-                                                                                                                                                                                 'matchrule' => 0,
-                                                                                                                                                                                 'implicit' => undef,
-                                                                                                                                                                                 'argcode' => undef,
-                                                                                                                                                                                 'lookahead' => 0,
-                                                                                                                                                                                 'line' => 627
-                                                                                                                                                                               }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                      ],
-                                                                                                                                                           'line' => 627
-                                                                                                                                                         }, 'Parse::RecDescent::Production' )
-                                                                                                                                                ],
-                                                                                                                                     'name' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
-                                                                                                                                     'vars' => '',
-                                                                                                                                     'line' => 613
-                                                                                                                                   }, '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' => 12
-                                                                                                }, 'Parse::RecDescent::Repetition' ),
-                                                                                         bless( {
-                                                                                                  'subrule' => 'eofile',
-                                                                                                  'matchrule' => 0,
-                                                                                                  'implicit' => undef,
-                                                                                                  'argcode' => undef,
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 12
-                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                         bless( {
-                                                                                                  'hashname' => '__ACTION1__',
-                                                                                                  'lookahead' => 0,
-                                                                                                  'line' => 12,
-                                                                                                  'code' => '{
-    $return      = {
-        tables   => \\%tables,
-        views    => \\@views,
-        triggers => \\@triggers,
-    }
-}'
-                                                                                                }, 'Parse::RecDescent::Action' )
-                                                                                       ],
-                                                                            'line' => undef
-                                                                          }, 'Parse::RecDescent::Production' )
-                                                                 ],
-                                                      'name' => 'startrule',
-                                                      'vars' => '',
-                                                      'line' => 11
-                                                    }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_cast_specification' => bless( {
-                                                                                                      'impcount' => 0,
-                                                                                                      'calls' => [
-                                                                                                                   'expression',
-                                                                                                                   'parameter_marker'
-                                                                                                                 ],
-                                                                                                      'changed' => 0,
-                                                                                                      'opcount' => 0,
-                                                                                                      'prods' => [
-                                                                                                                   bless( {
-                                                                                                                            'number' => '0',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 0,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'expression',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => undef,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 625
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                       ],
-                                                                                                                            'line' => undef
-                                                                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                                                                   bless( {
-                                                                                                                            'number' => '1',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 1,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'pattern' => 'NULL',
-                                                                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                                                                  'description' => '/NULL/i',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'rdelim' => '/',
-                                                                                                                                                  'line' => 626,
-                                                                                                                                                  'mod' => 'i',
-                                                                                                                                                  'ldelim' => '/'
-                                                                                                                                                }, 'Parse::RecDescent::Token' )
-                                                                                                                                       ],
-                                                                                                                            'line' => 626
-                                                                                                                          }, 'Parse::RecDescent::Production' ),
-                                                                                                                   bless( {
-                                                                                                                            'number' => '2',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 0,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'parameter_marker',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => undef,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                       ],
-                                                                                                                            'line' => 627
-                                                                                                                          }, 'Parse::RecDescent::Production' )
-                                                                                                                 ],
-                                                                                                      'name' => '_alternation_1_of_production_1_of_rule_cast_specification',
-                                                                                                      'vars' => '',
-                                                                                                      'line' => 625
-                                                                                                    }, 'Parse::RecDescent::Rule' ),
-                              'before' => 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' => 'NO CASCADE BEFORE',
-                                                                                               'hashname' => '__PATTERN1__',
-                                                                                               'description' => '/NO CASCADE BEFORE/i',
-                                                                                               'lookahead' => 0,
-                                                                                               'rdelim' => '/',
-                                                                                               'line' => 268,
-                                                                                               'mod' => 'i',
-                                                                                               'ldelim' => '/'
-                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                    ],
-                                                                         'line' => undef
-                                                                       }, 'Parse::RecDescent::Production' )
-                                                              ],
-                                                   'name' => 'before',
-                                                   'vars' => '',
-                                                   'line' => 268
-                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_83_of_rule_sysibm_function' => 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' => 'UCASE',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/UCASE/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'UPPER',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/UPPER/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_83_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'ranking_function' => bless( {
-                                                             'impcount' => 1,
-                                                             'calls' => [
-                                                                          '_alternation_1_of_production_1_of_rule_ranking_function',
-                                                                          'window_partition_clause',
-                                                                          'window_order_clause'
-                                                                        ],
-                                                             'changed' => 0,
-                                                             'opcount' => 0,
-                                                             'prods' => [
-                                                                          bless( {
-                                                                                   'number' => '0',
-                                                                                   'strcount' => 2,
-                                                                                   'dircount' => 0,
-                                                                                   'uncommit' => undef,
-                                                                                   'error' => undef,
-                                                                                   'patcount' => 1,
-                                                                                   'actcount' => 0,
-                                                                                   'items' => [
-                                                                                                bless( {
-                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_ranking_function',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => '/RANK/, or /DENSE_RANK|DENSERANK/i',
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 544
-                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                bless( {
-                                                                                                         'pattern' => 'OVER',
-                                                                                                         'hashname' => '__PATTERN1__',
-                                                                                                         'description' => '/OVER/i',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'rdelim' => '/',
-                                                                                                         'line' => 544,
-                                                                                                         'mod' => 'i',
-                                                                                                         'ldelim' => '/'
-                                                                                                       }, 'Parse::RecDescent::Token' ),
-                                                                                                bless( {
-                                                                                                         'pattern' => '(',
-                                                                                                         'hashname' => '__STRING1__',
-                                                                                                         'description' => '\'(\'',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 544
-                                                                                                       }, 'Parse::RecDescent::Literal' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => 'window_partition_clause',
-                                                                                                         'expected' => undef,
-                                                                                                         'min' => 0,
-                                                                                                         'argcode' => undef,
-                                                                                                         'max' => 1,
-                                                                                                         'matchrule' => 0,
-                                                                                                         'repspec' => '?',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 544
-                                                                                                       }, 'Parse::RecDescent::Repetition' ),
-                                                                                                bless( {
-                                                                                                         'subrule' => 'window_order_clause',
-                                                                                                         'matchrule' => 0,
-                                                                                                         'implicit' => undef,
-                                                                                                         'argcode' => undef,
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 544
-                                                                                                       }, 'Parse::RecDescent::Subrule' ),
-                                                                                                bless( {
-                                                                                                         'pattern' => ')',
-                                                                                                         'hashname' => '__STRING2__',
-                                                                                                         'description' => '\')\'',
-                                                                                                         'lookahead' => 0,
-                                                                                                         'line' => 544
-                                                                                                       }, 'Parse::RecDescent::Literal' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'ranking_function',
-                                                             'vars' => '',
-                                                             'line' => 542
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition' => bless( {
-                                                                                                                                           'impcount' => 0,
-                                                                                                                                           'calls' => [
-                                                                                                                                                        'numeric_constant'
-                                                                                                                                                      ],
-                                                                                                                                           'changed' => 0,
-                                                                                                                                           'opcount' => 0,
-                                                                                                                                           'prods' => [
-                                                                                                                                                        bless( {
-                                                                                                                                                                 'number' => '0',
-                                                                                                                                                                 'strcount' => 0,
-                                                                                                                                                                 'dircount' => 0,
-                                                                                                                                                                 'uncommit' => undef,
-                                                                                                                                                                 'error' => undef,
-                                                                                                                                                                 'patcount' => 1,
-                                                                                                                                                                 'actcount' => 0,
-                                                                                                                                                                 'items' => [
-                                                                                                                                                                              bless( {
-                                                                                                                                                                                       'pattern' => 'SELECTIVITY',
-                                                                                                                                                                                       'hashname' => '__PATTERN1__',
-                                                                                                                                                                                       'description' => '/SELECTIVITY/i',
-                                                                                                                                                                                       'lookahead' => 0,
-                                                                                                                                                                                       'rdelim' => '/',
-                                                                                                                                                                                       'line' => 628,
-                                                                                                                                                                                       'mod' => 'i',
-                                                                                                                                                                                       'ldelim' => '/'
-                                                                                                                                                                                     }, 'Parse::RecDescent::Token' ),
-                                                                                                                                                                              bless( {
-                                                                                                                                                                                       'subrule' => 'numeric_constant',
-                                                                                                                                                                                       'matchrule' => 0,
-                                                                                                                                                                                       'implicit' => undef,
-                                                                                                                                                                                       'argcode' => undef,
-                                                                                                                                                                                       'lookahead' => 0,
-                                                                                                                                                                                       'line' => 628
-                                                                                                                                                                                     }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                                                            ],
-                                                                                                                                                                 'line' => undef
-                                                                                                                                                               }, 'Parse::RecDescent::Production' )
-                                                                                                                                                      ],
-                                                                                                                                           'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
-                                                                                                                                           'vars' => '',
-                                                                                                                                           'line' => 628
-                                                                                                                                         }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_sysibm_function' => 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' => 'ABS',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/ABS/i',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 628,
-                                                                                                                                               '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' => 'ABSVAL',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/ABSVAL/i',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 628,
-                                                                                                                                               'mod' => 'i',
-                                                                                                                                               'ldelim' => '/'
-                                                                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                                                                    ],
-                                                                                                                         'line' => 628
-                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                              ],
-                                                                                                   'name' => '_alternation_1_of_production_1_of_rule_sysibm_function',
-                                                                                                   'vars' => '',
-                                                                                                   'line' => 628
-                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              'reference_b' => bless( {
-                                                        'impcount' => 0,
-                                                        'calls' => [
-                                                                     'old_new_corr'
-                                                                   ],
-                                                        'changed' => 0,
-                                                        'opcount' => 0,
-                                                        'prods' => [
-                                                                     bless( {
-                                                                              'number' => '0',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 1,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'REFERENCING',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/REFERENCING/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 280,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                           bless( {
-                                                                                                    'subrule' => 'old_new_corr',
-                                                                                                    'expected' => undef,
-                                                                                                    'min' => 0,
-                                                                                                    'argcode' => undef,
-                                                                                                    'max' => 2,
-                                                                                                    'matchrule' => 0,
-                                                                                                    'repspec' => '0..2',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 280
-                                                                                                  }, 'Parse::RecDescent::Repetition' ),
-                                                                                           bless( {
-                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 281,
-                                                                                                    'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}) ) }'
-                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'reference_b',
-                                                        'vars' => '',
-                                                        'line' => 280
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
-                                                                                                      'impcount' => 1,
-                                                                                                      'calls' => [
-                                                                                                                   'search_condition',
-                                                                                                                   '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause'
-                                                                                                                 ],
-                                                                                                      'changed' => 0,
-                                                                                                      'opcount' => 0,
-                                                                                                      'prods' => [
-                                                                                                                   bless( {
-                                                                                                                            'number' => '0',
-                                                                                                                            'strcount' => 0,
-                                                                                                                            'dircount' => 0,
-                                                                                                                            'uncommit' => undef,
-                                                                                                                            'error' => undef,
-                                                                                                                            'patcount' => 2,
-                                                                                                                            'actcount' => 0,
-                                                                                                                            'items' => [
-                                                                                                                                         bless( {
-                                                                                                                                                  'pattern' => 'WHEN',
-                                                                                                                                                  'hashname' => '__PATTERN1__',
-                                                                                                                                                  'description' => '/WHEN/i',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'rdelim' => '/',
-                                                                                                                                                  'line' => 624,
-                                                                                                                                                  'mod' => 'i',
-                                                                                                                                                  'ldelim' => '/'
-                                                                                                                                                }, 'Parse::RecDescent::Token' ),
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => 'search_condition',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => undef,
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 624
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                                                                         bless( {
-                                                                                                                                                  'pattern' => 'THEN',
-                                                                                                                                                  'hashname' => '__PATTERN2__',
-                                                                                                                                                  'description' => '/THEN/i',
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'rdelim' => '/',
-                                                                                                                                                  'line' => 624,
-                                                                                                                                                  'mod' => 'i',
-                                                                                                                                                  'ldelim' => '/'
-                                                                                                                                                }, 'Parse::RecDescent::Token' ),
-                                                                                                                                         bless( {
-                                                                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
-                                                                                                                                                  'matchrule' => 0,
-                                                                                                                                                  'implicit' => 'result_expression, or /NULL/i',
-                                                                                                                                                  'argcode' => undef,
-                                                                                                                                                  'lookahead' => 0,
-                                                                                                                                                  'line' => 627
-                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
-                                                                                                                                       ],
-                                                                                                                            'line' => undef
-                                                                                                                          }, 'Parse::RecDescent::Production' )
-                                                                                                                 ],
-                                                                                                      'name' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
-                                                                                                      'vars' => '',
-                                                                                                      'line' => 624
-                                                                                                    }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_9_of_rule_sysibm_function' => 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' => 'CORRELATION',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/CORRELATION/i',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 628,
-                                                                                                                                               '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' => 'CORR',
-                                                                                                                                               'hashname' => '__PATTERN1__',
-                                                                                                                                               'description' => '/CORR/',
-                                                                                                                                               'lookahead' => 0,
-                                                                                                                                               'rdelim' => '/',
-                                                                                                                                               'line' => 628,
-                                                                                                                                               'mod' => '',
-                                                                                                                                               'ldelim' => '/'
-                                                                                                                                             }, 'Parse::RecDescent::Token' )
-                                                                                                                                    ],
-                                                                                                                         'line' => 628
-                                                                                                                       }, 'Parse::RecDescent::Production' )
-                                                                                                              ],
-                                                                                                   'name' => '_alternation_1_of_production_9_of_rule_sysibm_function',
-                                                                                                   'vars' => '',
-                                                                                                   'line' => 628
-                                                                                                 }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_7_of_rule_sysfun' => 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' => 'CEIL',
-                                                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                                                      'description' => '/CEIL/i',
-                                                                                                                                      'lookahead' => 0,
-                                                                                                                                      'rdelim' => '/',
-                                                                                                                                      'line' => 628,
-                                                                                                                                      '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' => 'CEILING',
-                                                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                                                      'description' => '/CEILING/i',
-                                                                                                                                      'lookahead' => 0,
-                                                                                                                                      'rdelim' => '/',
-                                                                                                                                      'line' => 628,
-                                                                                                                                      'mod' => 'i',
-                                                                                                                                      'ldelim' => '/'
-                                                                                                                                    }, 'Parse::RecDescent::Token' )
-                                                                                                                           ],
-                                                                                                                'line' => 628
-                                                                                                              }, 'Parse::RecDescent::Production' )
-                                                                                                     ],
-                                                                                          'name' => '_alternation_1_of_production_7_of_rule_sysfun',
-                                                                                          'vars' => '',
-                                                                                          'line' => 628
-                                                                                        }, 'Parse::RecDescent::Rule' ),
-                              'prevval_expression' => bless( {
-                                                               'impcount' => 0,
-                                                               'calls' => [
-                                                                            'sequence_name'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 0,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 1,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'PREVVAL\\s+FOR',
-                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                           'description' => '/PREVVAL\\\\s+FOR/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 613,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'sequence_name',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 613
-                                                                                                         }, 'Parse::RecDescent::Subrule' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'prevval_expression',
-                                                               'vars' => '',
-                                                               'line' => 613
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              'where_clause' => bless( {
-                                                         'impcount' => 0,
-                                                         'calls' => [
-                                                                      'WHERE',
-                                                                      'search_condition'
-                                                                    ],
-                                                         'changed' => 0,
-                                                         'opcount' => 0,
-                                                         'prods' => [
-                                                                      bless( {
-                                                                               'number' => '0',
-                                                                               'strcount' => 0,
-                                                                               'dircount' => 0,
-                                                                               'uncommit' => undef,
-                                                                               'error' => undef,
-                                                                               'patcount' => 0,
-                                                                               'actcount' => 0,
-                                                                               'items' => [
-                                                                                            bless( {
-                                                                                                     'subrule' => 'WHERE',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 218
-                                                                                                   }, 'Parse::RecDescent::Subrule' ),
-                                                                                            bless( {
-                                                                                                     'subrule' => 'search_condition',
-                                                                                                     'matchrule' => 0,
-                                                                                                     'implicit' => undef,
-                                                                                                     'argcode' => undef,
-                                                                                                     'lookahead' => 0,
-                                                                                                     'line' => 218
-                                                                                                   }, 'Parse::RecDescent::Subrule' )
-                                                                                          ],
-                                                                               'line' => undef
-                                                                             }, 'Parse::RecDescent::Production' )
-                                                                    ],
-                                                         'name' => 'where_clause',
-                                                         'vars' => '',
-                                                         'line' => 216
-                                                       }, 'Parse::RecDescent::Rule' ),
-                              'group_start' => bless( {
-                                                        'impcount' => 0,
-                                                        'calls' => [
-                                                                     'unsigned_constant'
-                                                                   ],
-                                                        'changed' => 0,
-                                                        'opcount' => 0,
-                                                        'prods' => [
-                                                                     bless( {
-                                                                              'number' => '0',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'UNBOUNDED\\s+PRECEDING',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 574,
-                                                                                                    '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( {
-                                                                                                    'subrule' => 'unsigned_constant',
-                                                                                                    'matchrule' => 0,
-                                                                                                    'implicit' => undef,
-                                                                                                    'argcode' => undef,
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 575
-                                                                                                  }, 'Parse::RecDescent::Subrule' ),
-                                                                                           bless( {
-                                                                                                    'pattern' => 'PRECEDING',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/PRECEDING/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 575,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 575
-                                                                            }, 'Parse::RecDescent::Production' ),
-                                                                     bless( {
-                                                                              'number' => '2',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'CURRENT\\s+ROW',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/CURRENT\\\\s+ROW/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 576,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' )
-                                                                                         ],
-                                                                              'line' => 576
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'group_start',
-                                                        'vars' => '',
-                                                        'line' => 574
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'correlation_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' => 138
-                                                                                                       }, 'Parse::RecDescent::Subrule' )
-                                                                                              ],
-                                                                                   'line' => undef
-                                                                                 }, 'Parse::RecDescent::Production' )
-                                                                        ],
-                                                             'name' => 'correlation_name',
-                                                             'vars' => '',
-                                                             'line' => 138
-                                                           }, 'Parse::RecDescent::Rule' ),
-                              'SQL_procedure_statement' => bless( {
-                                                                    'impcount' => 0,
-                                                                    'calls' => [],
-                                                                    'changed' => 0,
-                                                                    'opcount' => 0,
-                                                                    'prods' => [
-                                                                                 bless( {
-                                                                                          'number' => '0',
-                                                                                          'strcount' => 0,
-                                                                                          'dircount' => 0,
-                                                                                          'uncommit' => undef,
-                                                                                          'error' => undef,
-                                                                                          'patcount' => 2,
-                                                                                          'actcount' => 1,
-                                                                                          'items' => [
-                                                                                                       bless( {
-                                                                                                                'pattern' => '[^;]*',
-                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                'description' => '/[^;]*/',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'rdelim' => '/',
-                                                                                                                'line' => 94,
-                                                                                                                'mod' => '',
-                                                                                                                'ldelim' => '/'
-                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                       bless( {
-                                                                                                                'pattern' => '(;|\\z)',
-                                                                                                                'hashname' => '__PATTERN2__',
-                                                                                                                'description' => '/(;|\\\\z)/',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'rdelim' => '/',
-                                                                                                                'line' => 94,
-                                                                                                                'mod' => '',
-                                                                                                                'ldelim' => '/'
-                                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                                       bless( {
-                                                                                                                'hashname' => '__ACTION1__',
-                                                                                                                'lookahead' => 0,
-                                                                                                                'line' => 94,
-                                                                                                                'code' => '{ $return = $item[1] . $item[2] }'
-                                                                                                              }, 'Parse::RecDescent::Action' )
-                                                                                                     ],
-                                                                                          'line' => undef
-                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                               ],
-                                                                    'name' => 'SQL_procedure_statement',
-                                                                    'vars' => '',
-                                                                    'line' => 94
-                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'group_between' => bless( {
-                                                          'impcount' => 0,
-                                                          'calls' => [
-                                                                       'group_bound1',
-                                                                       'group_bound2'
-                                                                     ],
-                                                          'changed' => 0,
-                                                          'opcount' => 0,
-                                                          'prods' => [
-                                                                       bless( {
-                                                                                'number' => '0',
-                                                                                'strcount' => 0,
-                                                                                'dircount' => 0,
-                                                                                'uncommit' => undef,
-                                                                                'error' => undef,
-                                                                                'patcount' => 2,
-                                                                                'actcount' => 0,
-                                                                                'items' => [
-                                                                                             bless( {
-                                                                                                      'pattern' => 'BETWEEN',
-                                                                                                      'hashname' => '__PATTERN1__',
-                                                                                                      'description' => '/BETWEEN/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 578,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'subrule' => 'group_bound1',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 578
-                                                                                                    }, 'Parse::RecDescent::Subrule' ),
-                                                                                             bless( {
-                                                                                                      'pattern' => 'AND',
-                                                                                                      'hashname' => '__PATTERN2__',
-                                                                                                      'description' => '/AND/i',
-                                                                                                      'lookahead' => 0,
-                                                                                                      'rdelim' => '/',
-                                                                                                      'line' => 578,
-                                                                                                      'mod' => 'i',
-                                                                                                      'ldelim' => '/'
-                                                                                                    }, 'Parse::RecDescent::Token' ),
-                                                                                             bless( {
-                                                                                                      'subrule' => 'group_bound2',
-                                                                                                      'matchrule' => 0,
-                                                                                                      'implicit' => undef,
-                                                                                                      'argcode' => undef,
-                                                                                                      'lookahead' => 0,
-                                                                                                      'line' => 578
-                                                                                                    }, 'Parse::RecDescent::Subrule' )
-                                                                                           ],
-                                                                                'line' => undef
-                                                                              }, 'Parse::RecDescent::Production' )
-                                                                     ],
-                                                          'name' => 'group_between',
-                                                          'vars' => '',
-                                                          'line' => 578
-                                                        }, 'Parse::RecDescent::Rule' ),
-                              'nextval_expression' => bless( {
-                                                               'impcount' => 0,
-                                                               'calls' => [
-                                                                            'sequence_name'
-                                                                          ],
-                                                               'changed' => 0,
-                                                               'opcount' => 0,
-                                                               'prods' => [
-                                                                            bless( {
-                                                                                     'number' => '0',
-                                                                                     'strcount' => 0,
-                                                                                     'dircount' => 0,
-                                                                                     'uncommit' => undef,
-                                                                                     'error' => undef,
-                                                                                     'patcount' => 1,
-                                                                                     'actcount' => 0,
-                                                                                     'items' => [
-                                                                                                  bless( {
-                                                                                                           'pattern' => 'NEXTVAL\\s+FOR',
-                                                                                                           'hashname' => '__PATTERN1__',
-                                                                                                           'description' => '/NEXTVAL\\\\s+FOR/i',
-                                                                                                           'lookahead' => 0,
-                                                                                                           'rdelim' => '/',
-                                                                                                           'line' => 611,
-                                                                                                           'mod' => 'i',
-                                                                                                           'ldelim' => '/'
-                                                                                                         }, 'Parse::RecDescent::Token' ),
-                                                                                                  bless( {
-                                                                                                           'subrule' => 'sequence_name',
-                                                                                                           'matchrule' => 0,
-                                                                                                           'implicit' => undef,
-                                                                                                           'argcode' => undef,
-                                                                                                           'lookahead' => 0,
-                                                                                                           'line' => 611
-                                                                                                         }, 'Parse::RecDescent::Subrule' )
-                                                                                                ],
-                                                                                     'line' => undef
-                                                                                   }, 'Parse::RecDescent::Production' )
-                                                                          ],
-                                                               'name' => 'nextval_expression',
-                                                               'vars' => '',
-                                                               'line' => 611
-                                                             }, 'Parse::RecDescent::Rule' ),
-                              'desc_option' => bless( {
-                                                        'impcount' => 1,
-                                                        'calls' => [
-                                                                     '_alternation_1_of_production_1_of_rule_desc_option'
-                                                                   ],
-                                                        'changed' => 0,
-                                                        'opcount' => 0,
-                                                        'prods' => [
-                                                                     bless( {
-                                                                              'number' => '0',
-                                                                              'strcount' => 0,
-                                                                              'dircount' => 0,
-                                                                              'uncommit' => undef,
-                                                                              'error' => undef,
-                                                                              'patcount' => 1,
-                                                                              'actcount' => 0,
-                                                                              'items' => [
-                                                                                           bless( {
-                                                                                                    'pattern' => 'DESC',
-                                                                                                    'hashname' => '__PATTERN1__',
-                                                                                                    'description' => '/DESC/i',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'rdelim' => '/',
-                                                                                                    'line' => 564,
-                                                                                                    'mod' => 'i',
-                                                                                                    'ldelim' => '/'
-                                                                                                  }, 'Parse::RecDescent::Token' ),
-                                                                                           bless( {
-                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule_desc_option',
-                                                                                                    'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
-                                                                                                    'min' => 0,
-                                                                                                    'argcode' => undef,
-                                                                                                    'max' => 1,
-                                                                                                    'matchrule' => 0,
-                                                                                                    'repspec' => '?',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 564
-                                                                                                  }, 'Parse::RecDescent::Repetition' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'desc_option',
-                                                        'vars' => '',
-                                                        'line' => 564
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              'column_list' => bless( {
-                                                        'impcount' => 0,
-                                                        'calls' => [
-                                                                     'column_name'
-                                                                   ],
-                                                        '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' => 96
-                                                                                                  }, 'Parse::RecDescent::Literal' ),
-                                                                                           bless( {
-                                                                                                    'expected' => '<leftop: column_name /,/ column_name>',
-                                                                                                    'min' => 1,
-                                                                                                    'name' => '\'column_name(s)\'',
-                                                                                                    'max' => 100000000,
-                                                                                                    'leftarg' => bless( {
-                                                                                                                          'subrule' => 'column_name',
-                                                                                                                          'matchrule' => 0,
-                                                                                                                          'implicit' => undef,
-                                                                                                                          'argcode' => undef,
-                                                                                                                          'lookahead' => 0,
-                                                                                                                          'line' => 96
-                                                                                                                        }, 'Parse::RecDescent::Subrule' ),
-                                                                                                    'rightarg' => bless( {
-                                                                                                                           'subrule' => 'column_name',
-                                                                                                                           'matchrule' => 0,
-                                                                                                                           'implicit' => undef,
-                                                                                                                           'argcode' => undef,
-                                                                                                                           'lookahead' => 0,
-                                                                                                                           'line' => 96
-                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
-                                                                                                    'hashname' => '__DIRECTIVE1__',
-                                                                                                    'type' => 'leftop',
-                                                                                                    'op' => bless( {
-                                                                                                                     'pattern' => ',',
-                                                                                                                     'hashname' => '__PATTERN1__',
-                                                                                                                     'description' => '/,/',
-                                                                                                                     'lookahead' => 0,
-                                                                                                                     'rdelim' => '/',
-                                                                                                                     'line' => 96,
-                                                                                                                     'mod' => '',
-                                                                                                                     'ldelim' => '/'
-                                                                                                                   }, 'Parse::RecDescent::Token' )
-                                                                                                  }, 'Parse::RecDescent::Operator' ),
-                                                                                           bless( {
-                                                                                                    'pattern' => ')',
-                                                                                                    'hashname' => '__STRING2__',
-                                                                                                    'description' => '\')\'',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 96
-                                                                                                  }, 'Parse::RecDescent::Literal' ),
-                                                                                           bless( {
-                                                                                                    'hashname' => '__ACTION1__',
-                                                                                                    'lookahead' => 0,
-                                                                                                    'line' => 97,
-                                                                                                    'code' => '{
-    $return = join(\' \', \'(\', @{$item[2]}, \')\');
-}'
-                                                                                                  }, 'Parse::RecDescent::Action' )
-                                                                                         ],
-                                                                              'line' => undef
-                                                                            }, 'Parse::RecDescent::Production' )
-                                                                   ],
-                                                        'name' => 'column_list',
-                                                        'vars' => '',
-                                                        'line' => 96
-                                                      }, 'Parse::RecDescent::Rule' ),
-                              '_alternation_1_of_production_63_of_rule_sysibm_function' => 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' => 'REGR_INTERCEPT',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/REGR_INTERCEPT/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                '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' => 'REGR_ICPT',
-                                                                                                                                                'hashname' => '__PATTERN1__',
-                                                                                                                                                'description' => '/REGR_ICPT/i',
-                                                                                                                                                'lookahead' => 0,
-                                                                                                                                                'rdelim' => '/',
-                                                                                                                                                'line' => 628,
-                                                                                                                                                'mod' => 'i',
-                                                                                                                                                'ldelim' => '/'
-                                                                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                                                                     ],
-                                                                                                                          'line' => 628
-                                                                                                                        }, 'Parse::RecDescent::Production' )
-                                                                                                               ],
-                                                                                                    'name' => '_alternation_1_of_production_63_of_rule_sysibm_function',
-                                                                                                    'vars' => '',
-                                                                                                    'line' => 628
-                                                                                                  }, 'Parse::RecDescent::Rule' ),
-                              'dereference_operation' => bless( {
-                                                                  'impcount' => 1,
-                                                                  'calls' => [
-                                                                               'scoped_reference_expression',
-                                                                               'name1',
-                                                                               '_alternation_1_of_production_1_of_rule_dereference_operation'
-                                                                             ],
-                                                                  'changed' => 0,
-                                                                  'opcount' => 0,
-                                                                  'prods' => [
-                                                                               bless( {
-                                                                                        'number' => '0',
-                                                                                        'strcount' => 1,
-                                                                                        'dircount' => 0,
-                                                                                        'uncommit' => undef,
-                                                                                        'error' => undef,
-                                                                                        'patcount' => 0,
-                                                                                        'actcount' => 0,
-                                                                                        'items' => [
-                                                                                                     bless( {
-                                                                                                              'subrule' => 'scoped_reference_expression',
-                                                                                                              'matchrule' => 0,
-                                                                                                              'implicit' => undef,
-                                                                                                              'argcode' => undef,
-                                                                                                              'lookahead' => 0,
-                                                                                                              'line' => 526
-                                                                                                            }, 'Parse::RecDescent::Subrule' ),
-                                                                                                     bless( {
-                                                                                                              'pattern' => '->',
-                                                                                                              'hashname' => '__STRING1__',
-                                                                                                              'description' => '\'->\'',
-                                                                                                              'lookahead' => 0,
-                                                                                                              'line' => 526
-                                                                                                            }, 'Parse::RecDescent::Literal' ),
-                                                                                                     bless( {
-                                                                                                              'subrule' => 'name1',
-                                                                                                              'matchrule' => 0,
-                                                                                                              'implicit' => undef,
-                                                                                                              'argcode' => undef,
-                                                                                                              'lookahead' => 0,
-                                                                                                              'line' => 526
-                                                                                                            }, 'Parse::RecDescent::Subrule' ),
-                                                                                                     bless( {
-                                                                                                              'subrule' => '_alternation_1_of_production_1_of_rule_dereference_operation',
-                                                                                                              'expected' => '\'(\'',
-                                                                                                              'min' => 0,
-                                                                                                              'argcode' => undef,
-                                                                                                              'max' => 1,
-                                                                                                              'matchrule' => 0,
-                                                                                                              'repspec' => '?',
-                                                                                                              'lookahead' => 0,
-                                                                                                              'line' => 527
-                                                                                                            }, 'Parse::RecDescent::Repetition' )
-                                                                                                   ],
-                                                                                        'line' => undef
-                                                                                      }, 'Parse::RecDescent::Production' )
-                                                                             ],
-                                                                  'name' => 'dereference_operation',
-                                                                  'vars' => '',
-                                                                  'line' => 526
-                                                                }, 'Parse::RecDescent::Rule' ),
-                              'OUTER' => 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' => 'outer',
-                                                                                              'hashname' => '__PATTERN1__',
-                                                                                              'description' => '/outer/i',
-                                                                                              'lookahead' => 0,
-                                                                                              'rdelim' => '/',
-                                                                                              'line' => 115,
-                                                                                              'mod' => 'i',
-                                                                                              'ldelim' => '/'
-                                                                                            }, 'Parse::RecDescent::Token' )
-                                                                                   ],
-                                                                        'line' => undef
-                                                                      }, 'Parse::RecDescent::Production' )
-                                                             ],
-                                                  'name' => 'OUTER',
-                                                  'vars' => '',
-                                                  'line' => 115
-                                                }, 'Parse::RecDescent::Rule' ),
-                              'window_order_clause' => bless( {
-                                                                'impcount' => 1,
-                                                                'calls' => [
-                                                                             '_alternation_1_of_production_1_of_rule_window_order_clause'
-                                                                           ],
-                                                                'changed' => 0,
-                                                                'opcount' => 0,
-                                                                'prods' => [
-                                                                             bless( {
-                                                                                      'number' => '0',
-                                                                                      'strcount' => 0,
-                                                                                      'dircount' => 1,
-                                                                                      'uncommit' => undef,
-                                                                                      'error' => undef,
-                                                                                      'patcount' => 2,
-                                                                                      'actcount' => 0,
-                                                                                      'op' => [],
-                                                                                      'items' => [
-                                                                                                   bless( {
-                                                                                                            'pattern' => 'ORDER\\s+BY',
-                                                                                                            'hashname' => '__PATTERN1__',
-                                                                                                            'description' => '/ORDER\\\\s+BY/i',
-                                                                                                            'lookahead' => 0,
-                                                                                                            'rdelim' => '/',
-                                                                                                            'line' => 555,
-                                                                                                            'mod' => 'i',
-                                                                                                            'ldelim' => '/'
-                                                                                                          }, 'Parse::RecDescent::Token' ),
-                                                                                                   bless( {
-                                                                                                            'expected' => '<leftop: sort_key_expression /,/ sort_key_expression>',
-                                                                                                            'min' => 1,
-                                                                                                            'name' => '\'_alternation_1_of_production_1_of_rule_window_order_clause(s)\'',
-                                                                                                            'max' => 100000000,
-                                                                                                            'leftarg' => bless( {
-                                                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
-                                                                                                                                  'matchrule' => 0,
-                                                                                                                                  'implicit' => 'sort_key_expression',
-                                                                                                                                  'argcode' => undef,
-                                                                                                                                  'lookahead' => 0,
-                                                                                                                                  'line' => 560
-                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
-                                                                                                            'rightarg' => bless( {
-                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
-                                                                                                                                   'matchrule' => 0,
-                                                                                                                                   'implicit' => 'sort_key_expression',
-                                                                                                                                   'argcode' => undef,
-                                                                                                                                   'lookahead' => 0,
-                                                                                                                                   'line' => 560
-                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
-                                                                                                            'hashname' => '__DIRECTIVE1__',
-                                                                                                            'type' => 'leftop',
-                                                                                                            'op' => bless( {
-                                                                                                                             'pattern' => ',',
-                                                                                                                             'hashname' => '__PATTERN2__',
-                                                                                                                             'description' => '/,/',
-                                                                                                                             'lookahead' => 0,
-                                                                                                                             'rdelim' => '/',
-                                                                                                                             'line' => 560,
-                                                                                                                             'mod' => '',
-                                                                                                                             'ldelim' => '/'
-                                                                                                                           }, 'Parse::RecDescent::Token' )
-                                                                                                          }, 'Parse::RecDescent::Operator' )
-                                                                                                 ],
-                                                                                      'line' => undef
-                                                                                    }, 'Parse::RecDescent::Production' )
-                                                                           ],
-                                                                'name' => 'window_order_clause',
-                                                                'vars' => '',
-                                                                'line' => 555
-                                                              }, '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' => 103,
-                                                                                                'mod' => 'i',
-                                                                                                'ldelim' => '/'
-                                                                                              }, 'Parse::RecDescent::Token' )
-                                                                                     ],
-                                                                          'line' => undef
-                                                                        }, 'Parse::RecDescent::Production' )
-                                                               ],
-                                                    'name' => 'TRIGGER',
-                                                    'vars' => '',
-                                                    'line' => 103
-                                                  }, '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' => 27,
-                                                                                                'mod' => '',
-                                                                                                'ldelim' => '/'
-                                                                                              }, 'Parse::RecDescent::Token' ),
-                                                                                       bless( {
-                                                                                                'hashname' => '__ACTION1__',
-                                                                                                'lookahead' => 0,
-                                                                                                'line' => 28,
-                                                                                                'code' => '{
-        my $comment =  $item[1];
-        $comment    =~ s/^\\s*(-{2})\\s*//;
-        $comment    =~ s/\\s*$//;
-        $return     = $comment;
-    }'
-                                                                                              }, 'Parse::RecDescent::Action' )
-                                                                                     ],
-                                                                          'line' => undef
-                                                                        }, 'Parse::RecDescent::Production' )
-                                                               ],
-                                                    'name' => 'comment',
-                                                    'vars' => '',
-                                                    'line' => 27
-                                                  }, 'Parse::RecDescent::Rule' )
-                            }
-               }, 'Parse::RecDescent' );
-}
\ No newline at end of file
index 1a8c44b..854b927 100644 (file)
@@ -129,31 +129,25 @@ More information about the MySQL comment-syntax: L<http://dev.mysql.com/doc/refm
 
 use strict;
 use warnings;
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
+
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
 use Storable qw(dclone);
 use DBI qw(:sql_types);
-use base qw(Exporter);
+use SQL::Translator::Utils qw/parse_mysql_version ddl_parser_instance/;
 
-use SQL::Translator::Utils qw/parse_mysql_version/;
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
 our %type_mapping = ();
 
-@EXPORT_OK = qw(parse);
-
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
-
 use constant DEFAULT_PARSER_VERSION => 30000;
 
-$GRAMMAR = << 'END_OF_GRAMMAR';
+our $GRAMMAR = << 'END_OF_GRAMMAR';
 
 {
     my ( $database_name, %tables, $table_order, @table_comments, %views,
@@ -797,14 +791,16 @@ END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
+
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('MySQL');
 
     # Preprocess for MySQL-specific and not-before-version comments
     # from mysqldump
index 9bcc35c..4da09fb 100644 (file)
@@ -77,23 +77,19 @@ was altered to better handle the syntax created by DDL::Oracle.
 
 use strict;
 use warnings;
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
+
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q`
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 { my ( %tables, %indices, %constraints, $table_order, @table_comments, %views, $view_order, %procedures, $proc_order ) }
 
@@ -592,19 +588,20 @@ VALUE   : /[-+]?\.?\d+(?:[eE]\d+)?/
     | /NULL/
     { 'NULL' }
 
-`;
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
 
-    local $::RD_TRACE = $translator->trace ? 1 : undef;
-    local $DEBUG      = $translator->debug;
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    local $::RD_TRACE  = $translator->trace ? 1 : undef;
+    local $DEBUG       = $translator->debug;
+
+    my $parser = ddl_parser_instance('Oracle');
 
     my $result = $parser->startrule( $data );
     die "Parse failed.\n" unless defined $result;
index 77edd1c..29f26ab 100644 (file)
@@ -88,23 +88,19 @@ View table:
 
 use strict;
 use warnings;
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
+
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q!
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 { my ( %tables, @views, @triggers, $table_order, $field_order, @table_comments) }
 
@@ -124,7 +120,6 @@ startrule : statement(s) eofile {
 
 eofile : /^\Z/
 
-
 statement : create
   | comment_on_table
   | comment_on_column
@@ -146,7 +141,7 @@ statement : create
 
 commit : /commit/i ';'
 
-connect : /^\s*\\\connect.*\n/
+connect : /^\s*\\connect.*\n/
 
 set : /set/i /[^;]*/ ';'
 
@@ -183,7 +178,7 @@ grant : /grant/i WORD(s /,/) /on/i SCHEMA(?) schema_name /to/i name_with_opt_quo
 drop : /drop/i /[^;]*/ ';'
 
 string :
-   /'(\\.|''|[^\\\'])*'/
+   /'(\.|''|[^\\'])*'/
 
 nonstring : /[^;\'"]+/
 
@@ -827,7 +822,7 @@ alter : alter_sequence NAME /owned/i /by/i column_name ';'
 
 storage_type : /(plain|external|extended|main)/i
 
-temporary : /temp(orary)?\\b/i
+temporary : /temp(orary)?\b/i
   {
     1;
   }
@@ -1024,19 +1019,20 @@ VALUE   : /[-+]?\.?\d+(?:[eE]\d+)?/
     | /null/i
     { 'NULL' }
 
-!;
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
 
-    $::RD_TRACE  = $translator->trace ? 1 : undef;
-    $DEBUG       = $translator->debug;
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    local $::RD_TRACE  = $translator->trace ? 1 : undef;
+    local $DEBUG       = $translator->debug;
+
+    my $parser = ddl_parser_instance('PostgreSQL');
 
     my $result = $parser->startrule($data);
     die "Parse failed.\n" unless defined $result;
index c60200e..8540041 100644 (file)
@@ -19,22 +19,18 @@ should probably be considered a work in progress.
 use strict;
 use warnings;
 
-our ( $DEBUG ,$GRAMMAR, @EXPORT_OK );
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-$::RD_ERRORS = 1;
-$::RD_WARN   = 1;
-$::RD_HINT   = 1;
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q{
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 {
     my ( %tables, @table_comments, $table_order, %procedures, $proc_order, %views, $view_order );
@@ -461,19 +457,20 @@ LQUOTE : '['
 
 RQUOTE : ']'
 
-};
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('SQLServer');
 
     my $result = $parser->startrule($data);
     return $translator->error( "Parse failed." ) unless defined $result;
index 593b4ba..95c1814 100644 (file)
@@ -132,23 +132,19 @@ like-op::=
 
 use strict;
 use warnings;
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
+
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-# Enable warnings within the Parse::RecDescent module.
-$::RD_ERRORS = 1; # Make sure the parser dies when it encounters an error
-$::RD_WARN   = 1; # Enable warnings. This will warn on unused rules &c.
-$::RD_HINT   = 1; # Give out hints to help fix problems.
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q!
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 {
     my ( %tables, $table_order, @table_comments, @views, @triggers );
@@ -518,7 +514,7 @@ for_each : /FOR EACH ROW/i
 when : WHEN expr { $item[2] }
 
 string :
-   /'(\\.|''|[^\\\'])*'/
+   /'(\.|''|[^\\'])*'/
 
 nonstring : /[^;\'"]+/
 
@@ -623,19 +619,21 @@ VALUE : /[-+]?\.?\d+(?:[eE]\d+)?/
     | /CURRENT_TIMESTAMP/i
     { 'CURRENT_TIMESTAMP' }
 
-!;
+END_OF_GRAMMAR
+
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('SQLite');
 
     my $result = $parser->startrule($data);
     return $translator->error( "Parse failed." ) unless defined $result;
index ac5f1be..0cc3194 100644 (file)
@@ -21,17 +21,16 @@ the data into a database tables or graphs.
 
 use strict;
 use warnings;
-our ($DEBUG, @EXPORT_OK);
-$DEBUG = 0 unless defined $DEBUG;
 our $VERSION = '1.59';
 
+our $DEBUG;
+$DEBUG = 0 unless defined $DEBUG;
+
 use Storable;
-use Exporter;
 use SQL::Translator::Utils qw(debug normalize_name);
 
 use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+our @EXPORT_OK = qw(parse);
 
 sub parse {
     my ($translator, $data) = @_;
index cf8e063..e3fd943 100644 (file)
@@ -20,22 +20,18 @@ DBI-Sybase parser included with SQL::Translator.
 use strict;
 use warnings;
 
-our ( $DEBUG, $GRAMMAR, @EXPORT_OK );
 our $VERSION = '1.59';
+
+our $DEBUG;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
-use Parse::RecDescent;
-use Exporter;
-use base qw(Exporter);
-
-@EXPORT_OK = qw(parse);
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
-$::RD_ERRORS = 1;
-$::RD_WARN   = 1;
-$::RD_HINT   = 1;
+use base qw(Exporter);
+our @EXPORT_OK = qw(parse);
 
-$GRAMMAR = q{
+our $GRAMMAR = <<'END_OF_GRAMMAR';
 
 {
     my ( %tables, @table_comments, $table_order );
@@ -289,19 +285,20 @@ COMMA : ','
 
 QUOTE : /'/
 
-};
+END_OF_GRAMMAR
 
 sub parse {
     my ( $translator, $data ) = @_;
-    my $parser = Parse::RecDescent->new($GRAMMAR);
+
+    # Enable warnings within the Parse::RecDescent module.
+    local $::RD_ERRORS = 1 unless defined $::RD_ERRORS; # Make sure the parser dies when it encounters an error
+    local $::RD_WARN   = 1 unless defined $::RD_WARN; # Enable warnings. This will warn on unused rules &c.
+    local $::RD_HINT   = 1 unless defined $::RD_HINT; # Give out hints to help fix problems.
 
     local $::RD_TRACE  = $translator->trace ? 1 : undef;
     local $DEBUG       = $translator->debug;
 
-    unless (defined $parser) {
-        return $translator->error("Error instantiating Parse::RecDescent ".
-            "instance: Bad grammer");
-    }
+    my $parser = ddl_parser_instance('Sybase');
 
     my $result = $parser->startrule($data);
     return $translator->error( "Parse failed." ) unless defined $result;
index c0b0300..86610e4 100644 (file)
@@ -2,15 +2,18 @@ package SQL::Translator::Utils;
 
 use strict;
 use warnings;
-use base qw(Exporter);
 use Digest::SHA qw( sha1_hex );
-use Exporter;
+use File::Spec;
+use Class::Unload;
 
 our $VERSION = '1.59';
 our $DEFAULT_COMMENT = '-- ';
+
+use base qw(Exporter);
 our @EXPORT_OK = qw(
     debug normalize_name header_comment parse_list_arg truncate_id_uniquely
     $DEFAULT_COMMENT parse_mysql_version parse_dbms_version
+    ddl_parser_instance
 );
 use constant COLLISION_TAG_LENGTH => 8;
 
@@ -191,6 +194,97 @@ sub parse_dbms_version {
     }
 }
 
+my ($parsers_libdir, $checkout_dir);
+sub ddl_parser_instance {
+    my $type = shift;
+
+    # it may differ from our caller, even though currently this is not the case
+    eval "require SQL::Translator::Parser::$type"
+        or die "Unable to load grammar-spec container SQL::Translator::Parser::$type:\n$@";
+
+    unless ($parsers_libdir) {
+
+        # are we in a checkout?
+        if ($checkout_dir = _find_co_root()) {
+            $parsers_libdir = File::Spec->catdir($checkout_dir, 'share', 'PrecompiledParsers');
+        }
+        else {
+            require File::ShareDir;
+            $parsers_libdir = File::Spec->catdir(
+              File::ShareDir::dist_dir('SQL-Translator'),
+              'PrecompiledParsers'
+            );
+        }
+
+        unshift @INC, $parsers_libdir;
+    }
+
+    my $precompiled_mod = "Parse::RecDescent::DDL::SQLT::$type";
+
+    # FIXME FIXME FIXME
+    # Parse::RecDescent has horrible architecture where each precompiled parser
+    # instance shares global state with all its siblings
+    # What we do here is gross, but scarily efficient - the parser compilation
+    # is much much slower than an unload/reload cycle
+    Class::Unload->unload($precompiled_mod);
+
+    # There is also a sub-namespace that P::RD uses, but simply unsetting
+    # $^W to stop redefine warnings seems to be enough
+    #Class::Unload->unload("Parse::RecDescent::$precompiled_mod");
+
+    eval "local \$^W; require $precompiled_mod" or do {
+        if ($checkout_dir) {
+            die "Unable to find precompiled grammar for $type - run Makefile.PL to generate it\n";
+        }
+        else {
+            die "Unable to load precompiled grammar for $type... this is not supposed to happen if you are not in a checkout, please file a bugreport:\n$@"
+        }
+    };
+
+    my $grammar_spec_fn = $INC{"SQL/Translator/Parser/$type.pm"};
+    my $precompiled_fn = $INC{"Parse/RecDescent/DDL/SQLT/$type.pm"};
+
+    if (
+        (stat($grammar_spec_fn))[9]
+            >
+        (stat($precompiled_fn))[9]
+    ) {
+        die (
+            "Grammar spec '$grammar_spec_fn' is newer than precompiled parser '$precompiled_fn'"
+          . ($checkout_dir
+                ? " - run Makefile.PL to regenerate stale versions\n"
+                : "... this is not supposed to happen if you are not in a checkout, please file a bugreport\n"
+            )
+        );
+    }
+
+    return $precompiled_mod->new;
+}
+
+# Try to determine the root of a checkout/untar if possible
+# or return undef
+sub _find_co_root {
+
+    my @mod_parts = split /::/, (__PACKAGE__ . '.pm');
+    my $rel_path = join ('/', @mod_parts);  # %INC stores paths with / regardless of OS
+
+    return undef unless ($INC{$rel_path});
+
+    # a bit convoluted, but what we do here essentially is:
+    #  - get the file name of this particular module
+    #  - do 'cd ..' as many times as necessary to get to lib/SQL/Translator/../../..
+
+    my $root = (File::Spec::Unix->splitpath($INC{$rel_path}))[1];
+    for (1 .. @mod_parts) {
+        $root = File::Spec->catdir($root, File::Spec->updir);
+    }
+
+    return ( -f File::Spec->catfile($root, 'Makefile.PL') )
+        ? $root
+        : undef
+    ;
+}
+
 1;
 
 =pod
diff --git a/share/Grammar/DB2.gra b/share/Grammar/DB2.gra
deleted file mode 100644 (file)
index 2fcc551..0000000
+++ /dev/null
@@ -1,627 +0,0 @@
-
-{
-    my ( %tables, $table_order, @table_comments, @views, @triggers );
-}
-
-#
-# The "eofile" rule makes the parser fail if any "statement" rule
-# fails.  Otherwise, the first successful match by a "statement"
-# won't cause the failure needed to know that the parse, as a whole,
-# failed. -ky
-#
-startrule : statement(s) eofile {
-    $return      = {
-        tables   => \%tables,
-        views    => \@views,
-        triggers => \@triggers,
-    }
-}
-
-eofile : /^\Z/
-
-statement : 
-    comment
-    | create
-    | <error>
-
-comment : /^\s*-{2}.*\n/
-    {
-        my $comment =  $item[1];
-        $comment    =~ s/^\s*(-{2})\s*//;
-        $comment    =~ s/\s*$//;
-        $return     = $comment;
-    }
-
-
-create: CREATE TRIGGER trigger_name before type /ON/i table_name reference_b(?) /FOR EACH ROW/i 'MODE DB2SQL' triggered_action
-{
-    my $table_name = $item{'table_name'}{'name'};
-    $return =  {
-        table      => $table_name,
-        schema     => $item{'trigger_name'}{'schema'},
-        name       => $item{'trigger_name'}{'name'},
-        when       => 'before',
-        db_event   => $item{'type'}->{'event'},
-        fields     => $item{'type'}{'fields'},
-        condition  => $item{'triggered_action'}{'condition'},
-        reference  => $item{'reference_b'},
-        granularity => $item[9],
-        action     => $item{'triggered_action'}{'statement'}
-    };
-
-    push @triggers, $return;
-}
-
-create: CREATE TRIGGER trigger_name after type /ON/i table_name reference_a(?) /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action
-{
-    my $table_name = $item{'table_name'}{'name'};
-    $return = {
-        table      => $table_name,
-        schema     => $item{'trigger_name'}{'schema'},
-        name       => $item{'trigger_name'}{'name'},
-        when       => 'after',
-        db_event   => $item{'type'}{'event'},
-        fields     => $item{'type'}{'fields'},
-        condition  => $item{'triggered_action'}{'condition'},
-        reference  => $item{'reference_a'},
-        granularity => $item[9],
-        action     => $item{'triggered_action'}{'statement'}
-    };
-
-    push @triggers, $return;
-}
-
-create: CREATE /FEDERATED|/i VIEW view_name column_list(?) /AS/i with_expression(?) SQL_procedure_statement
-{
-    $return = {
-        name   => $item{view_name}{name},
-        sql    => $item{SQL_procedure_statement},
-        with   => $item{'with_expression(?)'},
-        fields => $item{'column_list(?)'}
-    };
-    push @views, $return;
-}
-
-# create: CREATE /FEDERATED/i VIEW view_name col_list_or_of(?) /AS/i with_expression(?) fullselect options(?)
-
-# col_list_or_of: column_list | /OF/i ( root_view_definition | subview_definition )
-
-with_expression: /WITH/i common_table_expression(s /,/)
-{
-    $return = $item{'common_table_expression'};
-}
-
-SQL_procedure_statement: /[^;]*/ /(;|\z)/ { $return = $item[1] . $item[2] }
-
-column_list: '(' column_name(s /,/) ')'
-{
-    $return = join(' ', '(', @{$item[2]}, ')');
-}
-
-CREATE: /create/i
-
-TRIGGER: /trigger/i
-
-VIEW: /view/i
-
-INNER: /inner/i
-
-LEFT: /left/i
-
-RIGHT: /right/i
-
-FULL: /full/i
-
-OUTER: /outer/i
-
-WHERE: /where/i
-trigger_name: SCHEMA '.' NAME
-    { $return = { schema => $item[1], name => $item[3] } }
-    | NAME
-    { $return = { name => $item[1] } } 
-
-table_name: SCHEMA '.' NAME
-    { $return = { schema => $item[1], name => $item[3] } }
-    | NAME
-    { $return = { name => $item[1] } } 
-
-view_name: SCHEMA '.' NAME
-    { $return = { schema => $item[1], name => $item[3] } }
-    | NAME
-    { $return = { name => $item[1] } } 
-
-column_name: NAME
-
-identifier: NAME
-
-correlation_name: NAME
-
-numeric_constant: /\d+/
-
-SCHEMA: /\w+/
-
-SCHEMA: /\w{1,128}/
-
-NAME: /\w+/
-
-NAME: /\w{1,18}/
-options: /WITH/i ( /CASCADED/i | /LOCAL/i ) /CHECK\s+OPTION/i
-
-# root_view_definition: /MODE\s+DB2SQL/i '(' oid_column ( /,/ with_options )(?) ')'
-
-# subview_definition: /MODE\s+DB2SQL/i under_clause ( '(' with_options ')' )(?) /EXTEND/i(?)
-
-# oid_column: /REF\s+IS/i oid_column_name /USER\s+GENERATED\s+UNCHECKED/i(?)
-
-# with_options: ( column_name /WITH\s+OPTIONS/i ( /SCOPE/i ( typed_table_name | typed_view_name ) | /READ\s+ONLY/i )(s /,/) )(s /,/)
-
-# under_clause: /UNDER/i superview_name /INHERIT\s+SELECT\s+PRIVILEGES/i
-
-common_table_expression: table_name column_list /AS/i get_bracketed
-{
-    $return = { name  => $item{table_name}{name}, 
-                query => $item[4]
-                };
-}
-
-get_bracketed:  
-{ 
-    extract_bracketed($text, '(');
-}
-
-common_table_expression: table_name column_list /AS/i '(' fullselect ')'
-
-# fullselect: ( subselect | '(' fullselect ')' | values_clause ) ( ( /UNION/i | /UNION/i /ALL/i | /EXCEPT/i | /EXCEPT/i /ALL/i | /INTERSECT/i | /INTERSECT/i /ALL/i ) ( subselect | '(' fullselect ')' | values_clause ) )(s)
-
-# values_clause: /VALUES/i values_row(s /,/) 
-
-# values_row: ( expression | /NULL/i ) | '(' ( expression | /NULL/i )(s /,/) ')'
-
-# subselect:  select_clause from_clause where_clause(?) group_by_clause(?) having_clause(?)
-
-# select_clause: SELECT ( /ALL/i | /DISTINCT )(?) ( '*' | ( expression ( /AS|/i new_column_name )(?) | exposed_name '.*' )(s /,/) )
-
-# from_clause: /FROM/i table_name(s /,/)
-
-# from_clause: /FROM/i table_reference(s /,/)
-
-# table_reference:  
-#     ( 
-#       ( nickname 
-#       | table_name 
-#       | view_name 
-#       ) 
-#     | ( /ONLY/i
-#       | /OUTER/i 
-#       ) '(' 
-#       ( table_name 
-#       | view_name 
-#       ) ')' 
-#     ) correlation_clause(?) 
-#   | TABLE '(' function_name '(' expression(s? /,/) ')' ')'  correlation_clause 
-#   | TABLE(?) '(' fullselect ')' correlation_clause 
-#   | joined_table 
-  
-
-# correlation_clause: /AS/i(?) correlation_name column_list(?)
-
-# joined_table: 
-#    table_reference ( INNER 
-#                     | outer 
-#                     )(?) JOIN table_reference ON join_condition
-#   | '(' joined_table ')'
-  
-# outer: ( LEFT | RIGHT | FULL ) OUTER(?)
-
-where_clause: WHERE search_condition
-
-# group_by_clause: /GROUP\s+BY/i ( grouping_expression 
-#                                | grouping_sets
-#                                | super_groups
-#                                )(s /,/)
-
-# grouping_expression: expression
-
-# orderby_clause: /ORDER\s+BY/i ( sort_key ( /ASC/i | /DESC/i)(?) )(s /,/)
-
-# sort_key: simple_column_name | simple_integer | sort_key_expression
-
-# # Name of one of the selected columns!
-# simple_column_name: NAME
-
-# simple_integer: /\d+/ 
-#   { $item[1] <= $numberofcolumns && $item[1] > 1 }
-
-# sort_key_expression: expression
-#   { expression from select columns list, grouping_expression, column function.. }
-
-# grouping_sets: /GROUPING\s+SETS/i '(' ( 
-#                                         ( grouping_expression 
-#                                         | super_groups 
-#                                         ) 
-#                                       | '(' ( grouping_expression 
-#                                             | super_groups 
-#                                             )(s /,/) ')' 
-#                                       )(s /,/) ')' 
-
-# super_groups: /ROLLUP/i '(' grouping_expression_list ')' 
-#            | /CUBE/i '(' grouping_expression_list ')'
-#            | grand_total
-
-# grouping_expression_list:  ( grouping_expression 
-#                            | '(' grouping_expression(s /,/) ')' 
-#                            )(s /,/)
-
-# grand_total: '(' ')'
-
-# having_clause: /HAVING/i search_condition
-
-when_clause: /WHEN/i '(' search_condition ')' {$return = $item[3]}
-
-triggered_action: when_clause(?) SQL_procedure_statement
-{ $return = { 'condition' => $item[1][0],
-              'statement' => $item{'SQL_procedure_statement'} };
-}
-
-before: /NO CASCADE BEFORE/i
-
-after: /AFTER/i
-
-type: /UPDATE/i /OF/i column_name(s /,/) 
-{ $return = { event  => 'update_on',
-              fields => $item[3] }
-}
-
-type: ( /INSERT/i | /DELETE/i | /UPDATE/i )
-{ $return = { event => $item[1] } }
-
-reference_b: /REFERENCING/i old_new_corr(0..2)
-{ $return = join(' ', $item[1], join(' ', @{$item[2]}) ) }
-
-reference_a: /REFERENCING/i old_new_corr(0..2) old_new_table(0..2) 
-{ $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]})  ) }
-
-old_new_corr: /OLD/i /(AS)?/i correlation_name 
-{ $return = join(' ', @item[1..3] ) }
-| /NEW/i /(AS)?/i correlation_name
-{ $return = join(' ', @item[1..3] ) }
-
-old_new_table: /OLD_TABLE/i /(AS)?/i identifier
-{ $return = join(' ', @item[1..3] ) }
-| /NEW_TABLE/i /(AS)?/i identifier
-{ $return = join(' ', @item[1..3] ) }
-
-# Just parsing simple search conditions for now.
-search_condition: /[^)]+/
-
-expression: ( 
-              ( '+' 
-              | '-' 
-              )(?) 
-              ( function
-              | '(' expression ')'
-              | constant
-              | column_name
-              | host_variable
-              | special_register
-              | '(' scalar_fullselect ')' 
-              | labeled_duration
-              | case_expression
-              | cast_specification
-#              | dereference_operation
-              | OLAP_function
-              | method_invocation
-              | subtype_treatment
-              | sequence_reference 
-              )
-            )(s /operator/)
-
-operator: ( /CONCAT/i | '||' ) | '/' | '*' | '+' | '-' 
-
-function: ( /SYSIBM\.|/i sysibm_function 
-          | /SYSFUN\.|/i sysfun_function
-          | userdefined_function 
-          ) '(' func_args(s /,/)  ')'
-
-constant: int_const | float_const | dec_const | char_const | hex_const | grastr_const
-
-func_args: expression
-
-sysibm_function: ( /ABS/i | /ABSVAL/i )
-                | /AVG/i
-                | /BIGINT/i
-                | /BLOB/i
-                | /CHAR/i
-                | /CLOB/i
-                | /COALESCE/i
-                | ( /CONCAT/ | '||' )
-                | ( /CORRELATION/i | /CORR/ )
-                | /COUNT/i
-                | /COUNT_BIG/i
-                | (/COVARIANCE/i | /COVAR/i )
-                | /DATE/i
-                | /DAY/i
-                | /DAYS/i
-                | /DBCLOB/i
-                | ( /DECIMAL/i | /DEC/i )
-                | /DECRYPT_BIN/i
-                | /DECRYPT_CHAR/i
-                | /DEREF/i
-                | /DIGITS/i
-                | /DLCOMMENT/i
-                | /DLLINKTYPE/i
-                | /DLURLCOMPLETE/i
-                | /DLURLPATH/i
-                | /DLURLPATHONLY/i
-                | /DLURLSCHEME/i
-                | /DLURLSERVER/i
-                | /DLVALUE/i
-                | ( /DOUBLE/i | /DOUBLE_PRECISION/i )
-                | /ENCRYPT/i
-                | /EVENT_MON_STATE/i
-                | /FLOAT/i
-                | /GETHINT/i
-                | /GENERATE_UNIQUE/i
-                | /GRAPHIC/i
-                | /GROUPING/i
-                | /HEX/i
-                | /HOUR/i
-                | /IDENTITY_VAL_LOCAL/i
-                | ( /INTEGER/i | /INT/ )
-                | ( /LCASE/i | /LOWER/ )
-                | /LENGTH/i
-                | /LONG_VARCHAR/i
-                | /LONG_VARGRAPHIC/i
-                | /LTRIM/i
-                | /MAX/i
-                | /MICROSECOND/i
-                | /MIN/i
-                | /MINUTE/i
-                | /MONTH/i
-                | /MULTIPLY_ACT/i
-                | /NODENUMBER/i
-                | /NULLIF/i
-                | /PARTITON/i
-                | /POSSTR/i
-                | /RAISE_ERROR/i
-                | /REAL/i
-                | /REC2XML/i
-                | /REGR_AVGX/i
-                | /REGR_AVGY/i
-                | /REGR_COUNT/i
-                | ( /REGR_INTERCEPT/i | /REGR_ICPT/i )
-                | /REGR_R2/i
-                | /REGR_SLOPE/i
-                | /REGR_SXX/i
-                | /REGR_SXY/i
-                | /REGR_SYY/i
-                | /RTRIM/i
-                | /SECOND/i
-                | /SMALLINT/i
-                | /STDDEV/i
-                | /SUBSTR/i
-                | /SUM/i
-                | /TABLE_NAME/i
-                | /TABLE_SCHEMA/i
-                | /TIME/i
-                | /TIMESTAMP/i
-                | /TRANSLATE/i
-                | /TYPE_ID/i
-                | /TYPE_NAME/i
-                | /TYPE_SCHEMA/i
-                | ( /UCASE/i | /UPPER/i )
-                | /VALUE/i
-                | /VARCHAR/i
-                | /VARGRAPHIC/i
-                | ( /VARIANCE/i | /VAR/i )
-                | /YEAR/i
-
-sysfun: ( /ABS/i | /ABSVAL/i )
-                | /ACOS/i
-                | /ASCII/i
-                | /ASIN/i
-                | /ATAN/i
-                | /ATAN2/i
-                | ( /CEIL/i | /CEILING/i )
-                | /CHAR/i
-                | /CHR/i
-                | /COS/i
-                | /COT/i
-                | /DAYNAME/i
-                | /DAYOFWEEK/i
-                | /DAYOFWEEK_ISO/i
-                | /DAYOFYEAR/i
-                | /DEGREES/i
-                | /DIFFERENCE/i
-                | /DOUBLE/i
-                | /EXP/i
-                | /FLOOR/i
-                | /GET_ROUTINE_SAR/i
-                | /INSERT/i
-                | /JULIAN_DAY/i
-                | /LCASE/i
-                | /LEFT/i
-                | /LN/i
-                | /LOCATE/i
-                | /LOG/i
-                | /LOG10/i
-                | /LTRIM/i
-                | /MIDNIGHT_SECONDS/i
-                | /MOD/i
-                | /MONTHNAME/i
-                | /POWER/i
-                | /PUT_ROUTINE_SAR/i
-                | /QUARTER/i
-                | /RADIANS/i
-                | /RAND/i
-                | /REPEAT/i
-                | /REPLACE/i
-                | /RIGHT/i
-                | /ROUND/i
-                | /RTRIM/I
-                | /SIGN/i
-                | /SIN/i
-                | /SOUNDEX/i
-                | /SPACE/i
-                | /SQLCACHE_SNAPSHOT/i
-                | /SQRT/i
-                | /TAN/i
-                | /TIMESTAMP_ISO/i
-                | /TIMESTAMPDIFF/i
-                | ( /TRUNCATE/i | /TRUNC/i )
-                | /UCASE/i
-                | /WEEK/i
-                | /WEEK_ISO/i
-
-scalar_fullselect: '(' fullselect ')'
-
-labeled_duration: ld_type ld_duration
-
-ld_type: function 
-       | '(' expression ')' 
-       | constant 
-       | column_name 
-       | host_variable
-
-ld_duration: /YEARS?/i 
-           | /MONTHS?/i 
-           | /DAYS?/i 
-           | /HOURS?/i 
-           | /MINUTES?/i
-           | /SECONDS?/i
-           | /MICROSECONDS?/i
-
-case_expression: /CASE/i ( searched_when_clause 
-                         | simple_when_clause 
-                         ) 
-                         ( /ELSE\s+NULL/i 
-                         | /ELSE/i result_expression 
-                         )(?) /END/i
-
-searched_when_clause: ( /WHEN/i search_condition /THEN/i 
-                        ( result_expression 
-                        | /NULL/i
-                        )
-                      )(s)
-
-simple_when_clause: expression ( /WHEN/i search_condition /THEN/i 
-                                 ( result_expression 
-                                 | /NULL/i
-                                 )
-                               )(s)
-
-result_expression: expression 
-
-cast_specification: /CAST/i '(' ( expression 
-                                | /NULL/i
-                                | parameter_marker
-                                ) /AS/i data_type 
-                                  ( /SCOPE/ ( typed_table_name 
-                                            | typed_view_name
-                                            )
-                                  )(?) ')'
-
-dereference_operation: scoped_reference_expression '->' name1 
-                      (  '(' expression(s) ')' )(?)
-#                         ( '(' expression(s /,/) ')' )(?)
-
-
-
-scoped_reference_expression: expression 
-{ # scoped, reference 
-}
-
-name1: NAME
-
-OLAP_function: ranking_function 
-             | numbering_function
-             | aggregation_function
-
-ranking_function: ( /RANK/ '()' 
-                  | /DENSE_RANK|DENSERANK/i '()' 
-                  ) /OVER/i '(' window_partition_clause(?) window_order_clause ')'
-
-numbering_function: /ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause(?) 
-                      ( window_order_clause window_aggregation_group_clause(?) 
-                      )(?) 
-                      ( /RANGE\s+BETWEEN\s+UNBOUNDED\s+PRECEDING\s+AND\s+UNBBOUNDED\s+FOLLOWING/i 
-                      | window_aggregation_group_clause
-                      )(?) ')'
-
-window_partition_clause: /PARTITION\s+BY/i partitioning_expression(s /,/)
-
-window_order_clause: /ORDER\s+BY/i 
-                      ( sort_key_expression 
-                        ( asc_option 
-                        | desc_option 
-                        )(?)
-                      )(s /,/)
-
-asc_option: /ASC/i ( /NULLS\s+FIRST/i | /NULLS\s+LAST/i )(?)
-
-desc_option: /DESC/i ( /NULLS\s+FIRST/i | /NULLS\s+LAST/i )(?)
-
-window_aggregation_group_clause: ( /ROWS/i
-                                 | /RANGE/i
-                                 ) 
-                                 ( group_start
-                                 | group_between
-                                 | group_end
-                                 )
-
-group_start: /UNBOUNDED\s+PRECEDING/i 
-           | unsigned_constant /PRECEDING/i
-           | /CURRENT\s+ROW/i
-
-group_between: /BETWEEN/i group_bound1 /AND/i group_bound2
-
-group_bound1: /UNBOUNDED\s+PRECEDING/i 
-           | unsigned_constant /PRECEDING/i
-           | unsigned_constant /FOLLOWING/i
-           | /CURRENT\s+ROW/i
-
-group_bound2: /UNBOUNDED\s+PRECEDING/i 
-           | unsigned_constant /PRECEDING/i
-           | unsigned_constant /FOLLOWING/i
-           | /CURRENT\s+ROW/i
-
-group_end: /UNBOUNDED\s+PRECEDING/i 
-           | unsigned_constant /FOLLOWING/i 
-
-method_invocation: subject_expression '..' method_name
-                    ( '(' expression(s) ')' 
-#                    ( '(' expression(s /,/) ')' 
-                    )(?)
-
-subject_expression: expression
-{ # with static result type that is a used-defined struct type 
-}
-
-method_name: NAME
-{ # must be a method of subject_expression 
-}
-
-subtype_treatment: /TREAT/i '(' expression /AS/i data_type ')'
-
-sequence_reference: nextval_expression
-                  | prevval_expression
-
-nextval_expression: /NEXTVAL\s+FOR/i sequence_name
-
-prevval_expression: /PREVVAL\s+FOR/i sequence_name
-
-sequence_name: NAME
-
-
-search_condition: /NOT|/i ( predicate ( /SELECTIVITY/i numeric_constant )(?) | '(' search_condition ')' ) cond(s?)
-
-cond: ( /AND/i | /OR/i ) /NOT|/i ( predicate ( /SELECTIVITY/i numeric_constant )(?) | '(' search_condition ')' )
-
-predicate: basic_p | quantified_p | between_p | exists_p | in_p | like_p | null_p | type_p 
-
-basic_p: expression /(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=)/ expression
-
-quantified_p: expression1 /(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=)/ /SOME|ANY|ALL/i '(' fullselect ')'
-
diff --git a/share/PrecompiledParsers/Parse/RecDescent/DDL/SQLT/README b/share/PrecompiledParsers/Parse/RecDescent/DDL/SQLT/README
new file mode 100644 (file)
index 0000000..34249a2
--- /dev/null
@@ -0,0 +1,2 @@
+The contents of this directory are automatically regenerated when
+invoking Makefile.PL in author mode.
index 2ac1a92..4dd921c 100644 (file)
@@ -873,7 +873,9 @@ ok ($@, 'Exception thrown on invalid version string');
 
 {
     # silence PR::D from spewing on STDERR
-    local ($::RD_ERRORS, $::RD_WARN,$::RD_HINT,$::RD_TRACE);
+    local $::RD_ERRORS = 0;
+    local $::RD_WARN = 0;
+    local $::RD_HINT = 0;
     my $tr = SQL::Translator->new;
     my $data = q|create table "sessions" (
         id char(32) not null default,
index f2d491a..35bda26 100644 (file)
@@ -8,6 +8,7 @@ use Test::Differences;
 use FindBin qw/$Bin/;
 
 use SQL::Translator;
+use SQL::Translator::Utils qw/ddl_parser_instance/;
 
 
 ### Set $ENV{SQLTTEST_RT_DEBUG} = 1 for more output
@@ -17,9 +18,11 @@ my $plan = [
   {
     engine => 'XML',
     req => 'XML::LibXML 1.69',
+    no_grammar => 1,
   },
   {
     engine => 'YAML',
+    no_grammar => 1,
   },
 
   {
@@ -55,24 +58,24 @@ my $plan = [
     parser_args => {},
   },
 
-#  {
-#    engine => 'Oracle',
-#    producer_args => {},
-#    parser_args => {},
-#    todo => 'Needs volunteers',
-#  },
-#  {
-#    engine => 'Sybase',
-#    producer_args => {},
-#    parser_args => {},
-#    todo => 'Needs volunteers',
-#  },
-#  {
-#    engine => 'DB2',
-#    producer_args => {},
-#    parser_args => {},
-#    todo => 'Needs volunteers',
-#  },
+  {
+    engine => 'Oracle',
+    producer_args => {},
+    parser_args => {},
+    todo => 'Needs volunteers',
+  },
+  {
+    engine => 'Sybase',
+    producer_args => {},
+    parser_args => {},
+    todo => 'Needs volunteers',
+  },
+  {
+    engine => 'DB2',
+    producer_args => {},
+    parser_args => {},
+    todo => 'Needs volunteers',
+  },
 
 # There is no Access producer
 #  {
@@ -121,9 +124,21 @@ for my $args (@$plan) {
       );
     }
 
+    use_ok("SQL::Translator::Producer::$args->{engine}");
+    use_ok("SQL::Translator::Parser::$args->{engine}");
+
+    ok(ddl_parser_instance($args->{engine}), 'Got proper parser instance')
+      unless $args->{no_grammar};
+
     TODO: {
       local $TODO = $args->{todo} if $args->{todo};
 
+      no warnings 'once';
+      # silence PR::D from spewing on STDERR
+      local $::RD_ERRORS = 0 if $args->{todo};
+      local $::RD_WARN = 0 if $args->{todo};
+      local $::RD_HINT = 0 if $args->{todo};
+
       lives_ok (
         sub { check_roundtrip ($args, $base_schema) },
         "Round trip for $args->{name} did not throw an exception",