List:Commits« Previous MessageNext Message »
From:mcbrown Date:December 21 2007 12:16pm
Subject:svn commit - mysqldoc@docsrva: r9429 - trunk/tools/MySQL/DynXML
View as plain text  
Author: mcbrown
Date: 2007-12-21 13:16:20 +0100 (Fri, 21 Dec 2007)
New Revision: 9429

Log:
Interim fix for the optvar parser

For mysqld we have very few instances where there are multiple command-line/config files for the same item
This fix addresses the inability of the parser to handle that situation by moving the definitions into individual hashes within an array of possible values. This will also provide the base for changing the output based on a 'later' setting where the different entry overrides the original setting. 

The interim fix addresses the issue for commands, but not the mysqld option output, as this requires rebuilding the tables and how they are generated slightly. This fix will continue to output tables in an identical format to the current output. 




Modified:
   trunk/tools/MySQL/DynXML/Optvar.pm
   trunk/tools/MySQL/DynXML/OptvarParser.pm


Modified: trunk/tools/MySQL/DynXML/Optvar.pm
===================================================================
--- trunk/tools/MySQL/DynXML/Optvar.pm	2007-12-21 03:20:13 UTC (rev 9428)
+++ trunk/tools/MySQL/DynXML/Optvar.pm	2007-12-21 12:16:20 UTC (rev 9429)
Changed blocks: 11, Lines Added: 65, Lines Deleted: 66; 12535 bytes

@@ -282,14 +282,14 @@
 <title><command>$options->{command}</command> Option Reference</title>
 <tgroup cols="4">
 <colspec colwidth="20*"/>
-<colspec colwidth="60*"/>
+<colspec colwidth="20*"/>
+<colspec colwidth="50*"/>
 <colspec colwidth="10*"/>
-<colspec colwidth="10*"/>
 <thead>
 <row>
 <entry><emphasis role="bold">Format</emphasis></entry>
-<entry><emphasis role="bold">Description</emphasis></entry>
 <entry><emphasis role="bold">Config File</emphasis></entry>
+<entry><emphasis role="bold">Description</emphasis></entry>
 <entry><emphasis role="bold">Introduced</emphasis></entry>
 </row>
 </thead>

@@ -298,14 +298,19 @@
 
     foreach my $id (@{$idlist})
     {
-        my @cmdline = keys %{$td->{$id}->{type}->{cmdline}};
-        my @cnffile = keys %{$td->{$id}->{type}->{mycnf}};
-        my $rowspan = scalar (@cmdline) + scalar (@cnffile);
-        my $counter = 0;
-        foreach my $cmdline (@cmdline)
-        {
-            my $format = $td->{$id}->{type}->{cmdline}->{$cmdline};
+        my @cmdline = ();
+        @cmdline = @{$td->{$id}->{type}->{cmdline}} if (exists($td->{$id}->{type}->{cmdline}));
 
+        my @cnffile = ();
+        @cnffile = @{$td->{$id}->{type}->{mycnf}} if (exists($td->{$id}->{type}->{mycnf}));
+
+        my $rowspan = scalar (@cmdline);
+
+        my @conffileopts = ();
+
+        foreach my $conf (sort { $a->{format} cmp $b->{format} } @cnffile)
+        {
+            my $format = $conf->{format};
             if (exists($td->{$id}->{xrefto}) &&
                 exists($idmap->{byprefixid}->{sprintf('refman-%s',$options->{version})}->{$td->{$id}->{xrefto}}))
             {

@@ -313,48 +318,42 @@
                                   $td->{$id}->{xrefto},
                                   $format);
             }
-
-            my @rowcontent = ();
-            if ($counter == 0)
-            {
-                push(@rowcontent,
-                     xml_entry($format),
-                     xml_entry({morerows => scalar(@cmdline)},
-                               $td->{$id}->{shortdescription}),
-                     xml_entry(''),
-                     xml_entry($td->{$id}->{introduced}->{$options->{version}}->{real} || ''),
-                    );
-            }
-            else
-            {
-                push(@rowcontent,
-                     xml_entry($format),
-                    );
-            }
-            $counter++;
-            print $outfile xml_row(@rowcontent);
+            push @conffileopts,$format;
         }
-        $counter = 0;
-        foreach my $conf (@cnffile)
+
+        my $counter = 0;
+        foreach my $cmdline (sort { $a->{format} cmp $b->{format} } @cmdline)
         {
-            my $format = $td->{$id}->{type}->{mycnf}->{$conf};
+            my $format = $cmdline->{format};
+
             if (exists($td->{$id}->{xrefto}) &&
-                exists($idmap->{byid}->{$td->{$id}->{xrefto}}))
+                exists($idmap->{byprefixid}->{sprintf('refman-%s',$options->{version})}->{$td->{$id}->{xrefto}}))
             {
-                $format = sprintf('<xref linkend="%s">%s</xref>',
+                $format = sprintf('<link linkend="%s">%s</link>',
                                   $td->{$id}->{xrefto},
                                   $format);
             }
+
             my @rowcontent = ();
             if ($counter == 0)
             {
                 push(@rowcontent,
                      xml_entry($format),
-                     xml_entry({rowspan => scalar(@cnffile)},
-                               $td->{$id}->{shortdescription}),
-                     xml_entry('yes'),
-                     xml_entry($td->{$id}->{introduced}->{$options->{version}}->{real} || ''),
-                    );
+                     xml_entry(join(", ",@conffileopts)));
+                if ($rowspan > 1)
+                {
+                    push(@rowcontent,
+                         xml_entry({morerows => $rowspan-1},
+                                   $td->{$id}->{shortdescription}));
+                }
+                else
+                {
+                    push(@rowcontent,
+                         xml_entry($td->{$id}->{shortdescription}));
+                }                    
+                push(@rowcontent,
+                         xml_entry($td->{$id}->{introduced}->{$options->{version}}->{real} || ''),
+                        );
             }
             else
             {

@@ -561,10 +560,10 @@
     compound_optype($item,'mycnf','Config File Format',$iodest,$options);
     
     print $iodest (xml_row(xml_entry(xml_bold('Option Sets Variable')),
-                           xml_entry('Yes, ',xml_literal($item->{type}->{cmdline}->{setvar} ||
-                                                         $item->{type}->{mycnf}->{setvar}))))
-        if (exists($item->{type}->{cmdline}->{setvar}) ||
-            exists($item->{type}->{mycnf}->{setvar}));
+                           xml_entry('Yes, ',xml_literal($item->{type}->{cmdline}->[0]->{setvar} ||
+                                                         $item->{type}->{mycnf}->[0]->{setvar}))))
+        if (exists($item->{type}->{cmdline}->[0]->{setvar}) ||
+            exists($item->{type}->{mycnf}->[0]->{setvar}));
     
     if (exists($item->{type}->{systemvar}) &&
         exists($item->{type}->{statusvar}))

