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