Sophie

Sophie

distrib > Fedora > 13 > x86_64 > by-pkgid > 94d7a8e4eb931764de3c695ecd2af55b > files > 1

gourmet-0.15.9-1.fc13.src.rpm

From 9836bb86576717d4b77fdeb5907e83b959ac4e3a Mon Sep 17 00:00:00 2001
From: Jeff Raber <jeff.raber@gmail.com>
Date: Wed, 2 Mar 2011 10:58:40 -0600
Subject: [PATCH] sqlalchemy: lastrowid vs. inserted_primary_key

src/lib/backends/db.py:
	Check the version of sqlalchemy being used to decide which
	property to use to get the id of the last inserted row.
---
 src/lib/backends/db.py |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/lib/backends/db.py b/src/lib/backends/db.py
index 2d9a103..5521f86 100644
--- a/src/lib/backends/db.py
+++ b/src/lib/backends/db.py
@@ -1281,7 +1281,10 @@ class RecData (Pluggable):
 
     def do_add_and_return_item (self, table, dic, id_prop='id'):
         result_proxy = self.do_add(table,dic)
-        select = table.select(getattr(table.c,id_prop)==result_proxy.inserted_primary_key[0])
+        if re.match('(\d[.]\d)([.].*\d)?$',sqlalchemy.__version__).group(1)=="0.5":
+            select = table.select(getattr(table.c,id_prop)==result_proxy.lastrowid)
+        else:
+            select = table.select(getattr(table.c,id_prop)==result_proxy.inserted_primary_key[0])
         return select.execute().fetchone()
 
     def do_add_ing (self,dic):
@@ -1308,7 +1311,10 @@ class RecData (Pluggable):
             else:
                 raise ValueError('New recipe created with preset id %s, but ID is not in our list of new_ids'%rdict['id'])
         insert_statement = self.recipe_table.insert()
-        select = self.recipe_table.select(self.recipe_table.c.id==insert_statement.execute(**rdict).inserted_primary_key[0])
+        if re.match('(\d[.]\d)([.].*\d)?$',sqlalchemy.__version__).group(1)=="0.5":
+            select = self.recipe_table.select(self.recipe_table.c.id==insert_statement.execute(**rdict).lastrowid)
+        else:
+            select = self.recipe_table.select(self.recipe_table.c.id==insert_statement.execute(**rdict).inserted_primary_key[0])
         return select.execute().fetchone()
 
     def validate_ingdic (self,dic):
-- 
1.7.4