<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hack MySQL Blog &#187; MySQL</title>
	<atom:link href="http://hackmysql.com/blog/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackmysql.com/blog</link>
	<description>Dolphins and camels, oh my!</description>
	<lastBuildDate>Wed, 26 May 2010 23:48:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Detecting invalid and zero temporal values</title>
		<link>http://hackmysql.com/blog/2010/05/26/detecting-invalid-and-zero-temporal-values/</link>
		<comments>http://hackmysql.com/blog/2010/05/26/detecting-invalid-and-zero-temporal-values/#comments</comments>
		<pubDate>Wed, 26 May 2010 23:48:31 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[timestamp]]></category>
		<category><![CDATA[TIME_FORMAT]]></category>
		<category><![CDATA[TIME_TO_SEC]]></category>
		<category><![CDATA[TO_DAYS]]></category>
		<category><![CDATA[UNIX_TIMESTAMP]]></category>

		<guid isPermaLink="false">http://hackmysql.com/blog/?p=119</guid>
		<description><![CDATA[I&#8217;ve been thinking a lot about invalid and zero temporal values and how to detect them with MySQL date and time functions because mk-table-checksum has to handle &#8220;everything&#8221; correctly and efficiently.  The requirements are complex because we have to take into account what MySQL allows to be stored verses what it allows to be [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking a lot about invalid and zero temporal values and how to detect them with <a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html">MySQL date and time functions</a> because mk-table-checksum has to handle &#8220;everything&#8221; correctly and efficiently.  The requirements are complex because we have to take into account what MySQL allows to be stored verses what it allows to be used in certain operations and functions, how it sorts a mix of real and invalid temporal values for <code>MIN()</code> and <code>MAX()</code>, how to detect a temporal value as equivalent to zero, and how different MySQL versions might affect any of the aforementioned.</p>
<p>At base, the four guiding requirements are:</p>
<ol>
<li>Detect and discard invalid time, date, and datetime values</li>
<li>Detect zero-equivalent temporal values</li>
<li>Do #1 and #2 using only MySQL functions</li>
<li>Work in MySQL 4.0 and newer</li>
</ol>
<p>My tests cases for invalid temporal values are:</p>
<ul>
<li><code>00:00:60</code></li>
<li><code>00:60:00</code></li>
<li><code>999-00-00</code></li>
<li><code>999-01-01</code></li>
<li><code>0000-00-00</code></li>
<li><code>2009-00-00</code></li>
<li><code>2009-13-00</code></li>
<li><code>999-00-00 00:00:00</code></li>
<li><code>999-01-01 00:00:00</code></li>
<li><code>0000-00-00 00:00:00</code></li>
<li><code>1000-00-00 00:00:00</code></li>
<li><code>2009-00-00 00:00:00</code></li>
<li><code>2009-13-00 00:00:00</code></li>
<li><code>2009-05-26 00:00:60</code></li>
<li><code>2009-05-26 00:60:00</code></li>
<li><code>2009-05-26 24:00:00</code></li>
</ul>
<p>And my test cases for first real temporal values are:</p>
<ul>
<li><code>00:00:00</code></li>
<li><code>00:00:01</code></li>
<li><code>1000-01-01</code></li>
<li><code>2009-01-01</code></li>
<li><code>1000-01-01 00:00:00</code></li>
<li><code>2009-01-01 00:00:00</code></li>
</ul>
<p>And there is only one real zero-equivalent temporal value: <code>00:00:00</code>.</p>
<p>So the first requirement is to find a MySQL function that returns <code>NULL</code> for all those invalid values, and that function is <code>TO_DAYS</code> with one exception:</p>
<pre><code>mysql> SELECT TO_DAYS('999-01-01 00:00:00');
+-------------------------------+
| TO_DAYS('999-01-01 00:00:00') |
+-------------------------------+
|                        364878 |
+-------------------------------+

</code></pre>
<p>That date is only valid if years before 1000 are handled but the MySQL manual says that,</p>
<blockquote><p>
TO_DAYS() is not intended for use with values that precede the advent of the Gregorian calendar (1582)
</p></blockquote>
<p>so we&#8217;re already way past the limit of its intended use and, moreover, the supported lower limit of a date or datetime is <code>1000-01-01</code>, so says the manual.  It&#8217;s reasonable to not bother with pre-year 1000 dates so I&#8217;ll overlook this.  </p>
<p>Excepting pre-year 1000 dates, <code>TO_DAYS()</code> returns <code>NULL</code> for all the invalid values.  By contrast, <code>UNIX_TIMESTAMP()</code> returns zero for all the invalid values and <code>TIME_TO_SEC()</code> returns a mix of <code>NULL</code>, zero, and values.  So the apparent winner for requirement #1 is <code>TO_DAYS()</code>, but&#8230;</p>
<p>Requirement #2 complicates the issue because the time <code>00:00:00</code> is valid and zero-equivalent but <code>TO_DAYS()</code> returns <code>NULL</code> for it.  We need a hack that handles all the cases, and here it is:</p>
<pre><code>SELECT IF(TIME_FORMAT(?,'%H:%i:%s')=?, TIME_TO_SEC(?), TO_DAYS(?))

</code></pre>
<p>That says, basically: if the value is a time then evaluate it with <code>TIME_TO_SEC()</code>, else evaluate it with <code>TO_DAYS()</code>.  It works so well in fact that it satisfies all four requirements.  <code>00:00:00</code> evaluates to zero, all the invalid values evaluate to <code>NULL</code>, and all the valid values evaluate to various non-null values. I have to use <code>TIME_FORMAT()</code> instead of just <code>TIME()</code> because <code>TIME()</code> wasn&#8217;t introduced until MySQL v4.1 (fourth requirement).</p>
<p>The hack works because of this (substituting <code>TIME()</code> for <code>TIME_FORMAT()</code>):</p>
<pre><code>mysql> SELECT TIME('00:00:00');
+------------------+
| TIME('00:00:00') |
+------------------+
| 00:00:00         |
+------------------+

mysql> SELECT TIME('00-00-00');
+------------------+
| TIME('00-00-00') |
+------------------+
| 00:00:00         |
+------------------+

mysql> SELECT TIME('2010-05-26');
+--------------------+
| TIME('2010-05-26') |
+--------------------+
| 00:20:10           |
+--------------------+

mysql> SELECT TIME('2010-05-26 10:10:10');
+-----------------------------+
| TIME('2010-05-26 10:10:10') |
+-----------------------------+
| 10:10:10                    |
+-----------------------------+

</code></pre>
<p>As you can see, <code>TIME()</code> (or <code>TIME_FORMAT()</code>) returns the exact same value if the given value is a time, otherwise it interprets the value&#8211;which is a date or datetime&#8211;as a time causing it to return a different value than the given value.  Thus we discern time values from date and datetime values and evaluate them separately with <code>TIME_TO_SEC()</code>.</p>
<p>I tested on MySQL v4.0, 4.1, 5.0 and 5.1 and all pass.  The only difference is 4.0 verses the others for the pre-year 1000 dates, but I&#8217;m ignoring these anyway.</p>
<p>Of course all the preceding could have been accomplished in code by looking at the column type and choosing the correct MySQL function to evaluate the value and check if it&#8217;s zero-equivalent, but I was curious to see if it could be done using only MySQL since, after all, it is MySQL that permits these silly, invalid temporals values.</p>
<p>If you know a simpler, more elegant solution that meets the four requirements and passes all the tests, please share!</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2010/05/26/detecting-invalid-and-zero-temporal-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hack MySQL tools retired, succeeded</title>
		<link>http://hackmysql.com/blog/2010/05/23/hack-mysql-tools-retired-succeeded/</link>
		<comments>http://hackmysql.com/blog/2010/05/23/hack-mysql-tools-retired-succeeded/#comments</comments>
		<pubDate>Sun, 23 May 2010 18:45:46 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://hackmysql.com/blog/?p=110</guid>
		<description><![CDATA[I&#8217;m surprised, and flattered, to see that people still use, write and recommend mysqlsla, mysqlreport and&#8211;most surprisingly&#8211;mysqlsniffer.  In truth, however, I consider all the original Hack MySQL tools as retired.  Maatkit consumes the majority of my development time and provides better replacements for all the Hack MySQL tools.  The mk tools are [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m surprised, and flattered, to see that people still use, write and recommend mysqlsla, mysqlreport and&#8211;most surprisingly&#8211;mysqlsniffer.  In truth, however, I consider all the original Hack MySQL tools as retired.  Maatkit consumes the majority of my development time and provides better replacements for all the Hack MySQL tools.  The mk tools are better because&#8211;most importantly&#8211;they&#8217;re tested, their code is more robust, and they benefit from the collected knowledge and experience of the community&#8217;s top minds (whereas the Hack MySQL tools are brain-children of only my knowledge and experience circa several years ago).</p>
<p>Thus I created a new <a href="http://hackmysql.com/tools">tools</a> page where I list and briefly profile free, open-source MySQL tools.  As the intro paragraph states, MySQL Forge does this, too, but imho the forge is a dense jungle in which it is difficult to discern the useful bits from the less-than-useful bits.  My tools page is meant to 1) inform people that the Hack MySQL tools are retired, 2) list replacements for them, and 3) give people new to the MySQL universe a quick, simple list of tools they&#8217;ll probably want to become familiar with.</p>
<p>Kind thanks to all who used, wrote about, contributed to and recommend the Hack MySQL tools over the years.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2010/05/23/hack-mysql-tools-retired-succeeded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL features timeline</title>
		<link>http://hackmysql.com/blog/2009/10/26/mysql-features-timeline/</link>
		<comments>http://hackmysql.com/blog/2009/10/26/mysql-features-timeline/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 00:28:47 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://hackmysql.com/blog/?p=68</guid>
		<description><![CDATA[I&#8217;ve begun a MySQL features timeline which is a quick reference showing as of what version MySQL features were added, changed or removed.  The manual tells us this, of course, but I wanted a quicker reference.  The list is far from complete as there&#8217;s a huge number of features to cover.  I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve begun a <a href="http://hackmysql.com/as-of">MySQL features timeline</a> which is a quick reference showing as of what version MySQL features were added, changed or removed.  The manual tells us this, of course, but I wanted a quicker reference.  The list is far from complete as there&#8217;s a huge number of features to cover.  I&#8217;ll continue to improve it and help is appreciated.  Send me a quick email saying &#8220;feature x added/removed/changed as of version y&#8221; and I&#8217;ll do the rest. &#8212; If someone has already done this, please give me the url so I don&#8217;t reinvent the wheel.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2009/10/26/mysql-features-timeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlsla v2.00 released</title>
		<link>http://hackmysql.com/blog/2008/07/12/mysqlsla-v200-released/</link>
		<comments>http://hackmysql.com/blog/2008/07/12/mysqlsla-v200-released/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 20:39:16 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Updated Article]]></category>
		<category><![CDATA[mysqlsla]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/07/12/mysqlsla-v200-released/</guid>
		<description><![CDATA[mysqlsla v2 is finally &#8220;done&#8221; and released. About 3 months ago, when v1.8 was released, I said it would be coming &#8220;soon,&#8221; but time just flew by and here we are. Oh well. In any case, the v1 branch is dead to me and v2 is all the rave (at least for me). If you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlsla">mysqlsla</a> v2 is finally &#8220;done&#8221; and released. About 3 months ago, when v1.8 was released, I said it would be coming &#8220;soon,&#8221; but time just flew by and here we are. Oh well. In any case, the v1 branch is dead to me and v2 is all the rave (at least for me). If you don&#8217;t care about the differences and all you want is your default top 10 report from a slow log, for example, then all you need to know is: <code>mysqlsla -lt slow SLOW_LOG</code></p>
<p>For those interested in what has changed to warrant a new major version number, here&#8217;s the briefing of changes/overhauls:</p>
<ol>
<li>Almost ALL new command line options (&#8211;log-type a.k.a. -lt is the most important); see the <a href="http://hackmysql.com/mysqlsla_documentation">documentation</a></li>
<li>Customizable reports. In v1 the report was hard-coded. Now with -rf FILE you can format your own report. See the doc on <a href="http://hackmysql.com/mysqlsla_reports">reports</a>.</li>
<li>FULL filtering and sorting. Somewhere around v1.7 (if I remember correctly) filtering based on things like the connection ID, etc. was introduced. v2 is more abstracted and allows more complex filtering on any &#8220;meta-property&#8221; available in the log (and sorting by most of them, too). See the doc on <a href="http://hackmysql.com/mysqlsla_filters">filters</a>.</li>
<li><a href="http://hackmysql.com/mysqlsla_replays">Replays</a> to compact fat text log files into super-compact binary files.</li>
<li>Slightly better query abstraction.</li>
<li>Full support for <a href="http://www.mysqlperformanceblog.com/2008/04/20/updated-msl-microslow-patch-installation-walk-through/">microslow patched slow logs</a>.</li>
<li><a href="http://hackmysql.com/udl">User-defined logs</a> so that, one day, we may begin parsing, filtering, analyzing and sorting custom logs from things like <a href="http://forge.mysql.com/wiki/MySQL_Proxy">MySQL Proxy</a>.</li>
<li>And in general, what I called the &#8220;mysqlsla v2 Library: 6 long, detailed pages documenting just about single, tiny aspect of mysqlsla (plus with the &#8220;installer&#8221; you get a mysqlsla man page, too).</li>
</ol>
<p>As this is pretty much an entire code overhaul, <a href="http://hackmysql.com/contact">please please report bugs, problems, suggestions and whatever</a>. Please also send me your log files: slows, generals, binaries. They help me tremendously because I cannot sit around inventing up all the weird kinds of stuff I&#8217;ve seen in other people&#8217;s logs.</p>
<p>And as always, thank you all for your <a href="http://hackmysql.com/donate">support</a>, and thanks to those people who provided feedback, patches and such.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/07/12/mysqlsla-v200-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlsla: v1.8 released, v2 coming</title>
		<link>http://hackmysql.com/blog/2008/04/19/mysqlsla-v18-released-v2-coming/</link>
		<comments>http://hackmysql.com/blog/2008/04/19/mysqlsla-v18-released-v2-coming/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 17:53:10 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlsla]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/04/19/mysqlsla-v18-released-v2-coming/</guid>
		<description><![CDATA[mysqlsla v1.8 is available at:
http://hackmysql.com/scripts/mysqlsla-1.8-DEBUG
I am releasing it publicly without updating the mysqlsla web page or documentation because, instead, I am waiting until I finish mysqlsla v2. After working with v1.8 I realized the code needed a major re-think and overhaul. v2 will reflect this and will be a far superior log hacking and analyzing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlsla">mysqlsla</a> v1.8 is available at:<br />
http://hackmysql.com/scripts/mysqlsla-1.8-DEBUG<br />
I am releasing it publicly without updating the mysqlsla web page or documentation because, instead, I am waiting until I finish mysqlsla v2. After working with v1.8 I realized the code needed a major re-think and overhaul. v2 will reflect this and will be a far superior log hacking and analyzing tool, capable of far more than v1.8 is now.</p>
<p>But for now, 1.8 fixes several good (or bad?) bugs:</p>
<ul>
<li>&#8211;only-hosts did not work for general logs</li>
<li>Multi-line comments using /* */ caused everything after the first line to be ignored in raw logs</li>
<li>&#8220;Change user&#8221; commands were not handled in general logs</li>
<li>CHANGE, DROP and RESET statements were filtered out</li>
<li>A certain variant of the Connect command in general logs was not handled</li>
<li>A few more SQL capitalization/beautifications were added</li>
</ul>
<p>If you use mysqlsla, you should really get v1.8 due to these bug fixes. And if you have used mysqlsla before and found it didn&#8217;t do what you needed: <a href="http://hackmysql.com/contact">tell me</a> because v2 open to suggestions. My goal for v2 is to make it <em>the</em> MySQL log hacking tool, capable of parsing, ordering, analyzing, sorting, etc. a MySQL log in any way possible and then to serve as a liaison to other scripts, such as Baron&#8217;s <a href="http://www.maatkit.org/tools.html">mk-query-profiler</a>; e.g. have mysqlsla process and filter a log and then feed SQL statements to mk-query-profiler or any other script. Currently, v1.8 is too stuck in its own ways to help other scripts. Such selfishness shall be expunged.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/04/19/mysqlsla-v18-released-v2-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlreport v3.5 released</title>
		<link>http://hackmysql.com/blog/2008/04/16/mysqlreport-v35-released/</link>
		<comments>http://hackmysql.com/blog/2008/04/16/mysqlreport-v35-released/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 13:46:26 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlreport]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/04/16/mysqlreport-v35-released/</guid>
		<description><![CDATA[mysqlreport v3.5 has been released which has the following fixes, changes, updates:

Fixed bug: incorrect checking of MySQL version caused mysqlreport to ignore InnoDB status values in some cases. Simplified version from 3 integers (major, minor, patch) to 1 (50024 = 5.0.24, 60001 = 6.0.1, etc.) for easier, more accurate version checking all around.
Fixed potential bug: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlreport">mysqlreport</a> v3.5 has been released which has the following fixes, changes, updates:</p>
<ul>
<li>Fixed bug: incorrect checking of MySQL version caused mysqlreport to ignore InnoDB status values in some cases. Simplified version from 3 integers (major, minor, patch) to 1 (50024 = 5.0.24, 60001 = 6.0.1, etc.) for easier, more accurate version checking all around.</li>
<li>Fixed potential bug: read_relative_infiles might have incorrectly divided infiles with multiple status value sets.</li>
<li>Fixed bug: if wait_timeout was greater than &#8211;relative, mysqlreport would lose its connection while sleeping. Now the connection is closed and reopened for each live relative report collection.</li>
<li><strong>Infiles can now be given SHOW VARIABLES output (in addition to the old method of inserting values manually like: key_buffer_size=128M)</strong></li>
<li>Slow query time is beautified for microsecond, millisecond, and second resolution (format_u_time):<br />
0.000000 &#8211; 0.000999 = 0 &#8211; 999 &micro;<br />
0.001000 &#8211; 0.999999 = 1 ms &#8211; 999.999 ms<br />
1.000000 &#8211; n.nnnnnn = 1 s &#8211; n.nnnnn s</li>
<li>Added a lot more debugging output.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/04/16/mysqlreport-v35-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlreport v3.4a released, bug fix again</title>
		<link>http://hackmysql.com/blog/2008/01/23/mysqlreport-v34a-released-bug-fix-again/</link>
		<comments>http://hackmysql.com/blog/2008/01/23/mysqlreport-v34a-released-bug-fix-again/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 19:05:03 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlreport]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/01/23/mysqlreport-v34a-released-bug-fix-again/</guid>
		<description><![CDATA[mysqlreport v3.4a is ready which, like the recently released v3.4, fixes a bug in the relative reports. This time, it was the InnoDB reports which were not correct when made relative. Changes in v3.4a are:

Fixed bug: InnoDB report values were wrong in relative reports because 13 InnoDB status values needed to be excluded from being [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlreport">mysqlreport</a> v3.4a is ready which, like the recently released v3.4, fixes a bug in the relative reports. This time, it was the InnoDB reports which were not correct when made relative. Changes in v3.4a are:</p>
<ul>
<li>Fixed bug: InnoDB report values were wrong in relative reports because 13 InnoDB status values needed to be excluded from being made relative. (thanks Debbie)</li>
<li>Changed InnoDB Buffer Pool Read ratio to Read hit %</li>
</ul>
<p><a href="http://hackmysql.com/mysqlreportguide">The Guide to Understanding mysqlreport</a> has been accordingly updated, too.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/01/23/mysqlreport-v34a-released-bug-fix-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlreport v3.4 released, bug fix</title>
		<link>http://hackmysql.com/blog/2008/01/20/mysqlreport-v34-released-bug-fix/</link>
		<comments>http://hackmysql.com/blog/2008/01/20/mysqlreport-v34-released-bug-fix/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 15:47:58 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlreport]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/01/20/mysqlreport-v34-released-bug-fix/</guid>
		<description><![CDATA[mysqlreport v3.4 is ready which primarily fixes a bug in v3.3 concerning infiles for relative reports.
Changes in v3.4 are:

Fixed bug: &#8211;relative infiles wouldn&#8217;t work unless the SHOW STATUS values were prefixed with a line matching: /Variable_name[\s&#124;]+Value/. Now mysqlreport looks for Aborted_clients which should always be present. (thanks Debbie)
Fixed formatting problem: Created Temp Table Size was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlreport">mysqlreport</a> v3.4 is ready which primarily fixes a bug in v3.3 concerning infiles for relative reports.</p>
<p>Changes in v3.4 are:</p>
<ul>
<li>Fixed bug: &#8211;relative infiles wouldn&#8217;t work unless the SHOW STATUS values were prefixed with a line matching: /Variable_name[\s|]+Value/. Now mysqlreport looks for Aborted_clients which should always be present. (thanks Debbie)</li>
<li>Fixed formatting problem: Created Temp Table Size was too small for &gt;99M</li>
<li>Removed redundant %Total: column label from Slow line</li>
<li>Added more debug info</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/01/20/mysqlreport-v34-released-bug-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlreport v3.3 released</title>
		<link>http://hackmysql.com/blog/2008/01/09/mysqlreport-v33-released/</link>
		<comments>http://hackmysql.com/blog/2008/01/09/mysqlreport-v33-released/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 17:45:47 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlreport]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2008/01/09/mysqlreport-v33-released/</guid>
		<description><![CDATA[mysqlreport v3.3 is ready. Changes:

&#8211;all is now the default option and all the sub-report options like &#8211;dms, &#8211;sas, etc. have been removed. All reports that can be made are made automatically.
Slow line now displays long_query_time and log_slow_queries
Created Temp Table line now displays tmp_table_size
The mysqlreport tgz and zip now extract into their own directory
The mysqlreport Documentation [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlreport">mysqlreport</a> v3.3 is ready. Changes:</p>
<ul>
<li>&#8211;all is now the default option and all the sub-report options like &#8211;dms, &#8211;sas, etc. have been removed. All reports that can be made are made automatically.</li>
<li>Slow line now displays long_query_time and log_slow_queries</li>
<li>Created Temp Table line now displays tmp_table_size</li>
<li>The mysqlreport tgz and zip now extract into their own directory</li>
<p>The <a href="http://hackmysql.com/mysqlreportdoc">mysqlreport Documentation</a> and <a href="http://hackmysql.com/mysqlreportguide">The Guide To Understanding mysqlreport</a> have been updated to reflect these changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2008/01/09/mysqlreport-v33-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqlreport v3.2 released</title>
		<link>http://hackmysql.com/blog/2007/05/26/mysqlreport-v32-released/</link>
		<comments>http://hackmysql.com/blog/2007/05/26/mysqlreport-v32-released/#comments</comments>
		<pubDate>Sat, 26 May 2007 21:41:50 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqlreport]]></category>

		<guid isPermaLink="false">http://hackmysql.com/wp/2007/05/26/mysqlreport-v32-released/</guid>
		<description><![CDATA[mysqlreport v3.2 has been released. Mark Leith&#8217;s post, Aggregating SHOW STATUS Output, reminded me that a user had asked me a few months ago to do this for mysqlreport. I forgot until Mark&#8217;s post.
I have finished implementing this feature with mysqlreport. The new version has three new command line options: &#8211;relative (-r), &#8211;report-count (-c), and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackmysql.com/mysqlreport">mysqlreport</a> v3.2 has been released. Mark Leith&#8217;s post, <a href="http://www.markleith.co.uk/?p=19">Aggregating SHOW STATUS Output</a>, reminded me that a user had asked me a few months ago to do this for mysqlreport. I forgot until Mark&#8217;s post.</p>
<p>I have finished implementing this feature with mysqlreport. The new version has three new command line options: &#8211;relative (-r), &#8211;report-count (-c), and &#8211;detach. All of these are explained in the <a href="http://hackmysql.com/mysqlreportdoc">doc</a>. This feature required substantial alterations to the script, so please <a href="http://hackmysql.com/feedback">tell me</a> if anything doesn&#8217;t work.</p>
]]></content:encoded>
			<wfw:commentRss>http://hackmysql.com/blog/2007/05/26/mysqlreport-v32-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
