int main(void) { close(STDOUT_FILENO); drizzle_st *drizzle; drizzle_query_st *query; drizzle_query_st query_buffer; size_t size; printf("sizeof(drizzle_query_st) = %zu\n", sizeof(drizzle_query_st)); if ((drizzle= drizzle_create(NULL)) == NULL) drizzle_test_error("drizzle_create"); if ((query= drizzle_query_create(drizzle, &query_buffer)) == NULL) drizzle_test_error("drizzle_query_create"); drizzle_query_free(query); if ((query= drizzle_query_create(drizzle, NULL)) == NULL) drizzle_test_error("drizzle_query_create"); if (drizzle_query_options(query) != DRIZZLE_QUERY_ALLOCATED) drizzle_test_error("drizzle_query_options"); drizzle_query_set_string(query, "SELECT 1+1", 10); if (strncmp(drizzle_query_string(query, &size), "SELECT 1+1", 10) || size != 10) { drizzle_test_error("drizzle_query_string"); } drizzle_query_free(query); drizzle_free(drizzle); return 0; }
VALUE rb_drizzle_query_initialize(VALUE self, VALUE rb_cDrizzle) { net_drizzle_query_st *context; net_drizzle_st *dri_st; drizzle_query_st *query; Data_Get_Struct(self, net_drizzle_query_st, context); Data_Get_Struct(rb_cDrizzle, net_drizzle_st, dri_st); query = NULL; if ( ( context->query = drizzle_query_create(dri_st->drizzle, query) ) == NULL ) { rb_sys_fail("Failed to alloc drizzle_query_create."); } return self; }
drizzle_query_st *drizzle_query_add(drizzle_st *drizzle, drizzle_query_st *query, drizzle_con_st *con, drizzle_result_st *result, const char *query_string, size_t size, drizzle_query_options_t options, void *context) { query= drizzle_query_create(drizzle, query); if (query == NULL) return NULL; drizzle_query_set_con(query, con); drizzle_query_set_result(query, result); drizzle_query_set_string(query, query_string, size); drizzle_query_add_options(query, options); drizzle_query_set_context(query, context); return query; }