<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Seeking input for a new tool to verify MySQL upgrades</title>
	<atom:link href="http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 20:41:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Log Buffer #149: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog</title>
		<link>http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16515</link>
		<dc:creator>Log Buffer #149: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog</dc:creator>
		<pubDate>Fri, 05 Jun 2009 17:02:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1103#comment-16515</guid>
		<description>[...] Like Baron Schwartz&#8217;s Maatkit, for example. Baron announced this week that he is writing a book about Maatkit, and also seeking input for a new tool to verify MySQL upgrades. [...]</description>
		<content:encoded><![CDATA[<p>[...] Like Baron Schwartz&#8217;s Maatkit, for example. Baron announced this week that he is writing a book about Maatkit, and also seeking input for a new tool to verify MySQL upgrades. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Callaghan</title>
		<link>http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16490</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Mon, 01 Jun 2009 03:38:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1103#comment-16490</guid>
		<description>Your customers may not realize the value of this tool. It is _extremely_ valuable. We have an ugly version of this tool (it works, but the code is not in good shape to be published). It is used to validate a binary every time we change MySQL. It gives us much more faith in our changes.

It found many problems during our upgrade from MySQL 4 to 5. It is much better to find these problems before an upgrade.</description>
		<content:encoded><![CDATA[<p>Your customers may not realize the value of this tool. It is _extremely_ valuable. We have an ugly version of this tool (it works, but the code is not in good shape to be published). It is used to validate a binary every time we change MySQL. It gives us much more faith in our changes.</p>
<p>It found many problems during our upgrade from MySQL 4 to 5. It is much better to find these problems before an upgrade.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Karwin</title>
		<link>http://www.xaprb.com/blog/2009/05/29/seeking-input-for-a-new-tool-to-verify-mysql-upgrades/#comment-16483</link>
		<dc:creator>Bill Karwin</dc:creator>
		<pubDate>Sat, 30 May 2009 15:39:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=1103#comment-16483</guid>
		<description>In my &quot;SQL Antipatterns&quot; talk, I had a subject that&#039;s pretty close to this.  I didn&#039;t offer any solutions, but I suggested that database development habits should include regression-testing the database itself (not just application code that acts on the database).  

For example:

Tables, Views, Columns: verify that they exist.  Verify they have the columns you expect.  Verify tables and columns you dropped during an upgrade are actually gone.

Constraints:  verify that an update is aborted by a constraint when it should be.  NOT NULL, check constraints, foreign key constraints.  Cascading behaviors.

Triggers:  verify that triggers work to implement constraints, provide cascading operations, logging, etc.

Stored Procedures: test parameter signatures, test code paths, etc. just as you would a non-SQL procedure.

Bootstrap Data:  verify contents of lookup tables or other initial data that is present in your &quot;empty&quot; database.

Queries:  test all queries that are executed from your application.

ORM classes:  test all ORM classes, subclasses, aggregate classes, etc. just as you would any other code.</description>
		<content:encoded><![CDATA[<p>In my &#8220;SQL Antipatterns&#8221; talk, I had a subject that&#8217;s pretty close to this.  I didn&#8217;t offer any solutions, but I suggested that database development habits should include regression-testing the database itself (not just application code that acts on the database).  </p>
<p>For example:</p>
<p>Tables, Views, Columns: verify that they exist.  Verify they have the columns you expect.  Verify tables and columns you dropped during an upgrade are actually gone.</p>
<p>Constraints:  verify that an update is aborted by a constraint when it should be.  NOT NULL, check constraints, foreign key constraints.  Cascading behaviors.</p>
<p>Triggers:  verify that triggers work to implement constraints, provide cascading operations, logging, etc.</p>
<p>Stored Procedures: test parameter signatures, test code paths, etc. just as you would a non-SQL procedure.</p>
<p>Bootstrap Data:  verify contents of lookup tables or other initial data that is present in your &#8220;empty&#8221; database.</p>
<p>Queries:  test all queries that are executed from your application.</p>
<p>ORM classes:  test all ORM classes, subclasses, aggregate classes, etc. just as you would any other code.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

