Hi,

> the queries generated in 0.3.6 and 0.3.8 are identical except for an
> anonymous alias name.  they are also both incorrect, and its only
> because 0.3.6 is less accurate about targeting Column objects in
> result sets that it "works".

Are they incorrect because of how they constructed, or it's because
of SA's  internal behaviour?

There is also another point here - in fact, this mapper it's just a
view,
and seems that primary key is not very useful here, but I did not find
the
way to specify it.

I also do not want to mix mappers and simple selects.

So I probably stay on 0.3.6 until 0.4 will be released.

 the "task_id" column which youve
> labeled inside of "jj" does not appear due to a column targeting bug
> that is present in all versions, resolved in changeset 2708.  0.3.6
> just grabs the same column twice which is wrong as well.
>
> the mapper in your example considers the primary key of "cls" to be
> the composite of task.id and the task_id "label" youve defined inside
> of "jj":
>
> illustration of the primary key:
>
> cls.mapper = mapper( cls, jjj, properties=props)
> cls.mapper.compile()
> print cls.mapper.primary_key
>
> OrderedSet([Column('id',Integer(),primary_key=True,nullable=False),
> Column('task_id',Integer(),primary_key=True,nullable=False)])
>
> which you probably should define as:
>
> cls.mapper = mapper( cls, jjj, properties=props, primary_key=
> [jjj.c.task_id])
>
> the bug also prevented the primary_key setting above from compiling
> properly in the mapper.
>
> also, heres an alternate mapping to avoid the ambiguity presented by
> mapping to a join:
>
> j  = outerjoin( task_t, message_t, task_t.c.id==message_t.c.task_id)
> jj = select([ task_t.c.id.label('task_id'), func.count
> (message_t.c.id).label('props_cnt')],
>                from_obj=[j], group_by=[task_t.c.id])
>
> jjj = join(task_t, jj, task_t.c.id == jj.c.joined_task_id).select
> ().alias('hi')
>
> mapper(cls, jjj, primary_key=[jjj.c.task_id])
>
> On Jun 6, 2007, at 3:55 PM, Dmitry Zuikov wrote:
>
>
>
> >> once all that is done, then ill have a better idea of what youre
> >> actually trying to do (if it doesnt actually fix the problem).
>
> > Okay, I have posted the cleaned code above (or here http://
> > dzuikov2.firstvds.ru/qqq.py).
> > There are some comments about it.
>
> > What I am trying to do? The simple thing: I have some related tables
> > with mappers and I need the query wich shows some statistics (group
> > functions involved). So I created a new mapper against the query.
> > That's all. The query and the mapper work ok in 0.3.6 - you may run
> > this code to check it out. In 0.3.8 it works with properties and
> > relations but without offset/limit, or with offset/limit,  but without
> > properties.  The query seems correct - it runs  without mapper.
>
> > I do not use clear_mapper or even clear_mappers in real code.


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to