<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Taming Serpents and Pachyderms</title>
	<atom:link href="http://pyrseas.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://pyrseas.wordpress.com</link>
	<description>Musings on Python, PostgreSQL and other species</description>
	<lastBuildDate>Fri, 17 May 2013 20:04:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Pyrseas contributions solicited by Joe Abbate: Pyrseas contributions solicited &#124; The Black Velvet Room</title>
		<link>http://pyrseas.wordpress.com/2013/05/17/pyrseas-contributions-solicited/#comment-1485</link>
		<dc:creator><![CDATA[Joe Abbate: Pyrseas contributions solicited &#124; The Black Velvet Room]]></dc:creator>
		<pubDate>Fri, 17 May 2013 20:04:47 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=2019#comment-1485</guid>
		<description><![CDATA[[&#8230;] via Planet Python http://pyrseas.wordpress.com/2013/05/17/pyrseas-contributions-solicited/ [&#8230;]]]></description>
		<content:encoded><![CDATA[<p>[&#8230;] via Planet Python <a href="http://pyrseas.wordpress.com/2013/05/17/pyrseas-contributions-solicited/" rel="nofollow">http://pyrseas.wordpress.com/2013/05/17/pyrseas-contributions-solicited/</a> [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by Tuples in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1397</link>
		<dc:creator><![CDATA[Tuples in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms]]></dc:creator>
		<pubDate>Tue, 26 Mar 2013 18:18:21 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1397</guid>
		<description><![CDATA[[...] Tuple of the TTM-inspired interface to PostgreSQL models TTM tuples as Python lists of TTM Attribute objects. Lists were used rather than sets [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Tuple of the TTM-inspired interface to PostgreSQL models TTM tuples as Python lists of TTM Attribute objects. Lists were used rather than sets [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Attributes in the Pythonic, TTM-inspired interface to PostgreSQL by Tuples in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms</title>
		<link>http://pyrseas.wordpress.com/2013/03/21/attributes-in-the-pythonic-ttm-inspired-interface-to-postgresql/#comment-1396</link>
		<dc:creator><![CDATA[Tuples in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms]]></dc:creator>
		<pubDate>Tue, 26 Mar 2013 18:18:18 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1945#comment-1396</guid>
		<description><![CDATA[[...] &#8592; Attributes in the Pythonic, TTM-inspired interface to&#160;PostgreSQL [...]]]></description>
		<content:encoded><![CDATA[<p>[...] &larr; Attributes in the Pythonic, TTM-inspired interface to&nbsp;PostgreSQL [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SQL Database Version Control &#8211; Summary by jma</title>
		<link>http://pyrseas.wordpress.com/2011/03/22/sql-database-version-control-summary/#comment-1389</link>
		<dc:creator><![CDATA[jma]]></dc:creator>
		<pubDate>Sat, 23 Mar 2013 16:50:45 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=386#comment-1389</guid>
		<description><![CDATA[I&#039;m afraid I can&#039;t really tell what DataGrove is or does. I couldn&#039;t find a simple description on its website, only that it &quot;does all the behind-the-scenes magic&quot; but without explanation of what the magic may entail. All the examples refer to MySQL so it seems their focus is on that rather than on PostgreSQL (the pachyderms in the title of this blog). DataGrove appears to be managing copies of (whole) MySQL databases which doesn&#039;t quite compare to version control of database schemas, i.e., the meta-information describing the tables, columns, functions, etc.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m afraid I can&#8217;t really tell what DataGrove is or does. I couldn&#8217;t find a simple description on its website, only that it &#8220;does all the behind-the-scenes magic&#8221; but without explanation of what the magic may entail. All the examples refer to MySQL so it seems their focus is on that rather than on PostgreSQL (the pachyderms in the title of this blog). DataGrove appears to be managing copies of (whole) MySQL databases which doesn&#8217;t quite compare to version control of database schemas, i.e., the meta-information describing the tables, columns, functions, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SQL Database Version Control &#8211; Summary by Sroklis Daajekn</title>
		<link>http://pyrseas.wordpress.com/2011/03/22/sql-database-version-control-summary/#comment-1387</link>
		<dc:creator><![CDATA[Sroklis Daajekn]]></dc:creator>
		<pubDate>Fri, 22 Mar 2013 21:24:19 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=386#comment-1387</guid>
		<description><![CDATA[Hi,
I am a bit late to this wonderful series of articles &amp; a comparative analysis such as this. However it would also be interesting to hear from you what you think about http://off-scale.com/ DataGrove]]></description>
		<content:encoded><![CDATA[<p>Hi,<br />
I am a bit late to this wonderful series of articles &amp; a comparative analysis such as this. However it would also be interesting to hear from you what you think about <a href="http://off-scale.com/" rel="nofollow">http://off-scale.com/</a> DataGrove</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by Attributes in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1383</link>
		<dc:creator><![CDATA[Attributes in the Pythonic, TTM-inspired interface to PostgreSQL &#124; Taming Serpents and Pachyderms]]></dc:creator>
		<pubDate>Thu, 21 Mar 2013 17:28:08 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1383</guid>
		<description><![CDATA[[...] &#8592; A Pythonic, TTM-inspired interface to PostgreSQL &#8211;&#160;Requirements [...]]]></description>
		<content:encoded><![CDATA[<p>[...] &larr; A Pythonic, TTM-inspired interface to PostgreSQL &#8211;&nbsp;Requirements [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by jma</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1371</link>
		<dc:creator><![CDATA[jma]]></dc:creator>
		<pubDate>Mon, 11 Mar 2013 21:17:34 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1371</guid>
		<description><![CDATA[It does support nextval and default values: that&#039;s what the sysdefault parameter of class Attribute is for. In any case, for my purposes I don&#039;t need subqueries, group by, unions, etc. As I said in the post, this is not intended as an ORM-replacement. And if I needed more complex query features, I would never want to use an intermediary: it would be like learning German to speak through an interpreter to a Spanish person, when I can speak Spanish perfectly well.]]></description>
		<content:encoded><![CDATA[<p>It does support nextval and default values: that&#8217;s what the sysdefault parameter of class Attribute is for. In any case, for my purposes I don&#8217;t need subqueries, group by, unions, etc. As I said in the post, this is not intended as an ORM-replacement. And if I needed more complex query features, I would never want to use an intermediary: it would be like learning German to speak through an interpreter to a Spanish person, when I can speak Spanish perfectly well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by Ants Aasma</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1369</link>
		<dc:creator><![CDATA[Ants Aasma]]></dc:creator>
		<pubDate>Mon, 11 Mar 2013 20:24:43 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1369</guid>
		<description><![CDATA[The point is that you have built the equivalent functionality in Relvar.insert_one(). Except that you don&#039;t support using function calls as values to be inserted (e.g. nextval(), uuid_generate_v4(), do_something_special(&#039;with value passed in&#039;)), you don&#039;t have insert_many, you don&#039;t support INSERT DEFAULT VALUES. And while SQLAlchemy doesn&#039;t have INSERT SELECT built in, implementing it is literally a dozen lines of code: http://stackoverflow.com/questions/1849375/how-do-i-insert-into-t1-select-from-t2-in-sqlalchemy

Now insert is just about the simplest  example you can have. When you get to querying you may want to worry about sub-queries, group by and order by, possibly over arbitrary expression, unions and intersecting, distinct, selecting for update, custom operators, window functions, using server side cursor to incrementally process a result set and so on and so on. This is all out of the box available with SQLAlchemy. I don&#039;t want to put down your effort, but I just don&#039;t see what do you hope to achieve by essentially reimplementing SQLAlchemy besides the fun of doing it (a noble goal in itself).]]></description>
		<content:encoded><![CDATA[<p>The point is that you have built the equivalent functionality in Relvar.insert_one(). Except that you don&#8217;t support using function calls as values to be inserted (e.g. nextval(), uuid_generate_v4(), do_something_special(&#8216;with value passed in&#8217;)), you don&#8217;t have insert_many, you don&#8217;t support INSERT DEFAULT VALUES. And while SQLAlchemy doesn&#8217;t have INSERT SELECT built in, implementing it is literally a dozen lines of code: <a href="http://stackoverflow.com/questions/1849375/how-do-i-insert-into-t1-select-from-t2-in-sqlalchemy" rel="nofollow">http://stackoverflow.com/questions/1849375/how-do-i-insert-into-t1-select-from-t2-in-sqlalchemy</a></p>
<p>Now insert is just about the simplest  example you can have. When you get to querying you may want to worry about sub-queries, group by and order by, possibly over arbitrary expression, unions and intersecting, distinct, selecting for update, custom operators, window functions, using server side cursor to incrementally process a result set and so on and so on. This is all out of the box available with SQLAlchemy. I don&#8217;t want to put down your effort, but I just don&#8217;t see what do you hope to achieve by essentially reimplementing SQLAlchemy besides the fun of doing it (a noble goal in itself).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by jma</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1368</link>
		<dc:creator><![CDATA[jma]]></dc:creator>
		<pubDate>Mon, 11 Mar 2013 18:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1368</guid>
		<description><![CDATA[But why would I bother with SA&#039;s core?  For example, what is the advantage of

users.insert().values(name=&#039;jack&#039;, fullname=&#039;Jack Jones&#039;)

over the comparable SQL INSERT command delivered &lt;em&gt;directly&lt;/em&gt; to Psycopg2 and tailored exactly to my needs?]]></description>
		<content:encoded><![CDATA[<p>But why would I bother with SA&#8217;s core?  For example, what is the advantage of</p>
<p>users.insert().values(name=&#8217;jack&#8217;, fullname=&#8217;Jack Jones&#8217;)</p>
<p>over the comparable SQL INSERT command delivered <em>directly</em> to Psycopg2 and tailored exactly to my needs?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A Pythonic, TTM-inspired interface to PostgreSQL &#8211; Requirements by Ants Aasma</title>
		<link>http://pyrseas.wordpress.com/2013/03/07/a-pythonic-ttm-inspired-interface-to-postgresql-requirements/#comment-1367</link>
		<dc:creator><![CDATA[Ants Aasma]]></dc:creator>
		<pubDate>Mon, 11 Mar 2013 18:25:43 +0000</pubDate>
		<guid isPermaLink="false">http://pyrseas.wordpress.com/?p=1597#comment-1367</guid>
		<description><![CDATA[SQLAlchemy architecture does not require you to use it as an ORM. In particular, the ORM is cleanly layered on top of the SQL toolkit layer, allowing you to completely ignore all of the ORM features (or even mix and match if you like). In fact what you have built is in its concepts remarkably similar to SQLAlchemy core. (although obviously a lot simpler) Check the SQLAlchemy core documentation to get an overview of how the toolkit part looks like: http://docs.sqlalchemy.org/en/rel_0_8/core/tutorial.html
Or this is a great article detailing the reasoning and history behind the architecture: http://www.aosabook.org/en/sqlalchemy.html

I humbly disagree with your assessment of ORMs, as I have found SQLAlchemy&#039;s variant to boost productivity, result in more readable notation, get out of the way when needed and be helpful of creating abstractions that actually result in better database design. But I have found that these discussions don&#039;t tend to be too productive so I will leave it at a recommendation to just give it a try if you haven&#039;t yet.]]></description>
		<content:encoded><![CDATA[<p>SQLAlchemy architecture does not require you to use it as an ORM. In particular, the ORM is cleanly layered on top of the SQL toolkit layer, allowing you to completely ignore all of the ORM features (or even mix and match if you like). In fact what you have built is in its concepts remarkably similar to SQLAlchemy core. (although obviously a lot simpler) Check the SQLAlchemy core documentation to get an overview of how the toolkit part looks like: <a href="http://docs.sqlalchemy.org/en/rel_0_8/core/tutorial.html" rel="nofollow">http://docs.sqlalchemy.org/en/rel_0_8/core/tutorial.html</a><br />
Or this is a great article detailing the reasoning and history behind the architecture: <a href="http://www.aosabook.org/en/sqlalchemy.html" rel="nofollow">http://www.aosabook.org/en/sqlalchemy.html</a></p>
<p>I humbly disagree with your assessment of ORMs, as I have found SQLAlchemy&#8217;s variant to boost productivity, result in more readable notation, get out of the way when needed and be helpful of creating abstractions that actually result in better database design. But I have found that these discussions don&#8217;t tend to be too productive so I will leave it at a recommendation to just give it a try if you haven&#8217;t yet.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
