247
247
ret= drizzle_handshake_client_read(server->con);
248
248
DRIZZLE_RETURN_CHECK(ret, "drizzle_handshake_client_read", server->drizzle)
250
if (drizzle_result_create(server->con, &(server->result)) == NULL)
251
DRIZZLE_RETURN_ERROR("drizzle_result_create", server->drizzle)
250
if ((server->result= drizzle_result_create(server->con)) == NULL)
252
DRIZZLE_RETURN_ERROR("drizzle_result_create", server->drizzle);
253
ret= drizzle_result_write(server->con, &(server->result), true);
255
ret= drizzle_result_write(server->con, server->result, true);
254
256
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
256
258
/* Command loop. */
259
drizzle_result_free(&(server->result));
261
drizzle_result_free(server->result);
262
264
data= (uint8_t *)drizzle_con_command_buffer(server->con, &command, &total, &ret);
269
DRIZZLE_RETURN_CHECK(ret, "drizzle_con_command_buffer", server->drizzle)
271
DRIZZLE_RETURN_CHECK(ret, "drizzle_con_command_buffer", server->drizzle);
271
273
if (server->verbose >= DRIZZLE_VERBOSE_INFO)
274
276
data == NULL ? "NULL" : (char *)data);
277
if (drizzle_result_create(server->con, &(server->result)) == NULL)
278
DRIZZLE_RETURN_ERROR("drizzle_result_create", server->drizzle)
279
if ((server->result= drizzle_result_create(server->con)) == NULL)
281
DRIZZLE_RETURN_ERROR("drizzle_result_create", server->drizzle);
280
284
if (command != DRIZZLE_COMMAND_QUERY ||
281
285
!strcasecmp((char *)data, "SHOW DATABASES"))
283
ret= drizzle_result_write(server->con, &(server->result), true);
284
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
287
ret= drizzle_result_write(server->con, server->result, true);
288
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle);
286
290
if (command == DRIZZLE_COMMAND_FIELD_LIST)
288
drizzle_result_set_eof(&(server->result), true);
289
ret= drizzle_result_write(server->con, &(server->result), true);
290
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
292
drizzle_result_set_eof(server->result, true);
293
ret= drizzle_result_write(server->con, server->result, true);
294
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle);
328
drizzle_result_set_error_code(&(server->result), (uint16_t)sqlite_ret);
329
drizzle_result_set_error(&(server->result), sqlite_err);
330
ret= drizzle_result_write(server->con, &(server->result), true);
332
drizzle_result_set_error_code(server->result, (uint16_t)sqlite_ret);
333
drizzle_result_set_error(server->result, sqlite_err);
334
ret= drizzle_result_write(server->con, server->result, true);
331
335
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
333
337
fprintf(stderr, "sqlite3_exec:%s\n", sqlite_err);
340
344
if (server->rows == 0)
342
drizzle_result_set_column_count(&(server->result), 0);
343
ret= drizzle_result_write(server->con, &(server->result), true);
346
drizzle_result_set_column_count(server->result, 0);
347
ret= drizzle_result_write(server->con, server->result, true);
344
348
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
348
drizzle_result_set_eof(&(server->result), true);
349
ret= drizzle_result_write(server->con, &(server->result), true);
352
drizzle_result_set_eof(server->result, true);
353
ret= drizzle_result_write(server->con, server->result, true);
350
354
DRIZZLE_RETURN_CHECK(ret, "drizzle_result_write", server->drizzle)
362
366
if (server->send_columns == true)
364
368
server->send_columns= false;
365
drizzle_result_set_column_count(&(server->result), (uint16_t)field_count);
369
drizzle_result_set_column_count(server->result, (uint16_t)field_count);
367
ret= drizzle_result_write(server->con, &(server->result), false);
371
ret= drizzle_result_write(server->con, server->result, false);
368
372
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_result_write", server->drizzle)
370
if (drizzle_column_create(&(server->result), &(server->column)) == NULL)
374
if (drizzle_column_create(server->result, &(server->column)) == NULL)
372
376
DRIZZLE_RETURN_CHECK_VAL(DRIZZLE_RETURN_MEMORY, "drizzle_column_create", server->drizzle)
387
391
drizzle_column_set_name(&(server->column), columns[x]);
388
392
drizzle_column_set_orig_name(&(server->column), columns[x]);
390
ret= drizzle_column_write(&(server->result), &(server->column));
394
ret= drizzle_column_write(server->result, &(server->column));
391
395
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_column_write", server->drizzle)
394
398
drizzle_column_free(&(server->column));
396
drizzle_result_set_eof(&(server->result), true);
400
drizzle_result_set_eof(server->result, true);
398
ret= drizzle_result_write(server->con, &(server->result), false);
402
ret= drizzle_result_write(server->con, server->result, false);
399
403
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_result_write", server->drizzle)
410
414
/* This is needed for MySQL and old Drizzle protocol. */
411
drizzle_result_calc_row_size(&(server->result), (drizzle_field_t *)fields,
415
drizzle_result_calc_row_size(server->result, (drizzle_field_t *)fields,
414
ret= drizzle_row_write(&(server->result));
418
ret= drizzle_row_write(server->result);
415
419
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_row_write", server->drizzle)
417
421
for (x= 0; x < field_count; x++)
419
ret= drizzle_field_write(&(server->result), (drizzle_field_t)fields[x],
423
ret= drizzle_field_write(server->result, (drizzle_field_t)fields[x],
420
424
sizes[x], sizes[x]);
421
425
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_field_write", server->drizzle)
437
441
fields[0]= (drizzle_field_t)SQLITE_SERVER_VERSION;
438
442
sizes[0]= strlen(SQLITE_SERVER_VERSION);
440
drizzle_result_set_column_count(&(server->result), 1);
444
drizzle_result_set_column_count(server->result, 1);
442
ret= drizzle_result_write(server->con, &(server->result), false);
446
ret= drizzle_result_write(server->con, server->result, false);
443
447
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_result_write", server->drizzle)
445
if (drizzle_column_create(&(server->result), &(server->column)) == NULL)
449
if (drizzle_column_create(server->result, &(server->column)) == NULL)
447
451
DRIZZLE_RETURN_CHECK_VAL(DRIZZLE_RETURN_MEMORY, "drizzle_column_create", server->drizzle)
457
461
drizzle_column_set_name(&(server->column), "version");
458
462
drizzle_column_set_orig_name(&(server->column), "version");
460
ret= drizzle_column_write(&(server->result), &(server->column));
464
ret= drizzle_column_write(server->result, &(server->column));
461
465
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_column_write", server->drizzle)
463
467
drizzle_column_free(&(server->column));
465
drizzle_result_set_eof(&(server->result), true);
469
drizzle_result_set_eof(server->result, true);
467
ret= drizzle_result_write(server->con, &(server->result), false);
471
ret= drizzle_result_write(server->con, server->result, false);
468
472
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_result_write", server->drizzle)
470
474
/* This is needed for MySQL and old Drizzle protocol. */
471
drizzle_result_calc_row_size(&(server->result), fields, sizes);
475
drizzle_result_calc_row_size(server->result, fields, sizes);
473
ret= drizzle_row_write(&(server->result));
477
ret= drizzle_row_write(server->result);
474
478
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_row_write", server->drizzle)
476
ret= drizzle_field_write(&(server->result), fields[0], sizes[0], sizes[0]);
480
ret= drizzle_field_write(server->result, fields[0], sizes[0], sizes[0]);
477
481
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_field_write", server->drizzle)
479
ret= drizzle_result_write(server->con, &(server->result), true);
483
ret= drizzle_result_write(server->con, server->result, true);
480
484
DRIZZLE_RETURN_CHECK_VAL(ret, "drizzle_result_write", server->drizzle)
482
486
return DRIZZLE_RETURN_OK;