annotate _mysql_fields.c @ 48:f4fd8c20511c MySQLdb

Read a default file in the test setUp. Since Python 2.4, int() will return longs if needed so make all long references int as in Python 3.0 there is no more long due to int/long unification (new ints are old longs).
author adustman
date Sun, 22 Feb 2009 20:01:31 +0000
parents 28e9be1ca559
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
1 /* -*- mode: C; indent-tabs-mode: t; c-basic-offset: 8; -*- */
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
2
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
3 #include "_mysql.h"
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
4
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
5 static char _mysql_FieldObject__doc__[] =
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
6 "";
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
7
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
8 int
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
9 _mysql_FieldObject_Initialize(
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
10 _mysql_FieldObject *self,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
11 PyObject *args,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
12 PyObject *kwargs)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
13 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
14 static char *kwlist[] = {"result", "index", NULL};
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
15 _mysql_ResultObject *result=NULL;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
16 MYSQL_FIELD *field;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
17 unsigned int index;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
18 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi", kwlist,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
19 &result, &index))
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
20 return -1;
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
21
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
22 self->index = index;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
23 field = mysql_fetch_field_direct(result->result, index);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
24 if (!field) return -1;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
25 self->field = *field;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
26 self->result = (PyObject *) result;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
27 Py_INCREF(result);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
28 return 0;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
29 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
30
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
31 static int
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
32 _mysql_FieldObject_traverse(
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
33 _mysql_FieldObject *self,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
34 visitproc visit,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
35 void *arg)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
36 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
37 if (self->result)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
38 return visit(self->result, arg);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
39 return 0;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
40 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
41
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
42 static int
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
43 _mysql_FieldObject_clear(
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
44 _mysql_FieldObject *self)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
45 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
46 Py_XDECREF(self->result);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
47 self->result = NULL;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
48 return 0;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
49 }
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
50
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
51 static void
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
52 _mysql_FieldObject_dealloc(
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
53 _mysql_FieldObject *self)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
54 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
55 PyObject_GC_UnTrack((PyObject *)self);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
56 _mysql_FieldObject_clear(self);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
57 MyFree(self);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
58 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
59
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
60 static PyObject *
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
61 _mysql_FieldObject_repr(
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
62 _mysql_FieldObject *self)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
63 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
64 char buf[300];
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
65 snprintf(buf, 300, "<_mysql.field object at %lx>", (long)self);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
66 return PyString_FromString(buf);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
67 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
68
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
69 static PyMethodDef _mysql_FieldObject_methods[] = {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
70 {NULL, NULL} /* sentinel */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
71 };
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
72
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
73 static struct PyMemberDef _mysql_FieldObject_memberlist[] = {
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
74 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
75 "result",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
76 T_OBJECT,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
77 offsetof(_mysql_FieldObject, result),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
78 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
79 "Result set"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
80 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
81 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
82 "name",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
83 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
84 offsetof(_mysql_FieldObject, field.name),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
85 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
86 "The name of the field. If the field was given\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
87 an alias with an AS clause, the value of name is the alias."
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
88 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
89 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
90 "org_name",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
91 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
92 offsetof(_mysql_FieldObject, field.org_name),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
93 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
94 "The name of the field. Aliases are ignored."
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
95 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
96 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
97 "table",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
98 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
99 offsetof(_mysql_FieldObject, field.table),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
100 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
101 "The name of the table containing this field,\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
102 if it isn't a calculated field. For calculated fields,\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
103 the table value is an empty string. If the column is selected from a view,\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
104 table names the view. If the table or view was given an alias with an AS clause,\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
105 the value of table is the alias.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
106 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
107 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
108 "org_table",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
109 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
110 offsetof(_mysql_FieldObject, field.org_table),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
111 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
112 "The name of the table. Aliases are ignored.\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
113 If the column is selected from a view, org_table names the underlying table.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
114 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
115 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
116 "db",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
117 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
118 offsetof(_mysql_FieldObject, field.db),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
119 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
120 "The name of the database that the field comes from.\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
121 If the field is a calculated field, db is an empty string."
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
122 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
123 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
124 "catalog",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
125 T_STRING,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
126 offsetof(_mysql_FieldObject, field.catalog),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
127 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
128 "The catalog name. This value is always \"def\"."
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
129 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
130 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
131 "length",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
132 T_ULONG,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
133 offsetof(_mysql_FieldObject, field.length),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
134 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
135 "The width of the field.\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
136 as specified in the table definition.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
137 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
138 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
139 "max_length",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
140 T_ULONG,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
141 offsetof(_mysql_FieldObject, field.max_length),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
142 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
143 "The maximum width of the field for the result set\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
144 (the length of the longest field value for the rows actually in the\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
145 result set). If you use conn.store_result(), this contains the\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
146 maximum length for the field. If you use conn.use_result(),\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
147 the value of this variable is zero.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
148 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
149 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
150 "decimals",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
151 T_UINT,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
152 offsetof(_mysql_FieldObject, field.decimals),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
153 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
154 "The number of decimals for numeric fields.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
155 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
156 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
157 "charsetnr",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
158 T_UINT,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
159 offsetof(_mysql_FieldObject, field.charsetnr),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
160 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
161 "The character set number for the field."
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
162 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
163 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
164 "flags",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
165 T_UINT,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
166 offsetof(_mysql_FieldObject, field.flags),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
167 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
168 "Different bit-flags for the field.\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
169 The bits are enumerated in MySQLdb.constants.FLAG.\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
170 The flags value may have zero or more of these bits set.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
171 },
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
172 {
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
173 "type",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
174 T_UINT,
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
175 offsetof(_mysql_FieldObject, field.type),
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
176 RO,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
177 "The type of the field. The type values\n\
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
178 are enumerated in MySQLdb.constants.FIELD_TYPE.\n"
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
179 },
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
180 {NULL} /* Sentinel */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
181 };
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
182
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
183 static PyObject *
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
184 _mysql_FieldObject_getattr(
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
185 _mysql_FieldObject *self,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
186 char *name)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
187 {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
188 PyObject *res;
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
189 struct PyMemberDef *l;
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
190
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
191 res = Py_FindMethod(_mysql_FieldObject_methods, (PyObject *)self, name);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
192 if (res != NULL)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
193 return res;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
194 PyErr_Clear();
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
195
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
196 for (l = _mysql_FieldObject_memberlist; l->name != NULL; l++) {
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
197 if (strcmp(l->name, name) == 0)
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
198 return PyMember_GetOne((char *)self, l);
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
199 }
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
200
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
201 PyErr_SetString(PyExc_AttributeError, name);
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
202 return NULL;
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
203 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
204
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
205 static int
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
206 _mysql_FieldObject_setattr(
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
207 _mysql_FieldObject *self,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
208 char *name,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
209 PyObject *v)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
210 {
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
211 struct PyMemberDef *l;
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
212
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
213 if (v == NULL) {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
214 PyErr_SetString(PyExc_AttributeError,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
215 "can't delete attributes");
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
216 return -1;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
217 }
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
218
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
219
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
220 for (l = _mysql_FieldObject_memberlist; l->name != NULL; l++)
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
221 if (strcmp(l->name, name) == 0)
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
222 return PyMember_SetOne((char *)self, l, v);
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
223
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
224 PyErr_SetString(PyExc_AttributeError, name);
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
225 return -1;
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
226 }
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
227
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
228 PyTypeObject _mysql_FieldObject_Type = {
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
229 PyObject_HEAD_INIT(NULL)
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
230 0,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
231 "_mysql.field",
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
232 sizeof(_mysql_FieldObject),
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
233 0,
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
234 (destructor)_mysql_FieldObject_dealloc, /* tp_dealloc */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
235 0, /*tp_print*/
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
236 (getattrfunc)_mysql_FieldObject_getattr, /* tp_getattr */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
237 (setattrfunc)_mysql_FieldObject_setattr, /* tp_setattr */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
238 0, /*tp_compare*/
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
239 (reprfunc)_mysql_FieldObject_repr, /* tp_repr */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
240
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
241 /* Method suites for standard classes */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
242
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
243 0, /* (PyNumberMethods *) tp_as_number */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
244 0, /* (PySequenceMethods *) tp_as_sequence */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
245 0, /* (PyMappingMethods *) tp_as_mapping */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
246
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
247 /* More standard operations (here for binary compatibility) */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
248
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
249 0, /* (hashfunc) tp_hash */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
250 0, /* (ternaryfunc) tp_call */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
251 0, /* (reprfunc) tp_str */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
252 0, /* (getattrofunc) tp_getattro */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
253 0, /* (setattrofunc) tp_setattro */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
254
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
255 /* Functions to access object as input/output buffer */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
256 0, /* (PyBufferProcs *) tp_as_buffer */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
257
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
258 /* Flags to define presence of optional/expanded features */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
259 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
260
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
261 _mysql_FieldObject__doc__, /* (char *) tp_doc Documentation string */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
262
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
263 /* call function for all accessible objects */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
264 (traverseproc)_mysql_FieldObject_traverse, /* tp_traverse */
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
265
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
266 /* delete references to contained objects */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
267 (inquiry)_mysql_FieldObject_clear, /* tp_clear */
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
268
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
269 /* rich comparisons */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
270 0, /* (richcmpfunc) tp_richcompare */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
271
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
272 /* weak reference enabler */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
273 0, /* (long) tp_weaklistoffset */
45
28e9be1ca559 Remove more pre-py2.3 ifdef workarounds
kylev
parents: 43
diff changeset
274
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
275 /* Iterators */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
276 0, /* (getiterfunc) tp_iter */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
277 0, /* (iternextfunc) tp_iternext */
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
278
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
279 /* Attribute descriptor and subclassing stuff */
43
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
280 (struct PyMethodDef *)_mysql_FieldObject_methods, /* tp_methods */
e36420b7ae6e Member stuff is stable post py2.2, so remove the MyMember* workarounds
kylev
parents: 19
diff changeset
281 (struct PyMemberDef *)_mysql_FieldObject_memberlist, /*tp_members */
19
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
282 0, /* (struct getsetlist *) tp_getset; */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
283 0, /* (struct _typeobject *) tp_base; */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
284 0, /* (PyObject *) tp_dict */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
285 0, /* (descrgetfunc) tp_descr_get */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
286 0, /* (descrsetfunc) tp_descr_set */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
287 0, /* (long) tp_dictoffset */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
288 (initproc)_mysql_FieldObject_Initialize, /* tp_init */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
289 NULL, /* tp_alloc */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
290 NULL, /* tp_new */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
291 NULL, /* tp_free Low-level free-memory routine */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
292 0, /* (PyObject *) tp_bases */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
293 0, /* (PyObject *) tp_mro method resolution order */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
294 0, /* (PyObject *) tp_defined */
c3ecc32aea27 Missing file, but #1928858
adustman
parents:
diff changeset
295 };