summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/cextension/resultproxy.c
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-11-09 11:40:23 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-11-09 11:40:23 -0500
commita41c50ad63f688cce99fdb9920c4f7c24ef0c866 (patch)
treed811319676606ce89642bf316499e101c785b974 /lib/sqlalchemy/cextension/resultproxy.c
parent30bc42403754110df1fdec3037c7700cc4f26b70 (diff)
downloadsqlalchemy-a41c50ad63f688cce99fdb9920c4f7c24ef0c866.tar.gz
- Implemented sequence check capability for the C
version of RowProxy, as well as 2.7 style "collections.Sequence" registration for RowProxy. [ticket:1871]
Diffstat (limited to 'lib/sqlalchemy/cextension/resultproxy.c')
-rw-r--r--lib/sqlalchemy/cextension/resultproxy.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/cextension/resultproxy.c b/lib/sqlalchemy/cextension/resultproxy.c
index 7404b9ed2..73e127345 100644
--- a/lib/sqlalchemy/cextension/resultproxy.c
+++ b/lib/sqlalchemy/cextension/resultproxy.c
@@ -327,6 +327,12 @@ BaseRowProxy_subscript(BaseRowProxy *self, PyObject *key)
}
static PyObject *
+BaseRowProxy_getitem(PyObject *self, Py_ssize_t i)
+{
+ return BaseRowProxy_subscript((BaseRowProxy*)self, PyInt_FromSsize_t(i));
+}
+
+static PyObject *
BaseRowProxy_getattro(BaseRowProxy *self, PyObject *name)
{
PyObject *tmp;
@@ -506,7 +512,7 @@ static PySequenceMethods BaseRowProxy_as_sequence = {
(lenfunc)BaseRowProxy_length, /* sq_length */
0, /* sq_concat */
0, /* sq_repeat */
- 0, /* sq_item */
+ (ssizeargfunc)BaseRowProxy_getitem, /* sq_item */
0, /* sq_slice */
0, /* sq_ass_item */
0, /* sq_ass_slice */