@@ -887,8 +886,8 @@
 
 foreach my $id (@{$idlist})
 {
-    my $id_text = xml_literal($td->{$id}->{type}->{cmdline}->{setvar} || 
-                              $td->{$id}->{type}->{mycnf}->{setvar} || 
+    my $id_text = xml_literal($td->{$id}->{type}->{cmdline}->[0]->{setvar} || 
+                              $td->{$id}->{type}->{mycnf}->[0]->{setvar} || 
                               $td->{$id}->{type}->{systemvar}->{format} || 
                               $id);
     if (exists($td->{$id}->{xrefto}) && 

@@ -1026,8 +1025,8 @@
             push @{$row},'';
         }
 
-        if (exists($td->{$id}->{type}->{cmdline}->{setvar}) && 
-            ($td->{$id}->{type}->{cmdline}->{setvar} ne $id))
+        if (exists($td->{$id}->{type}->{cmdline}->[0]->{setvar}) && 
+            ($td->{$id}->{type}->{cmdline}->[0]->{setvar} ne $id))
         {
             $varrow = [];
             push @{$varrow},@{$row};

@@ -1048,11 +1047,11 @@
             $varrow->[1] = '';
             $varrow->[2] = '';
             $varrow->[0] = sprintf(' - <emphasis>Variable</emphasis>: %s',
-                                   $td->{$id}->{type}->{cmdline}->{setvar});
+                                   $td->{$id}->{type}->{cmdline}->[0]->{setvar});
             print $iodest summaryrow($varrow,{},$idmap);
         }
-        elsif (exists($td->{$id}->{type}->{mycnf}->{setvar}) && 
-               ($td->{$id}->{type}->{mycnf}->{setvar} ne $id))
+        elsif (exists($td->{$id}->{type}->{mycnf}->[0]->{setvar}) && 
+               ($td->{$id}->{type}->{mycnf}->[0]->{setvar} ne $id))
         {
             $varrow = [];
             push @{$varrow},@{$row};

@@ -1072,7 +1071,7 @@
             $varrow->[1] = '';
             $varrow->[2] = '';
             $varrow->[0] = sprintf(' - <emphasis>Variable</emphasis>: %s',
-                                   $td->{$id}->{type}->{mycnf}->{setvar});
+                                   $td->{$id}->{type}->{mycnf}->[0]{setvar});
             print $iodest summaryrow($varrow,{},$idmap);
         }
         else

