sqlalchemy-tickets Mailing List for SQLAlchemy (Page 77)
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-10-03 17:02:33
|
#2824: Add ability to query column sets as one entity
------------------------------+-------------------------------
Reporter: vmagamedov | Owner: zzzeek
Type: enhancement | Status: new
Priority: high | Milestone: 0.9.0
Component: orm | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in progress |
------------------------------+-------------------------------
Comment (by zzzeek):
check out the approach I've taken to those in rf8a3a3d4ea2109295d297a2.
I've added tests that check that they're doing the right thing (aliasing,
unions, etc.).
see? now we have a feature, who knew.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2824#comment:11>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-03 13:39:25
|
#2824: Add ability to query column sets as one entity
------------------------------+-------------------------------
Reporter: vmagamedov | Owner: zzzeek
Type: enhancement | Status: new
Priority: high | Milestone: 0.9.0
Component: orm | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in progress |
------------------------------+-------------------------------
Comment (by vmagamedov):
I'm published my library on !GitHub:
https://github.com/vmagamedov/sqlconstruct - it is not
finished/polished/documented yet, but I'm already wrote some tests and
they can help.
Here is my Bundle subclass:
{{{#!python
class Construct(Bundle):
def __init__(self, spec):
self._spec = OrderedDict(spec)
self._columns = tuple(set(chain(*map(_yield_columns,
spec.values()))))
super(Construct, self).__init__(None, *self._columns)
def from_row(self, row):
values_map = dict(zip(self._columns, row))
get_value = partial(_get_value_from_map, values_map)
return Object(zip(
self._spec.keys(),
map(get_value, self._spec.values()),
))
def create_row_processor(self, query, procs, labels):
def proc(row, result):
return self.from_row([proc(row, None) for proc in procs])
return proc
}}}
Some errors which are speaks for themselves:
{{{
======================================================================
ERROR: test_query_count (test_sqlconstruct.TestConstruct)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/vm/ws/sqlconstruct/test_sqlconstruct.py", line 336, in
test_query_count
self.assertEqual(query.count(), 2)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 2539, in count
return self.from_self(col).scalar()
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 952, in from_self
q = self._from_selectable(fromclause)
File "<string>", line 1, in <lambda>
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 53, in generate
fn(self, *args[1:], **kw)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 981, in _from_selectable
e.adapt_to_selectable(self, self._from_obj[0])
AttributeError: '_BundleEntity' object has no attribute
'adapt_to_selectable'
======================================================================
ERROR: test_query_with_explicit_join (test_sqlconstruct.TestConstruct)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/vm/ws/sqlconstruct/test_sqlconstruct.py", line 444, in
test_query_with_explicit_join
.join(self.b_cls.a)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1673, in join
from_joinpoint=from_joinpoint)
File "<string>", line 1, in <lambda>
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 53, in generate
fn(self, *args[1:], **kw)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1806, in _join
outerjoin, create_aliases, prop)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1854, in _join_left_to_right
self._join_to_left(l_info, left, right, onclause, outerjoin)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1967, in _join_to_left
if ent.corresponds_to(left):
AttributeError: '_BundleEntity' object has no attribute 'corresponds_to'
======================================================================
ERROR: test_query_with_implicit_join_ge_08
(test_sqlconstruct.TestConstruct)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/vm/ws/sqlconstruct/test_sqlconstruct.py", line 503, in
test_query_with_implicit_join_ge_08
.join(self.a_cls)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1673, in join
from_joinpoint=from_joinpoint)
File "<string>", line 1, in <lambda>
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 53, in generate
fn(self, *args[1:], **kw)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1806, in _join
outerjoin, create_aliases, prop)
File
"/Users/vm/ws/sqlconstruct/.tox/py27sqla0X/src/sqlalchemy/lib/sqlalchemy/orm/query.py",
line 1819, in _join_left_to_right
left = self._entities[0].entity_zero_or_selectable
AttributeError: '_BundleEntity' object has no attribute
'entity_zero_or_selectable'
}}}
Other tests failed because bundles can't be selected as "single entity". I
think that bundles can work like models: when you querying only one
bundle, query should yield bundles and not keyed tuples with one bundle.
Here is my custom entity wrapper with some hacks to fix tests (very
specific, supports only Construct entities for simplicity):
{{{#!python
class _ConstructEntity(_QueryEntity):
"""Queryable construct entities
Adapted from: http://www.sqlalchemy.org/trac/ticket/2824
"""
filter_fn = id
entities = ()
entity_zero_or_selectable = None
# hack for sqlalchemy.orm.query:Query class
class mapper:
class dispatch:
append_result = False
def __init__(self, query, struct):
query._entities.append(self)
self.struct = struct
def corresponds_to(self, entity):
return False
def adapt_to_selectable(self, query, sel):
query._entities.append(self)
#def setup_entity(self, *args, **kwargs):
# raise NotImplementedError
def setup_context(self, query, context):
context.primary_columns.extend(self.struct.columns)
def row_processor(self, query, context, custom_rows):
def processor(row, result):
struct_row = [row[c] for c in self.struct.columns]
return self.struct.from_row(struct_row)
return processor, None
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2824#comment:10>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-02 23:42:18
|
#2824: Add ability to query column sets as one entity
------------------------------+-------------------------------
Reporter: vmagamedov | Owner: zzzeek
Type: enhancement | Status: new
Priority: high | Milestone: 0.9.0
Component: orm | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in progress |
------------------------------+-------------------------------
Changes (by zzzeek):
* priority: medium => high
* status_field: not decided upon => in progress
* severity: very major - up to 2 days => major - 1-3 hours
* milestone: 0.x.xx => 0.9.0
Comment:
I have a need for something like this specific to composites, so I've
implemented an experimental version of a new feature here in the
ticket_2824 branch, if you want to check that out. Basically you override
the Bundle class, implement the create_row_processor method as you wish
and you can do whatever you want with a grouping of columns.
I need to test out the composite functionality here in terms of my app
over here before I merge this in.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2824#comment:9>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 17:47:23
|
#874: Monetdb support
-----------------------------------+------------------------------------
Reporter: guest | Owner: zzzeek
Type: enhancement | Status: closed
Priority: medium | Milestone: blue sky
Component: engine | Severity: no triage selected yet
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => fixed
* status_field: awaiting triage => completed/closed
Comment:
it's now an external project using the external dialect system:
r396186ef3974a0b44afb73f967e0ff810f91e654
r78c5249bf7d39c3aaa4954c7815a1ef48f2776db
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/874#comment:7>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 16:15:29
|
#2832: event.remove fails when used for method in 0.9
-----------------------------------+----------------------------------
Reporter: ods | Owner: zzzeek
Type: defect | Status: closed
Priority: high | Milestone: 0.9.0
Component: engine | Severity: minor - half an hour
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => fixed
* severity: major - 1-3 hours => minor - half an hour
* status_field: in queue => completed/closed
Comment:
OK that was easy enough thanks for the report,
r3d4d93332951a790e7d74afc5a3e.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2832#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 15:54:30
|
#2832: event.remove fails when used for method in 0.9
---------------------------+-------------------------------
Reporter: ods | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.9.0
Component: engine | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in queue |
---------------------------+-------------------------------
Changes (by zzzeek):
* priority: medium => high
* status_field: awaiting triage => in queue
* component: (none) => engine
* severity: no triage selected yet => major - 1-3 hours
* milestone: => 0.9.0
Comment:
I think I might have known that. will have to see if the id() logic can
be more intelligent
{{{
#!diff
diff --git a/test/base/test_events.py b/test/base/test_events.py
index d2bfb09..57da149 100644
--- a/test/base/test_events.py
+++ b/test/base/test_events.py
@@ -966,6 +966,27 @@ class RemovalTest(fixtures.TestBase):
eq_(m1.mock_calls, [call("x")])
+ def test_instance(self):
+ Target = self._fixture()
+
+ m1 = Mock()
+ class Foo(object):
+ def evt(self, arg):
+ m1(arg)
+
+ f1 = Foo()
+
+ event.listen(Target, "event_one", f1.evt)
+
+ t1 = Target()
+ t1.dispatch.event_one("x")
+
+ event.remove(Target, "event_one", f1.evt)
+
+ t1.dispatch.event_one("y")
+
+ eq_(m1.mock_calls, [call("x")])
+
def test_propagate(self):
Target = self._fixture()
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2832#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 15:47:32
|
#2833: viewonly=True should prevent object from marked as dirty
--------------------+------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: high | Milestone: 0.9.0
Component: orm | Severity: major - 1-3 hours
Keywords: | Progress State: in queue
--------------------+------------------------------------
{{{
#!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", backref=backref("bs", viewonly=True))
e = create_engine("sqlite://", echo=True)
Base.metadata.create_all(e)
sess = Session(e)
a, b = A(), B()
sess.add_all([a, b])
sess.commit()
b.a = a
assert b in sess.dirty
assert a not in sess.dirty # "a" isn't dirty here, esp. w/ viewonly
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2833>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-10-01 12:42:57
|
#2832: event.remove fails when used for method in 0.9
--------------------+-----------------------------------------
Reporter: ods | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: (none) | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
--------------------+-----------------------------------------
`_EventKey._key` uses `id()` of listener function. This causes problem
when method is used since in python new method object (with different id,
but equal when compared with `==`) is created each time it's accessed. As
a result `event.remove` fails for it with exception "`InvalidRequestError:
No listeners found for event …`".
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2832>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-30 23:42:07
|
#1631: pg8000 not working with enums.
-----------------------------------+------------------------------------
Reporter: guest | Owner: zzzeek
Type: defect | Status: closed
Priority: medium | Milestone: 0.6.xx
Component: postgres | Severity: no triage selected yet
Resolution: worksforme | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Comment (by zzzeek):
that is doable now that we support column_expression and bind_expression:
http://docs.sqlalchemy.org/en/rel_0_8/core/types.html#types-sql-value-
processing - what's "e" above, is that a CAST using a column name for the
type?
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/1631#comment:6>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-30 23:03:18
|
#1631: pg8000 not working with enums.
-----------------------------------+------------------------------------
Reporter: guest | Owner: zzzeek
Type: defect | Status: closed
Priority: medium | Milestone: 0.6.xx
Component: postgres | Severity: no triage selected yet
Resolution: worksforme | Keywords:
Progress State: completed/closed |
-----------------------------------+------------------------------------
Comment (by tlocke):
I've put up some code for adding enum support to PG8000 at
https://github.com/tlocke/pg8000/tree/enum. This solution does need a
cast, so the SQL that SA emits would need to look like:
{{{
INSERT INTO somes (e) VALUES (cast(%s as e)) RETURNING somes.some_id'
['one']
}}}
Would that work?
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/1631#comment:5>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-29 21:28:32
|
#2819: VMware vFabric Postgres - Could not determine version from string
-----------------------------------+---------------------------------------
Reporter: sjschaefer | Owner: zzzeek
Type: defect | Status: closed
Priority: high | Milestone: 0.8.xx
Component: postgres | Severity: trivial - <10 minutes
Resolution: fixed | Keywords: postgres,vpostgres,vmware
Progress State: completed/closed |
-----------------------------------+---------------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => fixed
* status_field: in queue => completed/closed
Comment:
ultimately I changed it to re.match('.*(?:Postgresql...
the whole story for master/0.8:
diff:@bb12d79f7bb3d88a7fe62e6c6b95185:51c92e1132e48e453dda2297ffd891c8558d1d2
0.8
diff:@4cace9d3d52ea602fdae8254fa32a2e30:94d421ca2f2d9f45b5feb4419a3
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2819#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-29 21:15:58
|
#2821: Engine.__repr__ should censor out password
-----------------------------------+----------------------------------
Reporter: gthb | Owner: zzzeek
Type: enhancement | Status: closed
Priority: high | Milestone: 0.8.xx
Component: engine | Severity: minor - half an hour
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => fixed
* status_field: in progress => completed/closed
Comment:
r610684bb080095dcd8a2ca6cef1ff4 r38e71f52eceda944bc167f347fba63
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2821#comment:2>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:57:14
|
#2685: default schema as an execution argument
------------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: new
Priority: high | Milestone: 0.9.xx
Component: engine | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: needs tests |
------------------------------+-------------------------------
Changes (by zzzeek):
* milestone: 0.9.0 => 0.9.xx
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2685#comment:3>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:56:15
|
#2706: add "permanent=True" flag to session.close()
-----------------------------------+----------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: closed
Priority: medium | Milestone: 0.8.xx
Component: orm | Severity: minor - half an hour
Resolution: wontfix | Keywords:
Progress State: completed/closed |
-----------------------------------+----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => wontfix
* status_field: in queue => completed/closed
Comment:
like #2760 im not really getting excited about this. we can reopen if we
want to revisit at some point
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2706#comment:4>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:55:11
|
#2760: "expire=False" option on session.commit() ?
-----------------------------------+----------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: closed
Priority: medium | Milestone: 0.9.0
Component: orm | Severity: minor - half an hour
Resolution: wontfix | Keywords:
Progress State: completed/closed |
-----------------------------------+----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => wontfix
* status_field: in queue => completed/closed
Comment:
im not getting excited about this feature, let's revisit someday if we
actually want this
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2760#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:54:36
|
#2792: settable polymorphic identity
----------------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.9.xx
Component: orm | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+-------------------------------
Changes (by zzzeek):
* milestone: 0.9.0 => 0.9.xx
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2792#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:54:21
|
#2797: expression-level many-to-one comparison
------------------------------+----------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.9.xx
Component: orm | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: in queue |
------------------------------+----------------------------------
Changes (by zzzeek):
* milestone: 0.9.0 => 0.9.xx
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2797#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:46:24
|
#2823: clarify docs regarding true()/false() constants, that these are not fully
compatible on many backends
-----------------------------------+----------------------------------
Reporter: leavittx | Owner:
Type: defect | Status: closed
Priority: medium | Milestone: 0.8.xx
Component: mssql | Severity: minor - half an hour
Resolution: duplicate | Keywords:
Progress State: completed/closed |
-----------------------------------+----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => duplicate
* status_field: in queue => completed/closed
Comment:
actually this is a dupe of #2804. I might try to see if we can just
coerce any non-compared boolean into "x == 1".
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2823#comment:8>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-26 20:45:48
|
#2804: coerce_to_bool for where(), having(), etc.
------------------------------+-------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: enhancement | Status: new
Priority: medium | Milestone: 0.9.0
Component: sql | Severity: major - 1-3 hours
Resolution: | Keywords:
Progress State: in queue |
------------------------------+-------------------------------
Comment (by zzzeek):
heh, see also #2823 where I'm saying that we *don't* want to do this,
though sort of looking at it differently.
true/false on a system that doesn't support t/f, it's going to be 1 or 0.
If we say that any boolean type including true/false that is evaluated in
any kind of context that is *not* a comparison just becomes "<val> == 1",
that might be a solution for this and also #2823.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2804#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-25 15:00:24
|
#2831: ForeignKey has a bogus "schema" argument
---------------------+---------------------------------------
Reporter: zzzeek | Owner: zzzeek
Type: defect | Status: new
Priority: highest | Milestone: 0.8.xx
Component: schema | Severity: minor - half an hour
Keywords: | Progress State: in queue
---------------------+---------------------------------------
see r8301651428be5396b76f7d20c8
steps:
1. in 0.8., raise a warning when "schema" is present
2. in 0.8, document this parameter, "not used", perhaps a red warning
3. in 0.9, remove
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2831>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
#2823: clarify docs regarding true()/false() constants, that these are not fully
compatible on many backends
---------------------------+----------------------------------
Reporter: leavittx | Owner:
Type: defect | Status: new
Priority: medium | Milestone: 0.8.xx
Component: mssql | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: in queue |
---------------------------+----------------------------------
Changes (by zzzeek):
* severity: no triage selected yet => minor - half an hour
* status_field: needs questions answered => in queue
* milestone: => 0.8.xx
Comment:
the true/false constants are a new thing overall and were to suit some
usages on Postgresql where the exact expression "IS TRUE/FALSE" is needed.
I'd prefer if people don't use these constructs otherwise, rather than
trying to simulate their full effect on backends that don't support it.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2823#comment:7>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-24 17:02:05
|
#2830: Warnings in test suite
----------------------------------+----------------------------------
Reporter: Arfrever | Owner: zzzeek
Type: defect | Status: new
Priority: low | Milestone: 0.9.xx
Component: tests | Severity: minor - half an hour
Resolution: | Keywords:
Progress State: awaiting triage |
----------------------------------+----------------------------------
Changes (by zzzeek):
* milestone: => 0.9.xx
Comment:
for the machinery one, the approach should resemble what mako has
[https://bitbucket.org/zzzeek/mako/src/e1086cd37e7075102fe9b895372ecacb98732457/mako/compat.py?at=master#cl-51
here]
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2830#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-24 05:47:42
|
#2830: Warnings in test suite
----------------------+---------------------------------------
Reporter: Arfrever | Owner: zzzeek
Type: defect | Status: new
Priority: low | Milestone:
Component: tests | Severity: minor - half an hour
Keywords: | Progress State: awaiting triage
----------------------+---------------------------------------
When warnings are enabled (using e.g. PYTHONWARNINGS="d" environmental
variable), then test suite of SQLAlchemy triggers 2 DeprecationWarnings
and 2 ResourceWarnings.
Results for SQLAlchemy trunk:
{{{
$ python3.3 -Wd sqla_nose.py
sqla_nose.py:21: DeprecationWarning: imp.load_source() is deprecated; use
importlib.machinery.SourceFileLoader(name, pathname).load_module() instead
noseplugin = imp.load_source("noseplugin", path)
.SSSSSSS.......S.......SS.SSS...........SS..........................................................................................................................................................................................S.............SSSS..........SSSS........S.......................SSSS.SS.S.S.S.S..SS...............................SSSSSSS..SSSSSSSSS.............................SSSSS.SSSS......S.......SSS..SSS..................SS.......SSSSSSS.SSSS.................................................../tmp/sqlalchemy/./lib/sqlalchemy/testing/engines.py:37:
UserWarning: testing_reaper couldn't rollback/close connection: Cannot
operate on a closed database.
"rollback/close connection: %s" % e)
.........S.SS.S.S.SS..SSS.S.S.S.S............S..S...................S...S...........................................................................S..........S.....................................S...S../tmp/sqlalchemy/test/engine/test_parseconnect.py:108:
DeprecationWarning: This method will be removed in future versions. Use
'parser.read_file()' instead.
ini.readfp(StringIO(raw))
................................................................................SS.................................SS.....SS..................................................S.SSSSS....SSSS..................SS.......S.S....SS.SS....S.SS.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
.................................................................................................................................................................................................................................................................................................................................................................................................Error
emptying table d: OperationalError('(OperationalError) no such table: d',)
Error emptying table c: OperationalError('(OperationalError) no such
table: c',)
Error emptying table b: OperationalError('(OperationalError) no such
table: b',)
Error emptying table a: OperationalError('(OperationalError) no such
table: a',)
.Error emptying table d: OperationalError('(OperationalError) no such
table: d',)
Error emptying table c: OperationalError('(OperationalError) no such
table: c',)
Error emptying table b: OperationalError('(OperationalError) no such
table: b',)
Error emptying table a: OperationalError('(OperationalError) no such
table: a',)
.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S...........................................................................................................................................................................................................................................................................................................................................................................................
.......................................................................................................................................................................................................................................................................S.......S..S.SSS.S..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S................................S..S.....................S...................................................................................SSS.S.........SSSSSSSS......SSSSSSS........SS...SS...............S.............................S....
.................................................SS.S...................................................................................................S..............................................................................................................................................................................................................................S...SS...S.S...S....SS......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................S......S..................................
.........S.....................SS.....S...........................................S..SSSS......................................................................................................................................S......................./tmp/sqlalchemy/test/sql/test_types.py:978:
ResourceWarning: unclosed file <_io.BufferedReader
name='/tmp/sqlalchemy/test/sql/../binary_data_one.dat'>
return open(f, mode='rb').read()
/tmp/sqlalchemy/test/sql/test_types.py:978: ResourceWarning: unclosed file
<_io.BufferedReader
name='/tmp/sqlalchemy/test/sql/../binary_data_two.dat'>
return open(f, mode='rb').read()
..............................................................................SSSSSS...............
----------------------------------------------------------------------
Ran 5323 tests in 455.797s
OK (SKIP=198)
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2830>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-23 00:37:19
|
#2829: Removed some now unneeded version checks
-----------------------------------+-----------------------------------
Reporter: alex_gaynor | Owner: zzzeek
Type: task | Status: closed
Priority: medium | Milestone: 0.9.0
Component: utils | Severity: trivial - <10 minutes
Resolution: fixed | Keywords:
Progress State: completed/closed |
-----------------------------------+-----------------------------------
Changes (by zzzeek):
* status: new => closed
* resolution: => fixed
* status_field: awaiting triage => completed/closed
* component: (none) => utils
* milestone: => 0.9.0
Comment:
coolio, thanks! r08a6a8b51916ab1d084a0070 you can also pullreq on
[https://github.com/zzzeek/sqlalchemy github] or
[https://bitbucket.org/zzzeek/sqlalchemy bitbucket]
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2829#comment:1>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|
|
From: sqlalchemy <mi...@zz...> - 2013-09-22 18:57:52
|
#2829: Removed some now unneeded version checks
-------------------------+----------------------------------------
Reporter: alex_gaynor | Owner: zzzeek
Type: task | Status: new
Priority: medium | Milestone:
Component: (none) | Severity: trivial - <10 minutes
Keywords: | Progress State: awaiting triage
-------------------------+----------------------------------------
Now that 2.6 is the minimum version, there are a bunch of version checks
which can be removed.
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2829>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|