Mercurial > p > mysql-python > mysqldb-2
comparison _mysql_results.c @ 42:fdf0cabb27be MySQLdb
Member stuff is stable post py2.2, so remove the MyMember* workarounds
author | kylev |
---|---|
date | Tue, 17 Feb 2009 05:55:24 +0000 |
parents | 9863f08a337c |
children | 2b9a9814daab |
comparison
equal
deleted
inserted
replaced
41:e80676c3505f | 42:fdf0cabb27be |
---|---|
1 /* -*- mode: C; indent-tabs-mode: t; c-basic-offset: 8; -*- */ | |
2 | |
1 #include "_mysql.h" | 3 #include "_mysql.h" |
2 | 4 |
3 static char _mysql_ResultObject__doc__[] = | 5 static char _mysql_ResultObject__doc__[] = |
4 "result(connection, use=0, converter={}) -- Result set from a query.\n\ | 6 "result(connection, use=0, converter={}) -- Result set from a query.\n\ |
5 \n\ | 7 \n\ |
621 _mysql_ResultObject_num_rows__doc__ | 623 _mysql_ResultObject_num_rows__doc__ |
622 }, | 624 }, |
623 {NULL, NULL} /* sentinel */ | 625 {NULL, NULL} /* sentinel */ |
624 }; | 626 }; |
625 | 627 |
626 static MyMemberlist(_mysql_ResultObject_memberlist)[] = { | 628 static struct PyMemberDef _mysql_ResultObject_memberlist[] = { |
627 MyMember( | 629 { |
628 "converter", | 630 "converter", |
629 T_OBJECT, | 631 T_OBJECT, |
630 offsetof(_mysql_ResultObject,converter), | 632 offsetof(_mysql_ResultObject, converter), |
631 RO, | 633 RO, |
632 "Type conversion mapping" | 634 "Type conversion mapping" |
633 ), | 635 }, |
634 {NULL} /* Sentinel */ | 636 {NULL} /* Sentinel */ |
635 }; | 637 }; |
636 | 638 |
637 static PyObject * | 639 static PyObject * |
638 _mysql_ResultObject_getattr( | 640 _mysql_ResultObject_getattr( |
639 _mysql_ResultObject *self, | 641 _mysql_ResultObject *self, |
640 char *name) | 642 char *name) |
641 { | 643 { |
642 PyObject *res; | 644 PyObject *res; |
645 struct PyMemberDef *l; | |
643 | 646 |
644 res = Py_FindMethod(_mysql_ResultObject_methods, (PyObject *)self, name); | 647 res = Py_FindMethod(_mysql_ResultObject_methods, (PyObject *)self, name); |
645 if (res != NULL) | 648 if (res != NULL) |
646 return res; | 649 return res; |
647 PyErr_Clear(); | 650 PyErr_Clear(); |
648 #if PY_VERSION_HEX < 0x02020000 | 651 |
649 return PyMember_Get((char *)self, _mysql_ResultObject_memberlist, name); | 652 for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) { |
650 #else | 653 if (strcmp(l->name, name) == 0) |
651 { | 654 return PyMember_GetOne((char *)self, l); |
652 MyMemberlist(*l); | 655 } |
653 for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) { | 656 |
654 if (strcmp(l->name, name) == 0) | 657 PyErr_SetString(PyExc_AttributeError, name); |
655 return PyMember_GetOne((char *)self, l); | 658 return NULL; |
656 } | |
657 PyErr_SetString(PyExc_AttributeError, name); | |
658 return NULL; | |
659 } | |
660 #endif | |
661 } | 659 } |
662 | 660 |
663 static int | 661 static int |
664 _mysql_ResultObject_setattr( | 662 _mysql_ResultObject_setattr( |
665 _mysql_ResultObject *self, | 663 _mysql_ResultObject *self, |
666 char *name, | 664 char *name, |
667 PyObject *v) | 665 PyObject *v) |
668 { | 666 { |
667 struct PyMemberDef *l; | |
668 | |
669 if (v == NULL) { | 669 if (v == NULL) { |
670 PyErr_SetString(PyExc_AttributeError, | 670 PyErr_SetString(PyExc_AttributeError, |
671 "can't delete connection attributes"); | 671 "can't delete connection attributes"); |
672 return -1; | 672 return -1; |
673 } | 673 } |
674 #if PY_VERSION_HEX < 0x02020000 | 674 |
675 return PyMember_Set((char *)self, _mysql_ResultObject_memberlist, name, v); | 675 for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) |
676 #else | 676 if (strcmp(l->name, name) == 0) |
677 { | 677 return PyMember_SetOne((char *)self, l, v); |
678 MyMemberlist(*l); | 678 |
679 for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) | |
680 if (strcmp(l->name, name) == 0) | |
681 return PyMember_SetOne((char *)self, l, v); | |
682 } | |
683 PyErr_SetString(PyExc_AttributeError, name); | 679 PyErr_SetString(PyExc_AttributeError, name); |
684 return -1; | 680 return -1; |
685 #endif | |
686 } | 681 } |
687 | 682 |
688 PyTypeObject _mysql_ResultObject_Type = { | 683 PyTypeObject _mysql_ResultObject_Type = { |
689 PyObject_HEAD_INIT(NULL) | 684 PyObject_HEAD_INIT(NULL) |
690 0, | 685 0, |
746 #if PY_VERSION_HEX >= 0x02020000 | 741 #if PY_VERSION_HEX >= 0x02020000 |
747 /* Added in release 2.2 */ | 742 /* Added in release 2.2 */ |
748 /* Iterators */ | 743 /* Iterators */ |
749 0, /* (getiterfunc) tp_iter */ | 744 0, /* (getiterfunc) tp_iter */ |
750 0, /* (iternextfunc) tp_iternext */ | 745 0, /* (iternextfunc) tp_iternext */ |
751 | 746 |
752 /* Attribute descriptor and subclassing stuff */ | 747 /* Attribute descriptor and subclassing stuff */ |
753 (struct PyMethodDef *) _mysql_ResultObject_methods, /* tp_methods */ | 748 (struct PyMethodDef *)_mysql_ResultObject_methods, /* tp_methods */ |
754 (MyMemberlist(*)) _mysql_ResultObject_memberlist, /*tp_members */ | 749 (struct PyMemberDef *)_mysql_ResultObject_memberlist, /*tp_members */ |
755 0, /* (struct getsetlist *) tp_getset; */ | 750 0, /* (struct getsetlist *) tp_getset; */ |
756 0, /* (struct _typeobject *) tp_base; */ | 751 0, /* (struct _typeobject *) tp_base; */ |
757 0, /* (PyObject *) tp_dict */ | 752 0, /* (PyObject *) tp_dict */ |
758 0, /* (descrgetfunc) tp_descr_get */ | 753 0, /* (descrgetfunc) tp_descr_get */ |
759 0, /* (descrsetfunc) tp_descr_set */ | 754 0, /* (descrsetfunc) tp_descr_set */ |