@@ -1179,31 +1178,31 @@
 
     if (exists($item->{type}->{$type}))
     {
-        if (exists($item->{type}->{$type}->{inversion}) &&
-            exists($item->{type}->{$type}->{outversion}))
+        if (exists($item->{type}->{$type}->[0]->{inversion}) &&
+            exists($item->{type}->{$type}->[0]->{outversion}))
         {
             printf $iodest (xml_row(xml_entry(xml_bold($fieldtitle)),
                                       xml_entrytbl(xml_row(
-                                                           xml_entry(xml_literal($item->{type}->{$type}->{format} || 
+                                                           xml_entry(xml_literal($item->{type}->{$type}->[0]->{format} || 
                                                                                  $item->{id})),
                                                            xml_entry(sprintf('%s-%s',
-                                                                             $item->{type}->{$type}->{inversion},
-                                                                             $item->{type}->{$type}->{outversion})
+                                                                             $item->{type}->{$type}->[0]->{inversion},
+                                                                             $item->{type}->{$type}->[0]->{outversion})
                                                                      )
                                                            )
                                                    )
                                       )
                               );
         }
-        elsif (exists($item->{type}->{$type}->{inversion}))
+        elsif (exists($item->{type}->{$type}->[0]->{inversion}))
         {
             if (defined($item->{introduced}->{$options->{version}}->{real}) && 
                 ($item->{type}->{$type}->{inversion} ne $item->{introduced}->{$options->{version}}->{real}))
             {
                 printf $iodest (xml_row(xml_entry(xml_bold($fieldtitle)),
-                                          xml_entrytbl(xml_row(xml_entry(xml_literal($item->{type}->{$type}->{format} || 
+                                          xml_entrytbl(xml_row(xml_entry(xml_literal($item->{type}->{$type}->[0]->{format} || 
                                                                                      $item->{id})),
-                                                               xml_entry($item->{type}->{$type}->{inversion})
+                                                               xml_entry($item->{type}->{$type}->[0]->{inversion})
                                                                )
                                                        )
                                           )

@@ -1212,21 +1211,21 @@
             else
             {
                 printf $iodest (xml_row(xml_entry(xml_bold($fieldtitle)),
-                                          xml_entry(xml_literal($item->{type}->{$type}->{format} || $item->{id}))
+                                          xml_entry(xml_literal($item->{type}->{$type}->[0]->{format} || $item->{id}))
                                           )
                                   );
             }
         }
-        elsif (exists($item->{type}->{$type}->{outversion}))
+        elsif (exists($item->{type}->{$type}->[0]->{outversion}))
         {
             if (exists($item->{deprecated}->{version}) && 
-                ($item->{type}->{$type}->{outversion} ne $item->{deprecated}->{version}))
+                ($item->{type}->{$type}->[0]->{outversion} ne $item->{deprecated}->{version}))
             {
                 printf $iodest (xml_row(xml_entry(xml_bold($fieldtitle)),
-                                          xml_entrytbl(xml_row(xml_entry(xml_literal($item->{type}->{$type}->{format} || 
+                                          xml_entrytbl(xml_row(xml_entry(xml_literal($item->{type}->{$type}->[0]->{format} || 
                                                                                      $item->{id})),
                                                                xml_entry(sprintf('(until %s)',
-                                                                                 $item->{type}->{$type}->{outversion})
+                                                                                 $item->{type}->{$type}->[0]->{outversion})
                                                                          )
                                                                )
                                                        )

@@ -1236,7 +1235,7 @@
             else
             {
                 printf $iodest (xml_row(xml_entry(xml_bold($fieldtitle)),
-                                          xml_entry(xml_literal($item->{type}->{$type}->{format} || $item->{id}))
+                                          xml_entry(xml_literal($item->{type}->{$type}->[0]->{format} || $item->{id}))
                                           )
                                   );
             }


Modified: trunk/tools/MySQL/DynXML/OptvarParser.pm
===================================================================
--- trunk/tools/MySQL/DynXML/OptvarParser.pm	2007-12-21 03:20:13 UTC (rev 9428)
+++ trunk/tools/MySQL/DynXML/OptvarParser.pm	2007-12-21 12:16:20 UTC (rev 9429)
Changed blocks: 1, Lines Added: 7, Lines Deleted: 3; 1327 bytes

@@ -109,15 +109,19 @@
 
     if ($element->{Name} eq 'optype')
     {
-        $self->{tabledata}->{$self->{currentid}}->{type}->{$element->{Attributes}->{class}} = {};
+        $self->{tabledata}->{$self->{currentid}}->{type}->{$element->{Attributes}->{class}} = []
+            unless($self->{tabledata}->{$self->{currentid}}->{type}->{$element->{Attributes}->{class}});
+        my $optypespec = {format => $self->{currentid}};
         foreach my $opt (qw/format inversion outversion setvar/)
         {
             if (exists($element->{Attributes}->{$opt}))
             {
-                $self->{tabledata}->{$self->{currentid}}->{type}->{$element->{Attributes}->{class}}->{$opt} = 
-                    $element->{Attributes}->{$opt};
+                $optypespec->{$opt} = $element->{Attributes}->{$opt};
             }
         }
+        push(@{$self->{tabledata}->{$self->{currentid}}->{type}->{$element->{Attributes}->{class}}},
+             $optypespec)
+            if (scalar keys %{$optypespec} > 0);
     }
     if ($element->{Name} eq 'vartype')
     {


Thread
svn commit - mysqldoc@docsrva: r9429 - trunk/tools/MySQL/DynXMLmcbrown21 Dec