63#define CLIENT_ERROR(__function, __ret, __client) { \
64 printf(__function ":%d:%s\n", __ret, \
65 drizzle_error(&((__client)->drizzle))); \
68int main(
int argc,
char *argv[])
75 int wait_for_connections= 0;
89 while ((c = getopt(argc, argv,
"bB:c:d:h:Hmp:P:u:")) != -1)
98 if (!strcasecmp(optarg,
"none"))
100 else if (!strcasecmp(optarg,
"field"))
102 else if (!strcasecmp(optarg,
"row"))
104 else if (!strcasecmp(optarg,
"all"))
108 printf(
"Invalid buffer level: %s\n", optarg);
134 port= (in_port_t)atoi(optarg);
143 printf(
"\nUsage: %s [options] [query]\n", argv[0]);
144 printf(
"\t-b - Use blocking sockets\n");
145 printf(
"\t-B <level> - Use buffer <level>, options are:\n");
146 printf(
"\t none - Don't buffer anything (default)\n");
147 printf(
"\t field - Only buffer individual fields\n");
148 printf(
"\t row - Only buffer individual rows\n");
149 printf(
"\t all - Buffer entire result\n");
150 printf(
"\t-c <cons> - Create <cons> connections\n");
151 printf(
"\t-d <db> - Use <db> for the connection\n");
152 printf(
"\t-h <host> - Connect to <host>\n");
153 printf(
"\t-H - Print this help menu\n");
154 printf(
"\t-m - Use MySQL protocol\n");
155 printf(
"\t-p <password> - Use <password> for authentication\n");
156 printf(
"\t-P <port> - Connect to <port>\n");
157 printf(
"\t-u <user> - Use <user> for authentication\n");
164 client.
query= argv[optind];
174 printf(
"calloc:%d\n", errno);
182 printf(
"drizzle_create failed\n");
197 host, port, user, password, db,
205 wait_for_connections++;
210 while (wait_for_connections != 0)
221 wait_for_connections--;
248 switch (client_con->
state)
251 if (client->
query == NULL)
286 &(client_con->
column), &ret);
310 printf(
"Row: %" PRId64
"\n",
319 printf(
" (%zd) %.*s\n", field_sizes[x], (int32_t)field_sizes[x],
336 if (client_con->
row == 0)
347 if (client_con->
row == 0)
353 printf(
"Row: %" PRId64
"\n", client_con->
row);
381 printf(
"%.*s", (int32_t)length, field);
383 printf(
" (%zd) %.*s", total, (int32_t)length, field);
385 if (offset + length == total)
412 printf(
"Row: %" PRId64
"\n",
421 printf(
" (%zd) %.*s\n", field_sizes[x], (int32_t)field_sizes[x],
444 printf(
"Connected: protocol_version=%u\n"
457 printf(
"Result: row_count=%" PRId64
"\n"
458 " insert_id=%" PRId64
"\n"
459 " warning_count=%u\n"
460 " column_count=%u\n\n",
469 printf(
"Field: catalog=%s\n"
void result_info(drizzle_result_st *result)
int main(int argc, char *argv[])
char client_process(client_st *client, client_con_st *client_con)
void con_info(drizzle_con_st *con)
void column_info(drizzle_column_st *column)
#define CLIENT_ERROR(__function, __ret, __client)
Drizzle Declarations for Clients.
drizzle_con_st * drizzle_con_add_tcp(drizzle_st *drizzle, drizzle_con_st *con, const char *host, in_port_t port, const char *user, const char *password, const char *db, drizzle_con_options_t options)
drizzle_column_st * drizzle_column_next(drizzle_result_st *result)
drizzle_column_st * drizzle_column_read(drizzle_result_st *result, drizzle_column_st *column, drizzle_return_t *ret_ptr)
const char * drizzle_column_catalog(drizzle_column_st *column)
const char * drizzle_column_orig_name(drizzle_column_st *column)
const char * drizzle_column_name(drizzle_column_st *column)
void drizzle_column_free(drizzle_column_st *column)
drizzle_column_flags_t drizzle_column_flags(drizzle_column_st *column)
const char * drizzle_column_table(drizzle_column_st *column)
drizzle_charset_t drizzle_column_charset(drizzle_column_st *column)
const char * drizzle_column_db(drizzle_column_st *column)
drizzle_column_type_t drizzle_column_type(drizzle_column_st *column)
uint32_t drizzle_column_size(drizzle_column_st *column)
const char * drizzle_column_orig_table(drizzle_column_st *column)
size_t drizzle_column_max_size(drizzle_column_st *column)
uint8_t drizzle_con_protocol_version(const drizzle_con_st *con)
void drizzle_con_set_context(drizzle_con_st *con, void *context)
uint32_t drizzle_con_thread_id(const drizzle_con_st *con)
drizzle_capabilities_t drizzle_con_capabilities(const drizzle_con_st *con)
void * drizzle_con_context(const drizzle_con_st *con)
drizzle_charset_t drizzle_con_charset(const drizzle_con_st *con)
drizzle_con_status_t drizzle_con_status(const drizzle_con_st *con)
const char * drizzle_con_server_version(const drizzle_con_st *con)
drizzle_field_t drizzle_field_read(drizzle_result_st *result, size_t *offset, size_t *size, size_t *total, drizzle_return_t *ret_ptr)
drizzle_field_t drizzle_field_buffer(drizzle_result_st *result, size_t *total, drizzle_return_t *ret_ptr)
void drizzle_field_free(drizzle_field_t field)
drizzle_result_st * drizzle_query(drizzle_con_st *con, drizzle_result_st *result, const char *query, size_t size, drizzle_return_t *ret_ptr)
drizzle_return_t drizzle_result_buffer(drizzle_result_st *result)
uint16_t drizzle_result_column_count(drizzle_result_st *result)
uint64_t drizzle_result_insert_id(drizzle_result_st *result)
void drizzle_result_free(drizzle_result_st *result)
uint16_t drizzle_result_warning_count(drizzle_result_st *result)
uint64_t drizzle_result_row_count(drizzle_result_st *result)
uint64_t drizzle_row_current(drizzle_result_st *result)
size_t * drizzle_row_field_sizes(drizzle_result_st *result)
uint64_t drizzle_row_read(drizzle_result_st *result, drizzle_return_t *ret_ptr)
drizzle_row_t drizzle_row_next(drizzle_result_st *result)
drizzle_row_t drizzle_row_buffer(drizzle_result_st *result, drizzle_return_t *ret_ptr)
void drizzle_row_free(drizzle_result_st *result, drizzle_row_t row)
drizzle_field_t * drizzle_row_t
struct drizzle_result_st drizzle_result_st
struct drizzle_con_st drizzle_con_st
struct drizzle_st drizzle_st
struct drizzle_column_st drizzle_column_st
drizzle_con_st * drizzle_con_ready(drizzle_st *drizzle)
void drizzle_free(drizzle_st *drizzle)
void drizzle_add_options(drizzle_st *drizzle, drizzle_options_t options)
drizzle_st * drizzle_create(drizzle_st *drizzle)
drizzle_return_t drizzle_con_wait(drizzle_st *drizzle)
void drizzle_con_free(drizzle_con_st *con)
client_con_st * client_con_list
uint32_t client_con_count