Re: [sqlalchemy] Getting comparison TypeError when trying to commit aware datetime when previous value was naive datetime

2012-05-13 Thread Steve Zatz
 you should only be dealing with timezone-naive datetimes within a
Python application
Thanks - make sense although the klugey way around the problem is just to
commit None before you change between naive and aware since comparisons
with None are fine.

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] Getting comparison TypeError when trying to commit aware datetime when previous value was naive datetime

2012-05-12 Thread Steve Zatz
When I try to commit a timezone aware datetime to replace a value that was
previously timezone naive, I get a TypeError when I try to do the commit
with the message:

TypeError: can't compare offset-naive and offset-aware datetimes

Now I am not trying to compare anything but just store the new value in an
sqlite database.  Is there a way to force the commit to take place without
it performing a comparison to the previously stored value (if that is in
fact what is going on)?

-- 
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



[sqlalchemy] Re: Determine what joins are in select statement

2009-11-01 Thread Steve Zatz
Still not there because I am not sure how to compare two join objects.

For example let's say I have a join object:

obj1
sqlalchemy.orm.util._ORMJoin at 0xac0d30c; Join object on task(172432076)
and context(172432940)

And I then create a second object:
 obj2 = sqlalchemy.orm.util.join(Task, Context)
obj2
sqlalchemy.orm.util._ORMJoin at 0xae517ac; Join object on task(172432076)
and context(172432940)

I can't quite figure out how to compare the objects since:

obj1.compare(obj2) is False

What is the best way to compare those two join objects and conclude they
represent the same join?

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Determine what joins are in select statement

2009-10-28 Thread Steve Zatz
And what is the approach to the simpler question of determining what joins
are in a query.

For example,

query = session.query(Task).join(Context)...

If you're just passed the query, what's the best way to determine that it
contains a join (for example, so you don't perform the same join again)?

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Determine what joins are in select statement

2009-10-28 Thread Steve Zatz
  just change table to join.
I tried that but got an Attribute Error that Query' object has no attribute
'__visit_name__'

Asume I am doing something wrong by using the query object as the first
argument but not sure what to use.

Also, what is the second argument in visitors.traverse().  [It was missing
in the most recent example but apparently an empty dictionary is fine.]

Steve




--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Determine what joins are in select statement

2009-10-28 Thread Steve Zatz
 use query.statement to get at the SQL expression
Thanks. That worked.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] many-to-one question on delete

2009-09-14 Thread Steve Zatz

I have a simple foreign key relationship between a Task class and a
Context class, where many Tasks can have the same Context.  The
default value for the Task foreign key context_id is 0.  When I delete
a Context, the Tasks with that context have their context_id
automatically set to None and I would like it to be set to 0.  (I
believe this is the default cascade behavior as I do not have any
cascade set on the mapper.)  Right now I then explicitly change each
affected Tasks context_id to 0.  Do I have to do this explicitly, or
is there a way on delete of a Context to have the task updated to a
context_id = 0.  Thanks for any advice.

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: many-to-one question on delete

2009-09-14 Thread Steve Zatz

 if you're using foreign keys correctly, that would imply there's an entity
 with an id of 0, and you'd attach that Context to each Task, replacing
 the old Context to be deleted.

Michael, thanks for the usual thorough response.  Yes, there is a
Context entity with a unique (non-primary) id of zero, it is No
Context' but it is treated exactly the same as any other Context.  The
reason for this is that the local sqlite database being managed
through SQLA is kept in sync with a remote database that (for whatever
reason) explicitly sets the 'No Context context_id to zero and not
NULL.  As you indicate, it is possible to iterate through the list of
Tasks and explicitly set the context_id to zero, I just wanted to
confirm what you indicated that the setting of the foreign key to NULL
on the parent in a delete is hardwired and so I just need to work
around that.  Again, thanks for the help.

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: trunk is now on 0.5

2008-05-10 Thread Steve Zatz

Trunk Rev 4726

Note the following:

Python 2.5.2 (r252:60911, May  7 2008, 15:19:09)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type help, copyright, credits or license for more information.
 from sqlalchemy import *
Traceback (most recent call last):
  File stdin, line 1, in module
  File .../sqlalchemy/__init__.py, line 34, in module
from sqlalchemy.engine import create_engine, engine_from_config
  File .../sqlalchemy/engine/__init__.py, line 54, in module
