~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/column.h

  • Committer: Brian Aker
  • Date: 2009-10-15 00:22:33 UTC
  • mto: (1183.1.11 merge)
  • mto: This revision was merged to the branch mainline in revision 1198.
  • Revision ID: brian@gaz-20091015002233-fa4ao2mbc67wls91
First pass of information engine. OMG, ponies... is it so much easier to
deal with creating and engine.

The list table iterator though... its ass, needs to go. We should also
abstract out share. Very few engines need a custom one. Just say'in

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Drizzle Client & Protocol Library
3
 
 *
4
 
 * Copyright (C) 2008 Eric Day (eday@oddments.org)
5
 
 * All rights reserved.
6
 
 *
7
 
 * Redistribution and use in source and binary forms, with or without
8
 
 * modification, are permitted provided that the following conditions are
9
 
 * met:
10
 
 *
11
 
 *     * Redistributions of source code must retain the above copyright
12
 
 * notice, this list of conditions and the following disclaimer.
13
 
 *
14
 
 *     * Redistributions in binary form must reproduce the above
15
 
 * copyright notice, this list of conditions and the following disclaimer
16
 
 * in the documentation and/or other materials provided with the
17
 
 * distribution.
18
 
 *
19
 
 *     * The names of its contributors may not be used to endorse or
20
 
 * promote products derived from this software without specific prior
21
 
 * written permission.
22
 
 *
23
 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
 
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
 
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
 
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
 
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29
 
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
 
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
 
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
 
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
 
 *
35
 
 */
36
 
 
37
 
 
38
 
/**
39
 
 * @file
40
 
 * @brief Column Declarations
41
 
 */
42
 
 
43
 
#ifndef __DRIZZLE_COLUMN_H
44
 
#define __DRIZZLE_COLUMN_H
45
 
 
46
 
#ifdef __cplusplus
47
 
extern "C" {
48
 
#endif
49
 
 
50
 
/**
51
 
 * @addtogroup drizzle_column Column Declarations
52
 
 * @ingroup drizzle_client_interface
53
 
 * @ingroup drizzle_server_interface
54
 
 *
55
 
 * These functions are used to get detailed column information. This information
56
 
 * is usually sent as the first part of a result set. There are multiple ways
57
 
 * for column information to be buffered depending on the functions being used.
58
 
 * @{
59
 
 */
60
 
 
61
 
/**
62
 
 * Initialize a column structure.
63
 
 */
64
 
DRIZZLE_API
65
 
drizzle_column_st *drizzle_column_create(drizzle_result_st *result,
66
 
                                         drizzle_column_st *column);
67
 
 
68
 
/**
69
 
 * Free a column structure.
70
 
 */
71
 
DRIZZLE_API
72
 
void drizzle_column_free(drizzle_column_st *column);
73
 
 
74
 
/**
75
 
 * Get the drizzle_result_st struct that the column belongs to.
76
 
 */
77
 
DRIZZLE_API
78
 
drizzle_result_st *drizzle_column_drizzle_result(drizzle_column_st *column);
79
 
 
80
 
/**
81
 
 * Get catalog name for a column.
82
 
 */
83
 
DRIZZLE_API
84
 
const char *drizzle_column_catalog(drizzle_column_st *column);
85
 
 
86
 
/**
87
 
 * Get database name for a column.
88
 
 */
89
 
DRIZZLE_API
90
 
const char *drizzle_column_db(drizzle_column_st *column);
91
 
 
92
 
/**
93
 
 * Get table name for a column.
94
 
 */
95
 
DRIZZLE_API
96
 
const char *drizzle_column_table(drizzle_column_st *column);
97
 
 
98
 
/**
99
 
 * Get original table name for a column.
100
 
 */
101
 
DRIZZLE_API
102
 
const char *drizzle_column_orig_table(drizzle_column_st *column);
103
 
 
104
 
/**
105
 
 * Get column name for a column.
106
 
 */
107
 
DRIZZLE_API
108
 
const char *drizzle_column_name(drizzle_column_st *column);
109
 
 
110
 
/**
111
 
 * Get original column name for a column.
112
 
 */
113
 
DRIZZLE_API
114
 
const char *drizzle_column_orig_name(drizzle_column_st *column);
115
 
 
116
 
/**
117
 
 * Get charset for a column.
118
 
 */
119
 
DRIZZLE_API
120
 
drizzle_charset_t drizzle_column_charset(drizzle_column_st *column);
121
 
 
122
 
/**
123
 
 * Get size of a column.
124
 
 */
125
 
DRIZZLE_API
126
 
uint32_t drizzle_column_size(drizzle_column_st *column);
127
 
 
128
 
/**
129
 
 * Get max size of a column.
130
 
 */
131
 
DRIZZLE_API
132
 
size_t drizzle_column_max_size(drizzle_column_st *column);
133
 
 
134
 
/**
135
 
 * Set max size of a column.
136
 
 */
137
 
DRIZZLE_API
138
 
void drizzle_column_set_max_size(drizzle_column_st *column, size_t size);
139
 
 
140
 
/**
141
 
 * Get the type of a column.
142
 
 */
143
 
DRIZZLE_API
144
 
drizzle_column_type_t drizzle_column_type(drizzle_column_st *column);
145
 
 
146
 
/**
147
 
 * Get the Drizzle type of a column.
148
 
 */
149
 
DRIZZLE_API
150
 
drizzle_column_type_drizzle_t
151
 
drizzle_column_type_drizzle(drizzle_column_st *column);
152
 
 
153
 
/**
154
 
 * Get flags for a column.
155
 
 */
156
 
DRIZZLE_API
157
 
drizzle_column_flags_t drizzle_column_flags(drizzle_column_st *column);
158
 
 
159
 
/**
160
 
 * Get the number of decimals for numeric columns.
161
 
 */
162
 
DRIZZLE_API
163
 
uint8_t drizzle_column_decimals(drizzle_column_st *column);
164
 
 
165
 
/**
166
 
 * Get default value for a column.
167
 
 */
168
 
DRIZZLE_API
169
 
const uint8_t *drizzle_column_default_value(drizzle_column_st *column,
170
 
                                            size_t *size);
171
 
 
172
 
/** @} */
173
 
 
174
 
#ifdef __cplusplus
175
 
}
176
 
#endif
177
 
 
178
 
#endif /* __DRIZZLE_COLUMN_H */