Drizzled Public API Documentation

query.h
Go to the documentation of this file.
00001 /*
00002  * Drizzle Client & Protocol Library
00003  *
00004  * Copyright (C) 2008 Eric Day (eday@oddments.org)
00005  * All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted provided that the following conditions are
00009  * met:
00010  *
00011  *     * Redistributions of source code must retain the above copyright
00012  * notice, this list of conditions and the following disclaimer.
00013  *
00014  *     * Redistributions in binary form must reproduce the above
00015  * copyright notice, this list of conditions and the following disclaimer
00016  * in the documentation and/or other materials provided with the
00017  * distribution.
00018  *
00019  *     * The names of its contributors may not be used to endorse or
00020  * promote products derived from this software without specific prior
00021  * written permission.
00022  *
00023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00026  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
00027  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00028  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00029  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00030  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00031  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00033  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034  *
00035  */
00036 
00042 #ifndef __DRIZZLE_QUERY_H
00043 #define __DRIZZLE_QUERY_H
00044 
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048 
00072 DRIZZLE_API
00073 drizzle_result_st *drizzle_query(drizzle_con_st *con, drizzle_result_st *result,
00074                                  const char *query, size_t size,
00075                                  drizzle_return_t *ret_ptr);
00076 
00080 DRIZZLE_API
00081 drizzle_result_st *drizzle_query_str(drizzle_con_st *con,
00082                                      drizzle_result_st *result,
00083                                      const char *query,
00084                                      drizzle_return_t *ret_ptr);
00085 
00089 DRIZZLE_API
00090 drizzle_result_st *drizzle_query_inc(drizzle_con_st *con,
00091                                      drizzle_result_st *result,
00092                                      const char *query, size_t size,
00093                                      size_t total, drizzle_return_t *ret_ptr);
00094 
00098 DRIZZLE_API
00099 drizzle_query_st *drizzle_query_add(drizzle_st *drizzle,
00100                                     drizzle_query_st *query,
00101                                     drizzle_con_st *con,
00102                                     drizzle_result_st *result,
00103                                     const char *query_string, size_t size,
00104                                     drizzle_query_options_t options,
00105                                     void *context);
00106 
00110 DRIZZLE_API
00111 drizzle_query_st *drizzle_query_create(drizzle_st *drizzle,
00112                                        drizzle_query_st *query);
00113 
00117 DRIZZLE_API
00118 void drizzle_query_free(drizzle_query_st *query);
00119 
00123 DRIZZLE_API
00124 void drizzle_query_free_all(drizzle_st *drizzle);
00125 
00129 DRIZZLE_API
00130 drizzle_con_st *drizzle_query_con(drizzle_query_st *query);
00131 
00135 DRIZZLE_API
00136 void drizzle_query_set_con(drizzle_query_st *query, drizzle_con_st *con);
00137 
00141 DRIZZLE_API
00142 drizzle_result_st *drizzle_query_result(drizzle_query_st *query);
00143 
00147 DRIZZLE_API
00148 void drizzle_query_set_result(drizzle_query_st *query,
00149                               drizzle_result_st *result);
00150 
00154 DRIZZLE_API
00155 char *drizzle_query_string(drizzle_query_st *query, size_t *size);
00156 
00160 DRIZZLE_API
00161 void drizzle_query_set_string(drizzle_query_st *query, const char *string,
00162                               size_t size);
00163 
00167 DRIZZLE_API
00168 drizzle_query_options_t drizzle_query_options(drizzle_query_st *query);
00169 
00173 DRIZZLE_API
00174 void drizzle_query_set_options(drizzle_query_st *query,
00175                                drizzle_query_options_t options);
00176 
00180 DRIZZLE_API
00181 void drizzle_query_add_options(drizzle_query_st *query,
00182                                drizzle_query_options_t options);
00183 
00187 DRIZZLE_API
00188 void drizzle_query_remove_options(drizzle_query_st *query,
00189                                   drizzle_query_options_t options);
00190 
00194 DRIZZLE_API
00195 void *drizzle_query_context(drizzle_query_st *query);
00196 
00200 DRIZZLE_API
00201 void drizzle_query_set_context(drizzle_query_st *query, void *context);
00202 
00206 DRIZZLE_API
00207 void drizzle_query_set_context_free_fn(drizzle_query_st *query,
00208                                        drizzle_query_context_free_fn *function);
00209 
00213 DRIZZLE_API
00214 drizzle_query_st *drizzle_query_run(drizzle_st *drizzle,
00215                                     drizzle_return_t *ret_ptr);
00216 
00223 DRIZZLE_API
00224 drizzle_return_t drizzle_query_run_all(drizzle_st *drizzle);
00225 
00226 /*
00227  * Escape a string or encode a string in hexadecimal. The return value is the
00228  * size of the output string in to.
00229  */
00230 DRIZZLE_API
00231 size_t drizzle_escape_string(char *to, const char *from, size_t from_size);
00232 DRIZZLE_API
00233 ssize_t drizzle_safe_escape_string(char *to, size_t max_to_size, const char *from, size_t from_size);
00234 DRIZZLE_API
00235 size_t drizzle_hex_string(char *to, const char *from, size_t from_size);
00236 DRIZZLE_API
00237 void drizzle_mysql_password_hash(char *to, const char *from, size_t from_size);
00238 
00241 #ifdef __cplusplus
00242 }
00243 #endif
00244 
00245 #endif /* __DRIZZLE_QUERY_H */