148 |
148 |
149 char *error_message = NULL; |
149 char *error_message = NULL; |
150 char *errstr = NULL; |
150 char *errstr = NULL; |
151 |
151 |
152 int p; |
152 int p; |
|
153 |
|
154 if (statement->metadata) { |
|
155 /* |
|
156 * free existing metadata from any previous executions |
|
157 */ |
|
158 mysql_free_result(statement->metadata); |
|
159 statement->metadata = NULL; |
|
160 } |
153 |
161 |
154 if (!statement->stmt) { |
162 if (!statement->stmt) { |
155 lua_pushboolean(L, 0); |
163 lua_pushboolean(L, 0); |
156 lua_pushstring(L, DBI_ERR_EXECUTE_INVALID); |
164 lua_pushstring(L, DBI_ERR_EXECUTE_INVALID); |
157 return 2; |
165 return 2; |
331 LUA_PUSH_ATTRIB_NIL(name); |
339 LUA_PUSH_ATTRIB_NIL(name); |
332 } else { |
340 } else { |
333 LUA_PUSH_ARRAY_NIL(d); |
341 LUA_PUSH_ARRAY_NIL(d); |
334 } |
342 } |
335 } else if (lua_push == LUA_PUSH_INTEGER) { |
343 } else if (lua_push == LUA_PUSH_INTEGER) { |
336 if (named_columns) { |
344 if (fields[i].type == MYSQL_TYPE_YEAR || fields[i].type == MYSQL_TYPE_SHORT) { |
337 LUA_PUSH_ATTRIB_INT(name, *(int *)(bind[i].buffer)); |
345 if (named_columns) { |
|
346 LUA_PUSH_ATTRIB_INT(name, *(short *)(bind[i].buffer)); |
|
347 } else { |
|
348 LUA_PUSH_ARRAY_INT(d, *(short *)(bind[i].buffer)); |
|
349 } |
|
350 } else if (fields[i].type == MYSQL_TYPE_TINY) { |
|
351 if (named_columns) { |
|
352 LUA_PUSH_ATTRIB_INT(name, (int)*(char *)(bind[i].buffer)); |
|
353 } else { |
|
354 LUA_PUSH_ARRAY_INT(d, (int)*(char *)(bind[i].buffer)); |
|
355 } |
338 } else { |
356 } else { |
339 LUA_PUSH_ARRAY_INT(d, *(int *)(bind[i].buffer)); |
357 if (named_columns) { |
|
358 LUA_PUSH_ATTRIB_INT(name, *(int *)(bind[i].buffer)); |
|
359 } else { |
|
360 LUA_PUSH_ARRAY_INT(d, *(int *)(bind[i].buffer)); |
|
361 } |
340 } |
362 } |
341 } else if (lua_push == LUA_PUSH_NUMBER) { |
363 } else if (lua_push == LUA_PUSH_NUMBER) { |
342 if (named_columns) { |
364 if (named_columns) { |
343 LUA_PUSH_ATTRIB_FLOAT(name, *(double *)(bind[i].buffer)); |
365 LUA_PUSH_ATTRIB_FLOAT(name, *(double *)(bind[i].buffer)); |
344 } else { |
366 } else { |