sqlalchemy-tickets Mailing List for SQLAlchemy (Page 83)
Brought to you by:
zzzeek
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(174) |
Apr
(50) |
May
(71) |
Jun
(129) |
Jul
(113) |
Aug
(141) |
Sep
(82) |
Oct
(142) |
Nov
(97) |
Dec
(72) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(159) |
Feb
(213) |
Mar
(156) |
Apr
(151) |
May
(58) |
Jun
(166) |
Jul
(296) |
Aug
(198) |
Sep
(89) |
Oct
(133) |
Nov
(150) |
Dec
(122) |
| 2008 |
Jan
(144) |
Feb
(65) |
Mar
(71) |
Apr
(69) |
May
(143) |
Jun
(111) |
Jul
(113) |
Aug
(159) |
Sep
(81) |
Oct
(135) |
Nov
(107) |
Dec
(200) |
| 2009 |
Jan
(168) |
Feb
(109) |
Mar
(141) |
Apr
(128) |
May
(119) |
Jun
(132) |
Jul
(136) |
Aug
(154) |
Sep
(151) |
Oct
(181) |
Nov
(223) |
Dec
(169) |
| 2010 |
Jan
(103) |
Feb
(209) |
Mar
(201) |
Apr
(183) |
May
(134) |
Jun
(113) |
Jul
(110) |
Aug
(159) |
Sep
(138) |
Oct
(96) |
Nov
(116) |
Dec
(94) |
| 2011 |
Jan
(97) |
Feb
(188) |
Mar
(157) |
Apr
(158) |
May
(118) |
Jun
(102) |
Jul
(137) |
Aug
(113) |
Sep
(104) |
Oct
(108) |
Nov
(91) |
Dec
(162) |
| 2012 |
Jan
(189) |
Feb
(136) |
Mar
(153) |
Apr
(142) |
May
(90) |
Jun
(141) |
Jul
(67) |
Aug
(77) |
Sep
(113) |
Oct
(68) |
Nov
(101) |
Dec
(122) |
| 2013 |
Jan
(60) |
Feb
(77) |
Mar
(77) |
Apr
(129) |
May
(189) |
Jun
(155) |
Jul
(106) |
Aug
(123) |
Sep
(53) |
Oct
(142) |
Nov
(78) |
Dec
(102) |
| 2014 |
Jan
(143) |
Feb
(93) |
Mar
(35) |
Apr
(26) |
May
(27) |
Jun
(41) |
Jul
(45) |
Aug
(27) |
Sep
(37) |
Oct
(24) |
Nov
(22) |
Dec
(20) |
| 2015 |
Jan
(17) |
Feb
(15) |
Mar
(34) |
Apr
(55) |
May
(33) |
Jun
(31) |
Jul
(27) |
Aug
(17) |
Sep
(22) |
Oct
(26) |
Nov
(27) |
Dec
(22) |
| 2016 |
Jan
(20) |
Feb
(24) |
Mar
(23) |
Apr
(13) |
May
(17) |
Jun
(14) |
Jul
(31) |
Aug
(23) |
Sep
(24) |
Oct
(31) |
Nov
(23) |
Dec
(16) |
| 2017 |
Jan
(24) |
Feb
(20) |
Mar
(27) |
Apr
(24) |
May
(28) |
Jun
(18) |
Jul
(18) |
Aug
(23) |
Sep
(30) |
Oct
(17) |
Nov
(12) |
Dec
(12) |
| 2018 |
Jan
(27) |
Feb
(23) |
Mar
(13) |
Apr
(19) |
May
(21) |
Jun
(29) |
Jul
(11) |
Aug
(22) |
Sep
(14) |
Oct
(9) |
Nov
(24) |
Dec
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-15 19:40:32
|
#2803: HSTORE docs fix
---------------------------+-----------------------------------------
Reporter: jonathan | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: documentation | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
---------------------------+-----------------------------------------
The HSTORE docs are confusing:
> For usage with the SQLAlchemy ORM, it may be desirable to combine the
usage of HSTORE withMutableDict dictionary now part of the
sqlalchemy.ext.mutable extension. This extension will allow in-place
changes to dictionary values to be detected by the unit of work:
It's not really "desirable" -- it's pretty much required for most write
operations. ;)
The wording states this is needed for "changes to dictionary values".
That's misleading -- as it suggests a change to an existing key/value
pair. The extension is required for any changes to the dictionary itself
-- be updating a k/v pair or adding a k/v pair. You can only replace the
entire attribute with a new dict in order to update without the
MutableDict extension.
If you add a new k/v pair, inspecting the attribute shows a new value for
the k/v, however the SQL is not emmitted unless the MutableDict extension
is activated for the column.
It makes perfect sense what is going on and why. The docs should just be
changed to something like...
{{{
- This extension will allow in-place changes to dictionary values to be
detected by the unit of work:
+ This extension will allow changes to the attribute's dictionary to be
detected by the unit of work:
}}}
or
{{{
- This extension will allow in-place changes to dictionary values to be
detected by the unit of work:
+ This extension will allow changes to an existing dictionary ( such as
adding a new key/value pair or updating an existing one) to be detected by
the unit of work:
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2803>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-15 16:59:22
|
#2802: docs fix - orm internals, should be 'attrs' not 'attr'
---------------------------+-----------------------------------------
Reporter: jonathan | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: documentation | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
---------------------------+-----------------------------------------
this appears in the .8 and latest docs
http://docs.sqlalchemy.org/en/latest/orm/internals.html
http://docs.sqlalchemy.org/en/rel_0_8/orm/internals.html
{{{
insp = inspect(some_mapped_object)
- attr_state = insp.attr.some_attribute
+ attr_state = insp.attrs.some_attribute
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2802>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-15 14:03:32
|
#2801: regression from uniticketed CTE changeset
---------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.7.xx
Component: sql | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in queue |
---------------------------+-------------------------------
Comment (by zzzeek):
the issue is that the uppercase name "CTE" doesn't get quoted when
rendered a second time.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2801#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-15 14:02:44
|
#2801: regression from uniticketed CTE changeset
--------------------+------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.7.xx
Component: sql | Severity: major - 1-3 hours
Keywords: | Progress State: in queue
--------------------+------------------------------------
this affects back to 0.7
r878af426f7eb19c257f1db83f5b1af34624c2c6a
{{{
#!python
from sqlalchemy.orm import Session
import sqlalchemy as sa
session = Session()
cte = session.query(sa.literal(1).label("id")).cte(name='CTE')
firstSubquery = session.query(cte.c.id).subquery()
secondSubquery = session.query(cte.c.id).subquery()
query = session.query(firstSubquery, secondSubquery)
print("--------------")
print(firstSubquery)
print("--------------")
print(secondSubquery)
print("--------------")
print(query)
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2801>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-14 20:25:56
|
#2800: Unable to create tsvector functional index
-----------------------------------+------------------------------------
Reporter: meunierd | Owner: zzzeek
Type: defect | Status: closed
Priority: medium | Milestone:
Component: sql | Severity: no triage selected yet
Resolution: duplicate | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => duplicate
* status_field: awaiting triage => completed/closed
Comment:
you can't use bound parameters in DDL, #2742 looks to improve this so this
is a duplicate.
{{{
#!python
__table_args__ = (
Index(
'organization_name_search_ix',
func.to_tsvector(text("'english'"), func.lower(name)),
postgresql_using='gin'
),
)
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2800#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-14 20:21:40
|
#2779: Join order determinism in polymorphic loads
------------------------------+----------------------------------
Reporter: aelaguiz | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.8.xx
Component: orm | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: needs tests |
------------------------------+----------------------------------
Changes (by zzzeek):
* priority: medium => high
* milestone: => 0.8.xx
* component: cextensions => orm
* severity: no triage selected yet => minor - half an hour
* status_field: awaiting triage => needs tests
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2779#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-14 20:11:05
|
#2800: Unable to create tsvector functional index
----------------------+-----------------------------------------
Reporter: meunierd | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: sql | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
----------------------+-----------------------------------------
{{{
class Organization(Base):
__tablename__ = 'organization'
id = Column(Integer, primary_key=True)
name = Column(Unicode, unique=True)
business_number = Column(Unicode(255), unique=True)
website = Column(Unicode)
is_donor = Column(Boolean, nullable=False, default=False)
is_member = Column(Boolean, nullable=False, default=False)
__table_args__ = (
Index(
'organization_name_search_ix',
func.to_tsvector('english', func.lower(name)),
postgresql_using='gin'
),
)
}}}
Produces the following mangled SQL output:
{{{
2013-08-14 15:56:58,170 INFO [sqlalchemy.engine.base.Engine][MainThread]
{}
2013-08-14 15:56:58,191 INFO [sqlalchemy.engine.base.Engine][MainThread]
COMMIT
2013-08-14 15:56:58,194 INFO [sqlalchemy.engine.base.Engine][MainThread]
CREATE INDEX organization_name_search_ix ON organization USING gin
(to_tsvector(%(to_tsvector_1)s, lower(name)))
2013-08-14 15:56:58,194 INFO [sqlalchemy.engine.base.Engine][MainThread]
{}
2013-08-14 15:56:58,194 INFO [sqlalchemy.engine.base.Engine][MainThread]
ROLLBACK
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2800>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-11 06:14:40
|
#2799: Declaring functional (func.lower) does not work as expected with
declarative
-----------------------------------+------------------------------------
Reporter: zejnzejn | Owner: zzzeek
Type: defect | Status: closed
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Resolution: worksforme | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => worksforme
* status_field: awaiting triage => completed/closed
Comment:
the index needs to be associated with at least one column in the table.
The string "tag" is not a column, to SQLAlchemy its an arbitrary
expression. usage is as follows:
{{{
#!python
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class FuncIndex(Base):
__tablename__ = 'funcindex'
id = Column(Integer, primary_key=True)
tag = Column(String(20))
__table_args__ = (
Index('funcindex_idx', func.lower(tag)),
)
e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)
Base.metadata.create_all(e)
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2799#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-11 02:25:19
|
#2799: Declaring functional (func.lower) does not work as expected with
declarative
----------------------------------+------------------------------------
Reporter: zejnzejn | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by zejnzejn):
Err, declaring functional *index* does not work.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2799#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-11 02:13:03
|
#2799: Declaring functional (func.lower) does not work as expected with
declarative
-------------------------+-----------------------------------------
Reporter: zejnzejn | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
-------------------------+-----------------------------------------
Attached is a very simple case.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2799>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-10 15:55:39
|
#2798: query.update() and query.delete() need documentation/notes regarding joined
table inheritance / multi table updates
---------------------------+---------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: highest | Milestone: 0.8.xx
Component: documentation | Severity: minor - half an hour
Keywords: | Progress State: in queue
---------------------------+---------------------------------------
and/or if we could get the joined inheritance criteria to be added, that
would be an 0.9 thing.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2798>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-08 13:33:24
|
#2797: expression-level many-to-one comparison
-------------------------+---------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.9.0
Component: orm | Severity: minor - half an hour
Keywords: | Progress State: in queue
-------------------------+---------------------------------------
Just as `obj.many_to_one == some_object` works, it should do the right
thing if you say `obj.many_to_one == SomeClass`, which is actually
longhand notation for the "primaryjoin" but is consistent in other
systems.
this is in 0.9 so it gets noticed but should be OK for a backport to 0.8.
{{{
#!python
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class A(Base):
__tablename__ = 'a'
id = Column(Integer, primary_key=True)
class B(Base):
__tablename__ = 'b'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'))
a = relationship("A")
s = Session()
# support this
# q1 = s.query(B).filter(B.a == A).exists()
# checks the argument, then just does this:
q1 = s.query(B).filter(B.a.expression).exists()
print s.query(A).filter(q1)
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2797>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-06 19:25:58
|
#2796: Labeled subqueries
-----------------------------------+------------------------------------
Reporter: kvesteri | Owner: zzzeek
Type: defect | Status: closed
Priority: high | Milestone:
Component: sql | Severity: no triage selected yet
Resolution: worksforme | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => worksforme
* status_field: awaiting triage => completed/closed
Comment:
yeah "label" is intended for column expressions. when you call label() on
a select(), that turns it into a scalar select that you could embed as a
subquery in the columns or where clause. for a from-based subquery, use
alias. I wrote some background on column/where/from subqueries at
http://docs.sqlalchemy.org/en/rel_0_8/glossary.html#term-subquery.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2796#comment:4>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-06 10:23:30
|
#2796: Labeled subqueries
----------------------------------+------------------------------------
Reporter: kvesteri | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone:
Component: sql | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by kvesteri):
My bad, found a way for doing this using alias construct.
{{{#!python
from sqlalchemy.sql.expression import alias
company_ids = db.select([Company.id], from_obj=Company.__table__)
print db.session.execute(db.select([db.func.count(db.distinct('id'))],
from_obj=alias(company_ids, name='company_ids')))
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2796#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-06 09:42:33
|
#2796: Labeled subqueries
----------------------------------+------------------------------------
Reporter: kvesteri | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone:
Component: sql | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by kvesteri):
I was able to bypass this problem by forcing the subquery to render itself
as string before passing it to from_obj. This introduces other problems
because then I can't use SQLAlchemy's correlated subqueries for example.
{{{#!python
company_ids = db.select([Company.id], from_obj=Company.__table__)
print db.session.execute(db.select([db.func.count(db.distinct('id'))],
from_obj=unicode(company_ids.label('company_ids'))))
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2796#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-06 09:25:37
|
#2796: Labeled subqueries
----------------------------------+------------------------------------
Reporter: kvesteri | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone:
Component: sql | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by kvesteri):
As a follow up it would be nice to be able to use labeled unioned
subqueries, for example:
{{{#!python
import sqlalchemy as db
company_ids = db.select([Company.id], from_obj=Company.__table__)
user_ids = db.select([User.id], from_obj=User.__table__)
print db.session.execute(db.select([db.func.count(db.distinct('id'))],
from_obj=company_ids.union(user_ids).label('entity_ids'))).fetchall()
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2796#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-06 09:13:21
|
#2796: Labeled subqueries
----------------------+-----------------------------------------
Reporter: kvesteri | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone:
Component: sql | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
----------------------+-----------------------------------------
Atleast PostgreSQL requires aliases for all subqueries. I'm trying to
formulate the following query into SQLAlchemy expression construct:
{{{#!SQL
SELECT count(DISTINCT :param_1) AS count_1
FROM (
SELECT company.id AS id
FROM company
) AS company_ids
}}}
Now assume Company is any declarative class containing only one column
(id).
{{{#!python
company_ids = db.select([Company.id], from_obj=Company.__table__)
print db.session.execute(db.select([db.func.count(db.distinct('id'))],
from_obj=company_ids.label('company_ids')))
}}}
It gives me the following exception:
AttributeError: Neither 'Label' object nor 'Comparator' object has an
attribute '_hide_froms'
I know the query I provided here makes a little sense (it could be
simplified to a query without subqueries). I provided it as an example of
failing scenario.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2796>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 18:52:11
|
#2459: add cursor execute events to Connection._cursor_execute
-----------------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: closed
Priority: high | Milestone: 0.8.0b1
Component: engine | Severity: major - 1-3 hours
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+-------------------------------
Comment (by zzzeek):
everytime i try jython it is loaded with show stoppers, so yeah, surprised
you can get jython 2.7 to run at all. it hasn't been a viable platform
for a long time.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2459#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 18:44:21
|
#2795: Add pypyodbc support
------------------------------+----------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.8.xx
Component: mssql | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: in queue |
------------------------------+----------------------------------
Comment (by zzzeek):
yeah I've just spent an hour in pyodbc pergatory again which is a good way
to feel pretty sad....
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795#comment:5>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 18:15:55
|
#2795: Add pypyodbc support
------------------------------+----------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.8.xx
Component: mssql | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: in queue |
------------------------------+----------------------------------
Comment (by zzzeek):
so having all the usual problems I get with pyodbc and some others, I've
given them
http://code.google.com/p/pypyodbc/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Priority%20Milestone%20Status%20Owner%20Summary&groupby=&sort=&id=20
regarding my connection hangs, also the usual issue of if the driver
chokes on unicode bound parameters or not, will see if the FreeTDS version
is a factor here (probably).
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795#comment:4>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 17:29:50
|
#2795: Add pypyodbc support
------------------------------+----------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.8.xx
Component: mssql | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: in queue |
------------------------------+----------------------------------
Changes (by zzzeek):
* milestone: => 0.8.xx
* component: cextensions => mssql
* severity: no triage selected yet => minor - half an hour
* status_field: awaiting triage => in queue
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 17:29:24
|
#2795: Add pypyodbc support
----------------------------------+------------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by zzzeek):
easy enough to add a new connector but I'd want to see this thing connect
successfully for me, pyodbc is working fine for that same DSN....
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 17:28:52
|
#2795: Add pypyodbc support
----------------------------------+------------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+------------------------------------
Comment (by zzzeek):
have you tried pypyodbc? seems to be hanging for me. You can pass it to
create_engine() like this:
{{{
#!python
from sqlalchemy import create_engine
import pypyodbc
e = create_engine("mssql+pyodbc://scott:tiger@ms_2005", echo=True,
module=pypyodbc)
c = e.connect()
print c.execute("select 1")
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 07:33:27
|
#2795: Add pypyodbc support
-------------------------+-----------------------------------------
Reporter: sontek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone:
Component: cextensions | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
-------------------------+-----------------------------------------
pypyodbc is a drop-in replacement for pyodbc that works on top of pypy:
https://code.google.com/p/pypyodbc/
It would be nice if there was support for it out of the box in SQLAlchemy
so that we could switch between cpython and pypy with a swap of a
connection string. Here are their docs on all that is required:
https://code.google.com/p/pypyodbc/wiki/Enable_SQLAlchemy_on_PyPy#Extend_SQLAlchemy_drivers
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2795>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-08-05 04:45:47
|
#2459: add cursor execute events to Connection._cursor_execute
-----------------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: closed
Priority: high | Milestone: 0.8.0b1
Component: engine | Severity: major - 1-3 hours
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+-------------------------------
Comment (by sayap):
Just want to note that the iterators chaining in
`_CompoundListener.__iter__` doesn't work as intended in Jython 2.7 due to
the following bug: http://bugs.jython.org/issue2015
Subsequently, event-related stuffs do not work in Jython 2.7, including
fundamental things like `cascade='save-update'`.
A temporary workaround for Jython 2.7 users is to change
`_CompoundListener.__iter__` to yield from 2 for-loops instead, although
perhaps it makes more sense to wait until Jython 2.7 has a stable release.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2459#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|