1
<refentry id="MgDbField">
3
<refentrytitle>MgDbField</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>LIBMERGEANT Library</refmiscinfo>
9
<refname>MgDbField</refname><refpurpose>Represents a field in a table or a view in the database</refpurpose>
12
<refsynopsisdiv><title>Synopsis</title>
18
struct <link linkend="MgDbField-struct">MgDbField</link>;
19
<link linkend="GObject">GObject</link>* <link linkend="mg-db-field-new">mg_db_field_new</link> (<link linkend="MgConf">MgConf</link> *conf,
20
<link linkend="MgServerDataType">MgServerDataType</link> *type);
21
<link linkend="void">void</link> <link linkend="mg-db-field-set-length">mg_db_field_set_length</link> (<link linkend="MgDbField">MgDbField</link> *field,
22
<link linkend="gint">gint</link> length);
23
<link linkend="gint">gint</link> <link linkend="mg-db-field-get-length">mg_db_field_get_length</link> (<link linkend="MgDbField">MgDbField</link> *field);
24
<link linkend="void">void</link> <link linkend="mg-db-field-set-scale">mg_db_field_set_scale</link> (<link linkend="MgDbField">MgDbField</link> *field,
25
<link linkend="gint">gint</link> length);
26
<link linkend="gint">gint</link> <link linkend="mg-db-field-get-scale">mg_db_field_get_scale</link> (<link linkend="MgDbField">MgDbField</link> *field);
27
<link linkend="GSList">GSList</link>* <link linkend="mg-db-field-get-constraints">mg_db_field_get_constraints</link> (<link linkend="MgDbField">MgDbField</link> *field);
28
<link linkend="void">void</link> <link linkend="mg-db-field-set-data-type">mg_db_field_set_data_type</link> (<link linkend="MgDbField">MgDbField</link> *field,
29
<link linkend="MgServerDataType">MgServerDataType</link> *type);
30
<link linkend="void">void</link> <link linkend="mg-db-field-set-default-value">mg_db_field_set_default_value</link> (<link linkend="MgDbField">MgDbField</link> *field,
31
const <link linkend="GdaValue">GdaValue</link> *value);
32
const <link linkend="GdaValue">GdaValue</link>* <link linkend="mg-db-field-get-default-value">mg_db_field_get_default_value</link>
33
(<link linkend="MgDbField">MgDbField</link> *field);
34
<link linkend="gboolean">gboolean</link> <link linkend="mg-db-field-is-null-allowed">mg_db_field_is_null_allowed</link> (<link linkend="MgDbField">MgDbField</link> *field);
35
<link linkend="gboolean">gboolean</link> <link linkend="mg-db-field-is-pkey-part">mg_db_field_is_pkey_part</link> (<link linkend="MgDbField">MgDbField</link> *field);
36
<link linkend="gboolean">gboolean</link> <link linkend="mg-db-field-is-pkey-alone">mg_db_field_is_pkey_alone</link> (<link linkend="MgDbField">MgDbField</link> *field);
37
<link linkend="gboolean">gboolean</link> <link linkend="mg-db-field-is-fkey-part">mg_db_field_is_fkey_part</link> (<link linkend="MgDbField">MgDbField</link> *field);
38
<link linkend="gboolean">gboolean</link> <link linkend="mg-db-field-is-fkey-alone">mg_db_field_is_fkey_alone</link> (<link linkend="MgDbField">MgDbField</link> *field);
43
<title>Object Hierarchy</title>
46
<link linkend="GObject">GObject</link>
47
+----<link linkend="MgBase">MgBase</link>
56
<title>Implemented Interfaces</title>
59
<link linkend="MgXmlStorage">MgXmlStorage</link>, <link linkend="MgRenderer">MgRenderer</link> and <link linkend="MgField">MgField</link>.</para>
65
<title>Properties</title>
68
"<link linkend="MgDbField--db-table">db-table</link>" <link linkend="gpointer">gpointer</link> : Read / Write
73
<title>Signal Prototypes</title>
76
"<link linkend="MgDbField-templ-signal">templ-signal</link>"
77
<link linkend="void">void</link> user_function (<link linkend="MgDbField">MgDbField</link> *mgdbfield,
78
<link linkend="gpointer">gpointer</link> user_data);
84
<title>Description</title>
86
It implements the following interfaces: <link linkend="MgField"><type>MgField</type></link>, <link linkend="MgXmlStorage"><type>MgXmlStorage</type></link> and <link linkend="MgRenderer"><type>MgRenderer</type></link>.
91
<title>Details</title>
93
<title><anchor id="MgDbField-struct"/>struct MgDbField</title>
94
<indexterm><primary>MgDbField</primary></indexterm><programlisting>struct MgDbField;</programlisting>
99
<title><anchor id="mg-db-field-new"/>mg_db_field_new ()</title>
100
<indexterm><primary>mg_db_field_new</primary></indexterm><programlisting><link linkend="GObject">GObject</link>* mg_db_field_new (<link linkend="MgConf">MgConf</link> *conf,
101
<link linkend="MgServerDataType">MgServerDataType</link> *type);</programlisting>
103
Creates a new MgDbField object</para>
106
</para><variablelist role="params">
107
<varlistentry><term><parameter>conf</parameter> :</term>
108
<listitem><simpara> a <link linkend="MgConf"><type>MgConf</type></link> object
109
</simpara></listitem></varlistentry>
110
<varlistentry><term><parameter>type</parameter> :</term>
111
<listitem><simpara> a <link linkend="MgServerDataType"><type>MgServerDataType</type></link> object (the field's type)
112
</simpara></listitem></varlistentry>
113
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the new object
114
</simpara></listitem></varlistentry>
115
</variablelist></refsect2>
117
<title><anchor id="mg-db-field-set-length"/>mg_db_field_set_length ()</title>
118
<indexterm><primary>mg_db_field_set_length</primary></indexterm><programlisting><link linkend="void">void</link> mg_db_field_set_length (<link linkend="MgDbField">MgDbField</link> *field,
119
<link linkend="gint">gint</link> length);</programlisting>
122
</para><variablelist role="params">
123
<varlistentry><term><parameter>field</parameter> :</term>
125
</simpara></listitem></varlistentry>
126
<varlistentry><term><parameter>length</parameter> :</term>
130
</simpara></listitem></varlistentry>
131
</variablelist></refsect2>
133
<title><anchor id="mg-db-field-get-length"/>mg_db_field_get_length ()</title>
134
<indexterm><primary>mg_db_field_get_length</primary></indexterm><programlisting><link linkend="gint">gint</link> mg_db_field_get_length (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
136
Get the length of a field.</para>
139
</para><variablelist role="params">
140
<varlistentry><term><parameter>field</parameter> :</term>
141
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
142
</simpara></listitem></varlistentry>
143
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the size of the corresponding data type has a fixed size, or -1
144
</simpara></listitem></varlistentry>
145
</variablelist></refsect2>
147
<title><anchor id="mg-db-field-set-scale"/>mg_db_field_set_scale ()</title>
148
<indexterm><primary>mg_db_field_set_scale</primary></indexterm><programlisting><link linkend="void">void</link> mg_db_field_set_scale (<link linkend="MgDbField">MgDbField</link> *field,
149
<link linkend="gint">gint</link> length);</programlisting>
152
</para><variablelist role="params">
153
<varlistentry><term><parameter>field</parameter> :</term>
155
</simpara></listitem></varlistentry>
156
<varlistentry><term><parameter>length</parameter> :</term>
160
</simpara></listitem></varlistentry>
161
</variablelist></refsect2>
163
<title><anchor id="mg-db-field-get-scale"/>mg_db_field_get_scale ()</title>
164
<indexterm><primary>mg_db_field_get_scale</primary></indexterm><programlisting><link linkend="gint">gint</link> mg_db_field_get_scale (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
166
Get the scale of a field.</para>
169
</para><variablelist role="params">
170
<varlistentry><term><parameter>field</parameter> :</term>
171
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
172
</simpara></listitem></varlistentry>
173
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the size of the corresponding data type has a fixed size, or -1
174
</simpara></listitem></varlistentry>
175
</variablelist></refsect2>
177
<title><anchor id="mg-db-field-get-constraints"/>mg_db_field_get_constraints ()</title>
178
<indexterm><primary>mg_db_field_get_constraints</primary></indexterm><programlisting><link linkend="GSList">GSList</link>* mg_db_field_get_constraints (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
180
Get all the constraints which impact the given field. Constraints are of several type:
181
NOT NULL, primary key, foreign key, check constrains</para>
184
</para><variablelist role="params">
185
<varlistentry><term><parameter>field</parameter> :</term>
186
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
187
</simpara></listitem></varlistentry>
188
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new list of <link linkend="MgDbConstraint"><type>MgDbConstraint</type></link> objects
189
</simpara></listitem></varlistentry>
190
</variablelist></refsect2>
192
<title><anchor id="mg-db-field-set-data-type"/>mg_db_field_set_data_type ()</title>
193
<indexterm><primary>mg_db_field_set_data_type</primary></indexterm><programlisting><link linkend="void">void</link> mg_db_field_set_data_type (<link linkend="MgDbField">MgDbField</link> *field,
194
<link linkend="MgServerDataType">MgServerDataType</link> *type);</programlisting>
196
Sets the data type of the field</para>
199
</para><variablelist role="params">
200
<varlistentry><term><parameter>field</parameter> :</term>
201
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
202
</simpara></listitem></varlistentry>
203
<varlistentry><term><parameter>type</parameter> :</term>
204
<listitem><simpara> a <link linkend="MgServerDataType"><type>MgServerDataType</type></link> object
205
</simpara></listitem></varlistentry>
206
</variablelist></refsect2>
208
<title><anchor id="mg-db-field-set-default-value"/>mg_db_field_set_default_value ()</title>
209
<indexterm><primary>mg_db_field_set_default_value</primary></indexterm><programlisting><link linkend="void">void</link> mg_db_field_set_default_value (<link linkend="MgDbField">MgDbField</link> *field,
210
const <link linkend="GdaValue">GdaValue</link> *value);</programlisting>
212
Sets (or replace) the default value for the field. WARNING: the default value's data type can be
213
different from the field's data type (this is the case for example if the default value is a
214
function like Postgres's default value for the SERIAL data type).</para>
217
</para><variablelist role="params">
218
<varlistentry><term><parameter>field</parameter> :</term>
219
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
220
</simpara></listitem></varlistentry>
221
<varlistentry><term><parameter>value</parameter> :</term>
222
<listitem><simpara> a <link linkend="GdaValue"><type>GdaValue</type></link> value or NULL
223
</simpara></listitem></varlistentry>
224
</variablelist></refsect2>
226
<title><anchor id="mg-db-field-get-default-value"/>mg_db_field_get_default_value ()</title>
227
<indexterm><primary>mg_db_field_get_default_value</primary></indexterm><programlisting>const <link linkend="GdaValue">GdaValue</link>* mg_db_field_get_default_value
228
(<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
230
Get the default value for the field if ne exists</para>
233
</para><variablelist role="params">
234
<varlistentry><term><parameter>field</parameter> :</term>
235
<listitem><simpara> a <link linkend="MgDbField"><type>MgDbField</type></link> object
236
</simpara></listitem></varlistentry>
237
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the default value
238
</simpara></listitem></varlistentry>
239
</variablelist></refsect2>
241
<title><anchor id="mg-db-field-is-null-allowed"/>mg_db_field_is_null_allowed ()</title>
242
<indexterm><primary>mg_db_field_is_null_allowed</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> mg_db_field_is_null_allowed (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
245
</para><variablelist role="params">
246
<varlistentry><term><parameter>field</parameter> :</term>
248
</simpara></listitem></varlistentry>
249
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
252
</simpara></listitem></varlistentry>
253
</variablelist></refsect2>
255
<title><anchor id="mg-db-field-is-pkey-part"/>mg_db_field_is_pkey_part ()</title>
256
<indexterm><primary>mg_db_field_is_pkey_part</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> mg_db_field_is_pkey_part (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
259
</para><variablelist role="params">
260
<varlistentry><term><parameter>field</parameter> :</term>
262
</simpara></listitem></varlistentry>
263
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
266
</simpara></listitem></varlistentry>
267
</variablelist></refsect2>
269
<title><anchor id="mg-db-field-is-pkey-alone"/>mg_db_field_is_pkey_alone ()</title>
270
<indexterm><primary>mg_db_field_is_pkey_alone</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> mg_db_field_is_pkey_alone (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
273
</para><variablelist role="params">
274
<varlistentry><term><parameter>field</parameter> :</term>
276
</simpara></listitem></varlistentry>
277
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
280
</simpara></listitem></varlistentry>
281
</variablelist></refsect2>
283
<title><anchor id="mg-db-field-is-fkey-part"/>mg_db_field_is_fkey_part ()</title>
284
<indexterm><primary>mg_db_field_is_fkey_part</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> mg_db_field_is_fkey_part (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
287
</para><variablelist role="params">
288
<varlistentry><term><parameter>field</parameter> :</term>
290
</simpara></listitem></varlistentry>
291
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
294
</simpara></listitem></varlistentry>
295
</variablelist></refsect2>
297
<title><anchor id="mg-db-field-is-fkey-alone"/>mg_db_field_is_fkey_alone ()</title>
298
<indexterm><primary>mg_db_field_is_fkey_alone</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> mg_db_field_is_fkey_alone (<link linkend="MgDbField">MgDbField</link> *field);</programlisting>
301
</para><variablelist role="params">
302
<varlistentry><term><parameter>field</parameter> :</term>
304
</simpara></listitem></varlistentry>
305
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
308
</simpara></listitem></varlistentry>
309
</variablelist></refsect2>
313
<title>Properties</title>
315
<varlistentry><term><anchor id="MgDbField--db-table"/>"<literal>db-table</literal>" (<link linkend="gpointer">gpointer</link> : Read / Write)</term>
318
</listitem></varlistentry>
324
<title>Signals</title>
325
<refsect2><title><anchor id="MgDbField-templ-signal"/>The "templ-signal" signal</title>
326
<programlisting><link linkend="void">void</link> user_function (<link linkend="MgDbField">MgDbField</link> *mgdbfield,
327
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
330
</para><variablelist role="params">
331
<varlistentry><term><parameter>mgdbfield</parameter> :</term>
332
<listitem><simpara>the object which received the signal.
334
</simpara></listitem></varlistentry>
335
<varlistentry><term><parameter>user_data</parameter> :</term>
336
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
337
</variablelist></refsect2>