from sqlalchemy.engine.base import Dialect, ExecutionContext, Compiled, \
  File .../sqlalchemy/engine/base.py, line 16, in module
from sqlalchemy import exc, schema, util, types, log
  File .../sqlalchemy/log.py, line 35, in module
rootlogger = logging.getLogger('sqlalchemy')
AttributeError: 'module' object has no attribute 'getLogger'


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: trunk is now on 0.5

2008-05-10 Thread Steve Zatz

  be sure to clean out the .pyc files.
That worked. Thanks.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Mapper issue with r4485

2008-04-11 Thread Steve Zatz

  my hat's off to you for coming up with that relation(), it works again
  in rev 4486.
Ah the irony ... check out http://tinyurl.com/6kqv94

And thanks as always for your remarkable responsiveness and for
sqlalchemy.  It is indispensible.

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: self-referential table question

2008-01-28 Thread Steve Zatz

Michael,

Works perfectly. Thanks much.

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: self-referential table question

2008-01-28 Thread Steve Zatz

 another option is:
 .query(Node).filter(not_(Node.id.in_(select([Node.parent_id]

jason, thanks for the alternative method. Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] self-referential table question

2008-01-27 Thread Steve Zatz

I realize this is actually an SQL question but I haven't been able to
figure out the answer.

In a simple self-referential table, the following produces all the
Nodes that are parents to some child node(s):

node_table_alias = node_table.alias()
parents = session.query(Node).filter(Node.id == node_table_alias.c.parent_id)

I can't figure out the analogous query that produces all the Nodes
that are not parents to another node.  It is clear that:

non_parents = session.query(Node).filter(Node.id !=
node_table_alias.c.parent_id)

doesn't work but I can't figure out what the right query is.  Any help
would be appreciated.

Steve

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Issue using rev 2425

2007-03-20 Thread Steve Zatz

Michael, thanks for working through this and for taking the time to
explain what's going on and to provide alternative ways to getting
this done.  Your efforts to support the users of sqlalchemy are really
extraordinary.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: self-referential table question

2006-12-02 Thread Steve Zatz

Works perfectly.  Your responsiveness and the usefulness of SQLAlchemy
continue to amaze. Thanks.

--~--~-~--~~~---~--~~
 You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: self-referential table question

2006-12-02 Thread Steve Zatz

Works. Thanks.

--~--~-~--~~~---~--~~
 You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Problem with count in rev 2089

2006-11-09 Thread Steve Zatz

Prior to 2089, the following worked fine:

session.query(ItemKeyword).count()

where ItemKeyword has a compound primary key that is defined in its
mapper as follows:

mapper(ItemKeyword, itemkeyword_table, primary_key =
[itemkeyword_table.c.item_uuid, itemkeyword_table.c.keyword_uuid],
properties={'keyword': relation(Keyword, lazy=False, backref='itemkeywords')})

With 2089, I get the following error:

session.query(ItemKeyword).count()

Traceback (most recent call last):
  File stdin, line 1, in ?
  File sqlalchemy/orm/query.py, line 270, in count
s = sql.select([sql.func.count(list(self.table.primary_key)[0])],
whereclause, from_obj=from_obj, **kwargs)
IndexError: list index out of range
--

Platform:  error occurs on both Ubuntu Linux and Windows XP; database is sqlite.

--~--~-~--~~~---~--~~
 You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Problem with mapper relationship when lazy=False

2006-10-23 Thread Steve Zatz

 youre really looking to have an association object pattern here.
I thought you might recommend that.  My problem last time I tried an
association object was that in the following situation:

item table
keyword table
itemkeyword table (and association object)

I couldn't get the keywords to eager load when I retrieve items, which
is the reason I am trying to kluge this together without an association
object.  I'll go back and see if I can retrieve items and then do

keywords = [ik.keyword for ik in item.itemkeywords]

without SQLAlchemy querying the database each time separately from the
query that brings back the items.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sqlalchemy
-~--~~~~--~~--~--~---



[sqlalchemy] Re: Problem with mapper relationship when lazy=False

2006-10-23 Thread Steve Zatz

 the eager load should be able to go through the association object
 down to the endpoint Keyword objects
Thanks -- that does work.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sqlalchemy
-~--~~~~--~~--~--~---