• Home
  • Raw
  • Download

Lines Matching +full:no +full:- +full:eq +full:- +full:null

1 /* row.c - an enhanced tuple for database rows
3 * Copyright (C) 2005-2010 Gerhard Häring <gh@ghaering.de>
7 * This software is provided 'as-is', without any express or implied
8 * warranty. In no event will the authors be held liable for any damages
37 Py_CLEAR(self->data); in row_clear()
38 Py_CLEAR(self->description); in row_clear()
46 Py_VISIT(self->data); in row_traverse()
47 Py_VISIT(self->description); in row_traverse()
56 tp->tp_clear(self); in pysqlite_row_dealloc()
57 tp->tp_free(self); in pysqlite_row_dealloc()
78 assert(type != NULL && type->tp_alloc != NULL); in pysqlite_row_new_impl()
80 self = (pysqlite_Row *) type->tp_alloc(type, 0); in pysqlite_row_new_impl()
81 if (self == NULL) in pysqlite_row_new_impl()
82 return NULL; in pysqlite_row_new_impl()
84 self->data = Py_NewRef(data); in pysqlite_row_new_impl()
85 self->description = Py_NewRef(cursor->description); in pysqlite_row_new_impl()
92 PyObject *item = PyTuple_GetItem(self->data, idx); in pysqlite_row_item()
99 int eq = PyObject_RichCompareBool(left, right, Py_EQ); in equal_ignore_case() local
100 if (eq) { /* equal or error */ in equal_ignore_case()
101 return eq; in equal_ignore_case()
116 for (; len; len--, p1++, p2++) { in equal_ignore_case()
132 if (_idx == -1 && PyErr_Occurred()) in pysqlite_row_subscript()
133 return NULL; in pysqlite_row_subscript()
135 _idx += PyTuple_GET_SIZE(self->data); in pysqlite_row_subscript()
137 PyObject *item = PyTuple_GetItem(self->data, _idx); in pysqlite_row_subscript()
140 nitems = PyTuple_Size(self->description); in pysqlite_row_subscript()
144 obj = PyTuple_GET_ITEM(self->description, i); in pysqlite_row_subscript()
146 int eq = equal_ignore_case(idx, obj); in pysqlite_row_subscript() local
147 if (eq < 0) { in pysqlite_row_subscript()
148 return NULL; in pysqlite_row_subscript()
150 if (eq) { in pysqlite_row_subscript()
152 PyObject *item = PyTuple_GetItem(self->data, i); in pysqlite_row_subscript()
157 PyErr_SetString(PyExc_IndexError, "No item with that key"); in pysqlite_row_subscript()
158 return NULL; in pysqlite_row_subscript()
161 return PyObject_GetItem(self->data, idx); in pysqlite_row_subscript()
165 return NULL; in pysqlite_row_subscript()
172 return PyTuple_GET_SIZE(self->data); in pysqlite_row_length()
190 return NULL; in pysqlite_row_keys_impl()
192 nitems = PyTuple_Size(self->description); in pysqlite_row_keys_impl()
195 if (PyList_Append(list, PyTuple_GET_ITEM(PyTuple_GET_ITEM(self->description, i), 0)) != 0) { in pysqlite_row_keys_impl()
197 return NULL; in pysqlite_row_keys_impl()
206 return PyObject_GetIter(self->data); in pysqlite_iter()
211 return PyObject_Hash(self->description) ^ PyObject_Hash(self->data); in pysqlite_row_hash()
221 int eq = PyObject_RichCompareBool(self->description, other->description, Py_EQ); in pysqlite_row_richcompare() local
222 if (eq < 0) { in pysqlite_row_richcompare()
223 return NULL; in pysqlite_row_richcompare()
225 if (eq) { in pysqlite_row_richcompare()
226 return PyObject_RichCompare(self->data, other->data, opid); in pysqlite_row_richcompare()
235 {NULL, NULL}
251 {0, NULL},
262 PyTypeObject *pysqlite_RowType = NULL;
267 pysqlite_RowType = (PyTypeObject *)PyType_FromModuleAndSpec(module, &row_spec, NULL); in pysqlite_row_setup_types()
268 if (pysqlite_RowType == NULL) { in pysqlite_row_setup_types()
269 return -1; in pysqlite_row_setup_types()